KR20150026777A - 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법 - Google Patents

맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법 Download PDF

Info

Publication number
KR20150026777A
KR20150026777A KR20140071340A KR20140071340A KR20150026777A KR 20150026777 A KR20150026777 A KR 20150026777A KR 20140071340 A KR20140071340 A KR 20140071340A KR 20140071340 A KR20140071340 A KR 20140071340A KR 20150026777 A KR20150026777 A KR 20150026777A
Authority
KR
South Korea
Prior art keywords
original
efi
gpt
customized
boot application
Prior art date
Application number
KR20140071340A
Other languages
English (en)
Other versions
KR102226558B1 (ko
Inventor
프라딥 비시트
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20150026777A publication Critical patent/KR20150026777A/ko
Application granted granted Critical
Publication of KR102226558B1 publication Critical patent/KR102226558B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 실시 예에 따른 컴퓨터 프로세서에 의해 맞춤형 UEFI(Unified Extensible Firmware Interface) 드라이버를 로딩하는 방법은: 제 1 위치에 저장된 오리지널 EFI(Extensible Firmware Interface) 부트 어플리케이션을 제 2 위치로 복사하는 단계; 상기 제 1 위치에서 상기 오리지널 EFI 부트 어플리케이션을 맞춤형 EFI 부트 어플리케이션으로 대체하는 단계; 제 3 위치에 저장된 오리지널 GPT(GUID Partition Table)을 제 3 위치로 복사하는 단계; 및 상기 제 3 위치에서 상기 오리지널 GPT을 맞춤형 GPT로 대체하는 단계를 포함한다.

Description

맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법{COMPUTER-READABLE RECORDING HAVING MEDIUM CUSTOMIZED UNIFIED EXTENSIBLE FIRMWARE INTERFACE DRIVER}
본 발명은 통합 확장 인터페이스 드라이버(Unified Extensible Firmware Interface (UEFI))에 관한 것이다. 좀더 상세하게, PCI(a Peripheral Component Interconnect) 장치의 의존하거나 및/혹은 시스템 UEFI BIOS(Basic Input/Output System (BIOS)를 변경할 필요 없이 저장 장치들의 입출력을 필터링하는 맞춤형 UEFI 드라이버에 관한 것이다.
일반적으로, UEFI 환경에서 UEFI 드라이버를 로딩하는 두 가지 방법이 존재한다.
첫 번째 방법에서, PCI 드라이버는, PCI 장치 내에 ROM/플래시 메모리에 존재하는 옵션-ROM(read only memory) UEFI 드라이버를 채용한다. 이러한 옵션-ROM UEFI 드라이버는 PCI 드라이버 제조자에게 소유권이 있고, PCI 장치 ROM에 플래시 되고, 타사 소프트웨어에 의해 변조될 수 없다.
옵션-ROM UEFI 드라이버의 목적은, OS 환경 이전 동안에 PCI 장치 및 그것의 하부 장치들을 접근하는 것이다. 예를 들어, PCI 기반 저장 제어기 및 PCI 기반 저장 제어기에 연결된 디스크들은, UEFI 드라이버 BIOS를 이용하는 시스템 UEFI BIOS에 의해 접근된다. 그러므로, 옵션-ROM BIOS는 OS를 부트하는 PCI 장치를 요구한다. 옵션-ROM BIOS를 로딩하기 위한 이러한 물리적 PCI 장치의 요구는, 예를 들어, OS의 부팅을 지원하기 위하여 "라이트-백 캐싱"(write-back caching) 소프트웨어 혹은 RAID 소프트웨어와 같은 소프트웨어 제품만으로 불가능하다. 이러한 소프트웨어들은 단지 OS 드라이버로써 OS 로딩 동안에 로딩될 수 있다.
두 번째 방법에서, 시스템으로 로딩되는 UEFI 드라이버는 NVRAM(UEFI BIOS Non-Volatile Random Access Memory)에 저장될 수 있다. 그리고 시스템 UEFI BIOS 는 시동 부트 과정을 진행하는 동안에 UEFI 드라이버를 로딩할 수 있다. 각 시스템 제조자는 독점적 형식을 갖기 때문에, 이러한 NVRAM 영역은 타사 소프트웨어에 의해 사용될 수 없다.
따라서, 이러한 NVRAM에 쓰기를 시도하는 타사 소프트웨어는 복구할 수 없도록 시스템을 손상시킬 수 있다. UEFI 드라이버 변경하는 것은 시스템 제조자만 수행할 수 있는 시스템 BIOS 변경들을 필요로 한다.
본 발명의 목적은 UEFI 환경에서 UEFI 드라이버를 로딩하는 새로운 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 컴퓨터 프로세서에 의해 맞춤형 UEFI(Unified Extensible Firmware Interface) 드라이버를 로딩하는 방법은: 제 1 위치에 저장된 오리지널 EFI(Extensible Firmware Interface) 부트 어플리케이션을 제 2 위치로 복사하는 단계; 상기 제 1 위치에서 상기 오리지널 EFI 부트 어플리케이션을 맞춤형 EFI 부트 어플리케이션으로 대체하는 단계; 제 3 위치에 저장된 오리지널 GPT(Globally Unique identifiers (GUID) Partition Table)을 제 3 위치로 복사하는 단계; 및 상기 제 3 위치에서 상기 오리지널 GPT을 맞춤형 GPT로 대체하는 단계를 포함한다.
실시 예에 있어서, 상기 맞춤형 GPT는, 상기 ESP에 지시하는 ESP(EFI system Partition) 파티션 엔트리를 포함하고, 상기 ESP는 상기 맞춤형 EFI 부트 어플리케이션을 포함하고, 상기 맞춤형 EFI 부트 어플리케이션은, 상기 오리지널 GPT의 OS(operating system) 파티션들 위한 엔트리 포인터들을 갖는 상기 ESP가 필터되도록 블록 입출력(I/O) 프로토콜의 설치를 제어한다.
실시 예에 있어서, 상기 맞춤형 GPT는 OS 파티션 엔트리들을 생략한다.
실시 예에 있어서, 상기 맞춤형 EFI 부트 어플리케이션은, 상기 ESP를 위한 상기 블록 입출력 프로토콜이 설치될 때 상기 오리지널 EFI 부트 어플리케이션의 실행을 더 제어한다.
실시 예에 있어서, 상기 오리지널 EFI 부트 어플리케이션은 상기 OS를 로딩한다.
실시 예에 있어서, 상기 오리지널 EFI 부트 어플리케이션은 상기 오리지널 GPT에서 OS 파티션 에트리들을 위한 블록 입출력 프로토콜들의 설치를 제어하는 방법. 본 발명의 실시 예에 따른 맞춤형 UEEI(Unified Extensible Firmware Interface) 드라이버가 구현된 컴퓨터-읽기가능 레코딩 매체는: 상기 맞춤형 UEFI 드라이버는 맞춤형 UEFI 드라이버를 로딩하는 방법으로 컴퓨터 프로세서를 제어하는 컴퓨터-읽기가능 코드를 포함하고, 상기 방법은: 제 1 위치에 저장된 오리지널 EFI(Extensible Firmware Interface) 부트 어플리케이션을 제 2 위치로 복사하는 단계; 상기 제 1 위치에서 상기 오리지널 EFI 부트 어플리케이션을 맞춤형 EFI 부트 어플리케이션으로 대체하는 단계; 제 3 위치에 저장된 오리지널 GPT(Globally Unique Identifiers (GUID) Partition Table)을 제 4 위치로 복사하는 단계; 및 상기 제 3 위치에서 상기 오리지널 GPT를 맞춤형 GPT로 대체하는 단계를 포함한다.
본 발명의 다른 실시 예에 따른 맞춤형 UEFI(Unified Extensible Firmware Interface) 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체는: 상기 UEFI 드라이버는, 맞춤형 GPT(Globally Unique Identifiers (GUID) Partition Table); 및 맞춤형 EFI(Extensible Firmware Interface) 부트 어플리케이션을 포함하고, 상기 맞춤형 GPT는 상기 맞춤형 EFI 부트 어플리케이션을 저장하는 ESP(EFI System Partition)를 지시하고, 그리고 상기 맞춤형 EFI 부트 어플리케이션은 OS(operating system)을 위한 엔트리 포인트들을 갖는 상기 ESP가 필터되도록, 블록 입출력(I/O) 프로토콜의 설치를 제어한다.
본 발명에 따른 시스템은, PCI 장치 혹은 시스템 UEFI BIOS 변조 없는 맞춤형 UEFI 드라이버를 로딩하는 방법을 제공함으로써, 하이버네이션으로부터 부팅 및 재개를 제공하는 UEFI 이용하는 소프트웨어 단품을 이용할 수 있다.
도 1은 본 발명의 실시 예에 따른 UEFI 드라이버를 로딩하고 실행하는 위한 방법을 예시적으로 보여주는 흐름도이다.
도 2는 본 발명의 실시 예에 따른 "라이트-백 캐싱"을 수행하는 방법을 보여주는 흐름도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
도 1은 PC1 장치의 의존성 및/혹은 시스템 UEFI BIOS 변경없이 저장 장치들의 입출력을 필터링하는 UEFI 드라이버를 로딩하고 실행하는 방법을 예시적으로 보여주는 흐름도이다. PCI 장치 혹은 시스템 UEFI BIOS 변경 없이 맞춤형 UEFI 드라이버를 로딩함으로써, OA를 부팅하는 소프트웨어 제품만 활성화된다.
도 1에 도시된 방법은, UEFI 드라이버를 로딩하는 컴퓨터 시스템에 수행되는 소프트웨어 어플리케이션 혹은 모듈을 실행을 통해 수행될 수 있다.
UEFI 시스템이 저장 디스크들로부터 부트될 때, 시스템 UEFI BIOS 는 디스크의 MBR(master boot record)에 로드된다. MBR는 부트 디스크에서 섹터 0에 존재한다. 만일 MBR이 GPT(Globally Unique Identifiers (GUID) Partition Table)을 지시하면, 시스템 BIOS는 GPT를 읽고, 파티션들을 열거하고, 각 파티션들을 위한 블록 입출력(I/O) 프로토콜들을 설치한다. 여기서 블록 입출력 프로토콜은 디스크에서 파티션들을 접근하도록 인터페이스한다. 블록 입출력 프로토콜 없이, 디스크 내의 파티션들은 접근될 수 없다.
블록 입출력 프로토콜이 각 파티션을 위해 설치되면, 시스템 UEFI BIOS는 ESP(EFI System Partition)를 기대한다. ESP는 OS 부트 매니저(예를 들어, 마이크로소프트 윈도우즈에서, bootx64.efi는, ...efu\mircosoft\boot\bootmgfw.efi에 위치한 마이크로소트프 윈도우즈 부트 매니저의 복사이다)이다. 시스템 UEFI BIOS는 블록 입출력 프로토콜을 이용하는 ESP를 접근하고, OS 부트 매니저를 메모리로 로딩하고, 그리고 제어들을 OS 부트 매니저로 전송한다. 여기서 OS 부트 매니저는 OS 파티션(예를 들어, C:)을 접근하는데 블록 입출력 프로토콜을 이용하고, OS 로더(예를 들어, 마이크로소프트 윈도우즈에서 winload.efi)를 로딩한다. 여기서 OS 로더는 OS(예를 들어, 마이크로소프트 윈도우즈)의 리셋의 로딩 및 실행을 계속한다.
도 1에 도시된 실시 예에 있어서, 맞춤형 OS 부트 매니저는 제공될 수 있다. 그리고 오리지널 OS 부트 매니저는 메모리에 저장될 수 있다. OS 부트 매니저는 EFI 부트 어플리케이션으로 언급될 수 있다.
도 1에 도시된 실시 예에 있어서, 맞춤형 GPT는 제공될 수 있다. 오리지널 GPT는 ESP 파티션 엔트리에만 유지되도록 변경될 수 있다. 맞춤형 GPT를 얻기 위해서 모든 나머지 파티션 엔트리들은 GPT로부터 제거될 수 있다. 옵션적으로, OS 부팅을 위한 필요하지 않은 파티션들에 관한 엔트리들은 맞춤형 GPT에 유지될 수 있다. 예를 들어, OS 부팅에 필요하지 않는 파티션은 복구 혹은 백업될 수 있다.
도 1에 도시된 바와 같이, S105 단계에서, EFI 부트 어플리케이션의 복사를 만듦으로써, 현재의 EFI 부트 어플리케이션은 메모리에 저장된다. 마이크로소프트 윈도우즈 OS에서, EFI 부트 어플리케이션은 bootx64.efi 혹은 bootmgfw.efi일 수 있다.
S110 단계에서, 현재의 EFI 부트 어플리케이션은 맞춤형 EFI 부트 어플리케이션으로 대체된다. 현재의 EFI 부트 어플리케이션은 현재의 EFI 부트 어플리케이션을 맞춤형 EFI 부트 어플리케이션으로 오버라이팅함으로써 대체하거나, 혹은 현재의 부트 어플리케이션을 편집함으로써 대체할 수 있다. 맞춤형 EFI 부트 어플리케이션은, 실행될 때, 메모리에 저장된 오리지널 GPT를 페치할 수 있고, 입출력을 필터링할 수 있는 맞춤 엔트리 포인트들을 이용하여 GPT에서 ESP 파티션 엔트리를 제외하고 모든 유효 파티션 에트리들(예를 들어, C:)를 위한 블록 입출력 프로토콜을 설치할 수 있다. 맞춤형 EFI 부트 어플리케이션은 맞춤 블록 입출력 프로토콜을 위해 로딩될 필요가 있는 UEFI 드라이버 엔트리 포인터들을 포함할 수 있다. 모든 유효 파티션 엔트리들을 위한 블록 입출력 프로토콜들이 로딩될 때, 맞춤형 EFI 부트 어플리케이션은 메모리로부터 오리지널 EFI 부트 어플리케이션을 페치할 수 있고, 오리지널 EFI 부트 어플리케이션을 로딩할 수 있고, 그리고 OS 로딩을 위하여 오리지널 EFI 부트 어플리케이션에 제어를 전송할 수 있다.
S115 단계에서, GPT의 복사를 만들기 위해서 GPT는 메모리에 저장된다. 오리지널 GPT의 복사는 디스크의 끝에 저장될 수 있다.
S120 단계에서, ESP 엔트리와 다른 모든 GPT 엔트리들은 GPT로부터 제거된다. 옵션적으로, ESP 엔트리에 추가하여, OS 부팅을 위해 필요하지 않은 파티션들에 관한 엔트리들은 또한 CPT에 유지될 수 있다. 따라서, 변조된 GPT는 맞춤형 GPT를 구성할 수 있다.
이때, UEFI 드라이버는 로딩되고, 시스템은 새로운 UEFI 드라이버를 실행하기 위해 준비된다.
S125 단계에서, 시작 혹은 재부팅에서, GPT 디스크로부터 UEFI 시스템이 부팅된다.
S130 단계에서, 저장 디스크로부터 UEFI 시스템이 부팅될 때, 시스템 UEFI BIOS는 디스크의 MBR에 로딩된다. MBR는 항상 부팅 디스크의 제 1 섹터( 섹터 0)에 존재한다.
만일 MBR이 디스크가 GPT 디스크라고 지시하면, 시스템 BIOS는 옵션적으로 S135 단계에서 non-device UEFI 드라이버들을 로딩한다.
S140 단계에서, 시스템 BIOS는 디스크의 파티션들을 위한 블록 입출력 프로토콜을 설치하도록 시작한다.
S145 단계에서, 시스템 BIOS는 GPT를 읽고, GPT에 의해 지시되는 디스크의 파티션들을 열거한다. 여기서 GPT는 S120 단계의 맞춤형 GPT이고, 파티션들은 S120 단계의 맞춤형 GPT에 ESP 파티션 엔트리일 뿐일 수 있다. 상술 된 바와 같이, 백업 혹은 복구 파티션을 위하여, OS 부팅을 위해 불필요한 파티션들은 유지될 수 있다. 또한, 이러한 파티션 엔트리들은 S145 단계에서 읽혀질 수 있다.
S150 단계에서, 시스템 UEFI BIOS는 읽기 파티션들을 위해 블록 입출력 프로토콜들, 즉 ESP 파티션을 위한 블록 입출력 프로토콜을 설치한다. 다시, OS 부팅을 위해 불필요한 나머지 파티션들, 예를 들어 백업 혹은 복구 파티션들은 유지될 수 있다. 이러한 파티션들을 위한 블록 입출력 프로토콜들은 S150 단계에서 설치될 수 있다.
S155 단계에서, 시스템 BIOS는 설치된 블록 입출력 프로토콜을 이용하여 ESP 파티션으로부터 EFI 부트 매니저를 읽는다. EFI 부트 매니저는 S110 단계의 맞춤형 EFI 부트 매니저이다.
S160 단계에서, 시스템 BIOS는 EFI 부트 매니저에 제어를 전송한다.
상술 된 바와 같이, 블록 입출력 프로토콜은, 디스크의 파티션들이 접근될 수 없는 디스크에 파티션을 접근하게 하는 인터페이스이다. ESP 파티션과 다른 파티션 엔트리들이 맞춤형 GPT로부터 생략되기 때문에, 블록 입출력 프로토콜은 단지 ESP 파티션을 위한 설치된다. 따라서, 이 점에서, 디스크는 나머지 유효한 파티션들이 없는 원래 상태로 보인다.
S165 단계에서, EFI 부트 어플리케이션은 오리지널 GPT를 페치한다. 여기서 오리지널 GPT는 S115 단계에서 맞춤형 EFI 부트 어플리케이션에만 알려진 위치에 저장된다.
S170 단계에서, EFI 부트 어플리케이션은 오리지널 GPT의 파티션 엔트리들을 읽고, 그리고 이전에 로딩된 ESP 파티션을 제외한 파티션들(예를 들어, OS 파티션들 C:)에 대응하는 유효한 파티션 엔트리들 각각을 위하여 맞춤 엔트리 포인트들을 갖는 블록 입출력 프로토콜들을 설치한다. 이러한 파티션들을 위한 블록 입출력 프로토콜들이 설치되지 않기 때문에, 이러한 새로운 로딩된 파티션들은 시스템 BIOS 혹은 어떤 나머지 UEFI 어플리케이션에 보이지 않는다.
이 후에, 파티션들(OS 파티션들, 예를 들어 C:\ 포함) 각각을 위한 블록 입출력 프로토콜들이 연속적으로 설치되기 때문에, 이러한 파티션들에 연결된 모든 입출력은 S150 단계에서 로딩된 ESP를 위한 블록 입출력 프로토콜을 통하여 이동한다. 이는 이러한 새롭게 로딩된 파티션들의 필터링을 활성화한다.
S175 단계에서, 블록 입출력 프로토콜들이 오리지널 GPT에서 유지하는 모든 유효 파티션들을 위해 설치될 때, EFI 부트 어플리케이션은 메모리로부터 오리지널 EFI 매니저를 로딩하고, 그리고 OS 로더를 로딩하는 오리지널 EFI 부트 매니저에 제어를 전송한다. 여기서 OS 로더는 S180 단계의 OS의 로딩 및 실행을 유지한다.
OS 파티션들, 그리고 블록 입출력 프로토콜이 설치된 나머지 파티션들을 위한 모든 입출력은 지금 필터링될 수 있다.
도 2는 본 발명의 실시 예에 따른 "라이트-백 캐싱"을 수행하는 방법을 보여주는 흐름도이다.
실시 예에 있어서, UEFI 드라이버의 사용은 "라이트-백 캐싱" 소프트웨어 단품일 수 있다. 이러한 소프트웨어는 OS 부팅을 지원하는 pre-OS UEFI 환경에서 존재할 수 있다. 데이터의 일부는 캐시 장치에 존재할 수 있고 그리고 타겟 저장 디스크(디스크는 캐시됨)에 존재할 수 있다.
반면에, 실시 예에 있어서, 메모리에 로딩된 분리된 UEFI 드라이버/어플리케이션을 이용함으로써, 입출력은 독점 UEFI 드라이버 혹은 시스템 UEFI BIOS를 변조할 필요 없이 필터링 될 수 있다.
실시 예에 있어서, 이러한 방법은, PCI 장치에 존재하는 UEFI 드라이버가 특수한 PCI 장치 및 그것의 하부 장치들에 연결된 입출력을 단지 접근할 동안에, 어떠한 PCI 장치 및 그것의 하부 장치에서 입출력을 필터링하는 이점을 갖는다. 실시 예들은, 서로 다른 저장 제어기들에 존재하는 저장 장치들(예를 들어, 타겟 디스크 및 캐시 디스크)을 허용함으로써 "라이트-백 캐싱"과 같은 소프트웨어 단품, "소프트웨어 RAID", 및 "풀 디스크 엔크립션"(full disk encryption)을 위해 좀더 매력적일 수 있다.
"라이트-백 캐싱"의 경우, 이러한 방법은, 절대적으로 요구되지 않더라도 타겟 장치 디스크의 스피닝을 완화시킴으로써, 캐시 디스크로부터 거의 완벽하게 부트되도록 하는데 추가적으로 이용될 수 있다. "라이트-백 캐싱"의 방법은 도 2에서 설명된다.
S210 단계에서, 타겟 디스크의 GPT의 복사는 타겟 디스크로서 동일한 위치에 캐시 디스크에 저장된다. 캐시 디스크는 SSD(solid state disk)와 같은 고속 디스크일 수 있다.
S220 단계에서, 타겟 저장 디스크의 GPT의 모든 파티션들은 제거된다.
S230 단계에서, ESP 파티션들은 타겟 디스크에서 캐시 디스크로부터 복사된다.
S240 단계에서, 부터블 디스크로써 캐시 디스크가 설정된다.
S250 단계에서, 캐시 디스크에서, 도 1에 도시된 바와 같이, 오리지널 EFI 부트 어플리케이션은 저장된다. 캐시 디스크의 오리지널 EFI 부트 어플리케이션은 맞춤형 EFI 어플리케이션으로 대체된다.
본 발명의 실시 예에 있어서, 시스템은 캐시 SSD(타겟 디스크의 대신)로부터 부팅될 수 있고, 캐시 디스크에서 ESP로부터 맞춤 EFI 부트 어플리케이션을 로딩할 수 있다. 여기서 캐시 디스크는, 블록 입출력 프로토콜을 설정한 후에 오리지널 EFI 부트 어플리케이션을 로딩한다. 따라서, 캐시 디스크에 읽기 미쓰(read miss)가 있을 때까지, 타겟 디스크의 스피닝은 피할 수 있다.
유사한 방법은 하이버네이션과 같은 수면 상태들로부터 재개하는 이용될 수 있다.
본 발명의 실시 예에 따라, 이러한 방법은, 전체 OS가 캐시 디스크에 설치된 경우와 거의 동일한 하이버네이션 속도로 부트하고 및 재개한다.
본 발명의 실시 예에 따라, PCI 장치 혹은 시스템 UEFI BIOS 변조 없는 맞춤형 UEFI 드라이버를 로딩하는 새로운 방법은 설명된다. 따라서, 하이버네이션으로부터 부팅 및 재개를 제공하는 UEFI 이용하는 소프트웨어 단품이 가능하다.
본 발명의 실시 예에 따라, UEFI 드라이버는 PCI 장치 의존성 없이 로딩될 수 있고, UEFI 드라이버는 시스템 BIOS 변조들 없이 로딩될 수 있다.
상술 된 방법들의 동작들은 컴퓨터-읽기가능 레코딩 매체(예를 들어, 디스크, 메모리, CD-ROM, 등)에 저장된 컴퓨터-읽기가능 코드들을 실행하는 컴퓨터 프로세서(예를 들어, CPU)에 의해 구현될 수 있다. 컴퓨터 프로세서는 컴퓨터의 범용 프로세서, 컴퓨터의 특화된 프로세서, 혹은 저장 제어기의 프로세서일 수 있다. 컴퓨터-읽기가능 코드들은 UEFI 드라이버를 메모리로 로딩하기 위한 설치 프로그램을 포함할 수 있고, 그리고 메모리로 로딩되는 UEFI 드라이버를 포함할 수 있다. 여기서 UEFI 드라이버는 컴퓨터의 부트에서 컴퓨터 프로세서에 의해 실행된다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
UEFI: 통합 확장 펌웨어 인터페이스
EFI: 확장 펌웨어 인터페이스
GUID: 글로벌 단일 식별자
GPT: 글로벌 단일 식별자 파티션 테이블
ESP: 확장 펌웨어 인터페이스 시스템 파티션
MBR: 마스터 부트 레코더

Claims (18)

  1. 컴퓨터 프로세서에 의해 맞춤형 UEFI(Unified Extensible Firmware Interface) 드라이버를 로딩하는 방법에 있어서:
    제 1 위치에 저장된 오리지널 EFI(Extensible Firmware Interface) 부트 어플리케이션을 제 2 위치로 복사하는 단계;
    상기 제 1 위치에서 상기 오리지널 EFI 부트 어플리케이션을 맞춤형 EFI 부트 어플리케이션으로 대체하는 단계;
    제 3 위치에 저장된 오리지널 GPT(Globally Unique identifiers (GUID) Partition Table)을 제 3 위치로 복사하는 단계; 및
    상기 제 3 위치에서 상기 오리지널 GPT을 맞춤형 GPT로 대체하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 맞춤형 GPT는, 상기 ESP에 지시하는 ESP(EFI system Partition) 파티션 엔트리를 포함하고,
    상기 ESP는 상기 맞춤형 EFI 부트 어플리케이션을 포함하고,
    상기 맞춤형 EFI 부트 어플리케이션은, 상기 오리지널 GPT의 OS(operating system) 파티션들 위한 엔트리 포인터들을 갖는 상기 ESP가 필터되도록 블록 입출력(I/O) 프로토콜의 설치를 제어하는 방법.
  3. 제 2 항에 있어서,
    상기 맞춤형 GPT는 OS 파티션 엔트리들을 생략하는 방법.
  4. 제 2 항에 있어서,
    상기 맞춤형 EFI 부트 어플리케이션은, 상기 ESP를 위한 상기 블록 입출력 프로토콜이 설치될 때 상기 오리지널 EFI 부트 어플리케이션의 실행을 더 제어하는 방법.
  5. 제 4 항에 있어서,
    상기 오리지널 EFI 부트 어플리케이션은 상기 OS를 로딩하는 방법.
  6. 제 4 항에 있어서,
    상기 오리지널 EFI 부트 어플리케이션은 상기 오리지널 GPT에서 OS 파티션 에트리들을 위한 블록 입출력 프로토콜들의 설치를 제어하는 방법.
  7. 맞춤형 UEEI(Unified Extensible Firmware Interface) 드라이버가 구현된 컴퓨터-읽기가능 레코딩 매체에 있어서:
    상기 맞춤형 UEFI 드라이버는 맞춤형 UEFI 드라이버를 로딩하는 방법으로 컴퓨터 프로세서를 제어하는 컴퓨터-읽기가능 코드를 포함하고,
    상기 방법은: 제 1 위치에 저장된 오리지널 EFI(Extensible Firmware Interface) 부트 어플리케이션을 제 2 위치로 복사하는 단계;
    상기 제 1 위치에서 상기 오리지널 EFI 부트 어플리케이션을 맞춤형 EFI 부트 어플리케이션으로 대체하는 단계;
    제 3 위치에 저장된 오리지널 GPT(Globally Unique Identifiers (GUID) Partition Table)을 제 4 위치로 복사하는 단계; 및
    상기 제 3 위치에서 상기 오리지널 GPT를 맞춤형 GPT로 대체하는 단계를 포함하는 컴퓨터-읽기가능 레코딩 매체.
  8. 제 7 항에 있어서,
    상기 맞춤형 GPT는, 상기 ESP에 지시하는 ESP(EFI system Partition) 파티션 엔트리를 포함하고,
    상기 ESP는 상기 맞춤형 EFI 부트 어플리케이션을 포함하고,
    상기 맞춤형 EFI 부트 어플리케이션은, 상기 오리지널 GPT의 OS(operating system) 파티션들 위한 엔트리 포인터들을 갖는 상기 ESP가 필터되도록 블록 입출력(I/O) 프로토콜의 설치를 제어하는 컴퓨터-읽기가능 레코딩 매체.
  9. 제 8 항에 있어서,
    상기 맞춤형 GPT는 OS 파티션 엔트리들을 생략하는 컴퓨터-읽기가능 레코딩 매체.
  10. 제 8 항에 있어서,
    상기 맞춤형 EFI 부트 어플리케이션은, 상기 ESP를 위한 상기 블록 입출력 프로토콜이 설치될 때 상기 오리지널 EFI 부트 어플리케이션의 실행을 더 제어하는 컴퓨터-읽기가능 레코딩 매체.
  11. 제 10 항에 있어서,
    상기 오리지널 EFI 부트 어플리케이션은 상기 OS를 로딩하는 컴퓨터-읽기가능 레코딩 매체.
  12. 제 10 항에 있어서,
    상기 오리지널 EFI 부트 어플리케이션은 상기 오리지널 GPT에서 OS 파티션 에트리들을 위한 블록 입출력 프로토콜들의 설치를 제어하는 컴퓨터-읽기가능 레코딩 매체.
  13. 맞춤형 UEFI(Unified Extensible Firmware Interface) 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체에 있어서:
    상기 UEFI 드라이버는, 맞춤형 GPT(Globally Unique Identifiers (GUID) Partition Table); 및 맞춤형 EFI(Extensible Firmware Interface) 부트 어플리케이션을 포함하고,
    상기 맞춤형 GPT는 상기 맞춤형 EFI 부트 어플리케이션을 저장하는 ESP(EFI System Partition)를 지시하고, 그리고
    상기 맞춤형 EFI 부트 어플리케이션은 OS(operating system)을 위한 엔트리 포인트들을 갖는 상기 ESP가 필터되도록, 블록 입출력(I/O) 프로토콜의 설치를 제어하는 컴퓨터-읽기가능 레코딩 매체.
  14. 제 13 항에 있어서,
    상기 맞춤형 GPT는 상기 ESP를 지시하는 ESP(EFI System Partition) 파티션 엔트리를 포함하는 컴퓨터-읽기가능 레코딩 매체.
  15. 제 14 항에 있어서,
    상기 맞춤형 GPT는 OS 파티션 엔트리들을 생략하는 컴퓨터-읽기가능 레코딩 매체.
  16. 제 14 항에 있어서,
    상기 맞춤형 EFI 부트 어플리케이션은, 상기 ESP를 위한 상기 블록 입출력 프로토콜이 설치될 때 상기 오리지널 EFI 부트 어플리케이션의 실행을 더 제어하는 컴퓨터-읽기가능 레코딩 매체
  17. 제 16 항에 있어서,
    상기 오리지널 EFI 부트 어플리케이션은 상기 OS를 로딩하는 컴퓨터-읽기가능 레코딩 매체.
  18. 제 16 항에 있어서,
    상기 오리지널 EFI 부트 어플리케이션은 상기 오리지널 GPT에서 OS 파티션 에트리들을 위한 블록 입출력 프로토콜들의 설치를 제어하는 컴퓨터-읽기가능 레코딩 매체.
KR1020140071340A 2013-08-29 2014-06-12 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법 KR102226558B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361871618P 2013-08-29 2013-08-29
US61/871,618 2013-08-29
US14/149,342 US9411605B2 (en) 2013-08-29 2014-01-07 Device-less and system agnostic unified extensible firmware interface (UEFI) driver
US14/149,342 2014-01-07

Publications (2)

Publication Number Publication Date
KR20150026777A true KR20150026777A (ko) 2015-03-11
KR102226558B1 KR102226558B1 (ko) 2021-03-11

Family

ID=52584943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140071340A KR102226558B1 (ko) 2013-08-29 2014-06-12 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법

Country Status (3)

Country Link
US (1) US9411605B2 (ko)
KR (1) KR102226558B1 (ko)
CN (1) CN104424140B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016209552A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Firmware-related event notification

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792130B2 (en) * 2015-01-15 2017-10-17 AVAST Software s.r.o. Rebooting to a UEFI application from a UEFI supported system
KR102395195B1 (ko) * 2016-01-07 2022-05-10 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10521216B2 (en) 2017-01-17 2019-12-31 Oracle International Corporation Unified extensible firmware interface updates
US11036408B2 (en) 2017-03-26 2021-06-15 Oracle International Corporation Rule-based modifications in a data storage appliance monitor
CN112966276B (zh) * 2021-04-02 2022-08-16 杭州华澜微电子股份有限公司 一种计算机的安全启动方法、装置及介质
CN116243994B (zh) * 2023-05-10 2023-08-04 苏州浪潮智能科技有限公司 一种存储设备的驱动加载方法、操作系统启动方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064127A1 (en) * 2008-09-05 2010-03-11 Asustek Computer Inc. Method for updating basic input/output system and method for repairing thereof
KR20110060791A (ko) * 2009-11-30 2011-06-08 인텔 코포레이션 컴퓨터 구현 방법 및 시스템
US8006125B1 (en) * 2005-04-29 2011-08-23 Microsoft Corporation Automatic detection and recovery of corrupt disk metadata
KR20130059089A (ko) * 2011-11-28 2013-06-05 삼성전자주식회사 컴퓨터 시스템의 부팅 제어 방법 및 이를 수행하는 부팅 제어 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1378830B1 (en) * 2002-06-28 2006-04-05 Hewlett-Packard Company Operating system selector and data storage drive
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
EP1503283A1 (en) * 2003-08-01 2005-02-02 Hewlett-Packard Development Company, L.P. Data processing system and method
US7475189B2 (en) * 2005-03-04 2009-01-06 Microsoft Corporation Advanced hardware and software encapsulation of RAID solutions to facilitate data protection
US7734945B1 (en) * 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
US7757112B2 (en) * 2006-03-29 2010-07-13 Lenovo (Singapore) Pte. Ltd. System and method for booting alternate MBR in event of virus attack
US7610481B2 (en) * 2006-04-19 2009-10-27 Intel Corporation Method and apparatus to support independent systems in partitions of a processing system
US8321656B2 (en) 2009-06-13 2012-11-27 Phoenix Technologies Ltd. Timer use in extensible firmware interface compliant systems
TW201220191A (en) 2010-11-08 2012-05-16 Inventec Corp Electronic apparatus and booting method thereof
US8484631B2 (en) 2011-03-30 2013-07-09 Phoenix Technologies Ltd. Supporting hardware configuration changes in a UEFI firmware component
US9384094B2 (en) * 2013-01-08 2016-07-05 Veritas Us Ip Holdings Llc Method and system for instant restore of system volume from a backup image

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006125B1 (en) * 2005-04-29 2011-08-23 Microsoft Corporation Automatic detection and recovery of corrupt disk metadata
US20100064127A1 (en) * 2008-09-05 2010-03-11 Asustek Computer Inc. Method for updating basic input/output system and method for repairing thereof
KR20110060791A (ko) * 2009-11-30 2011-06-08 인텔 코포레이션 컴퓨터 구현 방법 및 시스템
KR20130059089A (ko) * 2011-11-28 2013-06-05 삼성전자주식회사 컴퓨터 시스템의 부팅 제어 방법 및 이를 수행하는 부팅 제어 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016209552A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Firmware-related event notification
US9612887B2 (en) 2015-06-26 2017-04-04 Intel Corporation Firmware-related event notification
US10445154B2 (en) 2015-06-26 2019-10-15 Intel Corporation Firmware-related event notification

Also Published As

Publication number Publication date
CN104424140A (zh) 2015-03-18
US9411605B2 (en) 2016-08-09
US20150067317A1 (en) 2015-03-05
CN104424140B (zh) 2018-10-19
KR102226558B1 (ko) 2021-03-11

Similar Documents

Publication Publication Date Title
KR102226558B1 (ko) 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법
CN109478135B (zh) 计算机系统和用于重新引导计算机系统的方法
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
KR102084816B1 (ko) Bpram을 사용한 소프트웨어 애플리케이션들의 레이아웃 및 실행
KR101861724B1 (ko) 사전 부팅 펌웨어 갱신을 위한 선택적인 전력 관리
US8032351B2 (en) Running a virtual machine directly from a physical machine using snapshots
JP5649184B2 (ja) ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム
JP5911504B2 (ja) ストリーミング技術に基づくソフトウェア・イメージのアップグレード
JP5767565B2 (ja) ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
JP2015102889A (ja) ファームウェアの更新方法、電子機器、コンピュータおよびコンピュータ・プログラム
JP6259459B2 (ja) Bpramを使用したオペレーティング・システムのレイアウトおよび実行
KR20140118093A (ko) 메모리 가상화 기반 스냅샷 부트 장치 및 방법
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
US20180095693A1 (en) Information processing apparatus, information processing system, and method for controlling information processing apparatus
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
CN107533441B (zh) 创建操作系统卷
TWI450090B (zh) 關於改變程式之啟動列表以判定電腦系統性能是否增進之方法及系統
TWI765443B (zh) 資料儲存裝置及維持資料儲存裝置正常開機的方法
JP7102524B2 (ja) 複数のバイナリイメージのファームウェア公開
US20120144182A1 (en) Apparatus and method for fast booting based on virtualization technique
TWI464583B (zh) 取得觸發功能之指令的方法
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
WO2008048581A1 (en) A processing device operation initialization system
JP6100750B2 (ja) メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置
JP5619999B2 (ja) ユーティリティプログラムを実行する方法、コンピュータシステム及びコンピュータプログラムプロダクト

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right