KR101999617B1 - 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체 - Google Patents

전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR101999617B1
KR101999617B1 KR1020120105960A KR20120105960A KR101999617B1 KR 101999617 B1 KR101999617 B1 KR 101999617B1 KR 1020120105960 A KR1020120105960 A KR 1020120105960A KR 20120105960 A KR20120105960 A KR 20120105960A KR 101999617 B1 KR101999617 B1 KR 101999617B1
Authority
KR
South Korea
Prior art keywords
gpt
entry
backup data
header
mbr
Prior art date
Application number
KR1020120105960A
Other languages
English (en)
Other versions
KR20140039611A (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 삼성전자주식회사
Priority to KR1020120105960A priority Critical patent/KR101999617B1/ko
Priority to US14/032,265 priority patent/US9218249B2/en
Publication of KR20140039611A publication Critical patent/KR20140039611A/ko
Application granted granted Critical
Publication of KR101999617B1 publication Critical patent/KR101999617B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는, 제1 GPT(Primary GUID Partition Table), 제2 GPT(Secondary GUID Partition Table) 및 운영 체제를 저장하는 저장부, 상기 저장된 제1 GPT 및 운영 체제를 이용하여 상기 전자 장치를 부팅하는 제어부, 기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 유효성 판단부, 및, 상기 GPT가 유효하지 않으면, 상기 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 복원부를 포함한다.

Description

전자 장치, GPT 복원 방법 및 컴퓨터 판독가능 기록매체{ELECTRONIC APPARATUS, METHOD FOR RESTORE OF GUID PARTITION TABLE AND COMPUTER-READABLE RECORDING MEDIUM}
본 발명은 전자 장치, MBR 복원 방법 및 컴퓨터 판독가능 기록매체에 관한 것으로, 더욱 상세하게는 사용자의 실수, 바이러스, 시스템의 오류 등으로 손상된 GPT을 복원할 수 있는 전자 장치, GPT 복원 방법 및 컴퓨터 판독가능 기록매체에 관한 것이다.
최근에 컴퓨터 시스템이 고성능화되면서 고용량의 저장매체를 이용하고 있다. 이에 따라, 컴퓨터 시스템의 운영 체제는 마스터 부트 레코드(Master Boot Recoder, MBR, 이하 MBR이라고 칭한다)보다는 GPT(GUID Partition Table)를 이용하는 추세이다. 구체적으로, MBR의 경우 기록할 수 있는 파티션 엔트리가 4개뿐이었으며, 구조적으로 단일 파티션은 최대 2TB까지만 가질 수 있으나, GPT는 기록할 수 있는 파티션 엔트리가 128개이며, 단일 파티션은 최대 18EB(1EB=1,048,576TB)(이론적으로는 8ZB(1ZB=1024EB)까지 지원)까지 가질 수 있다.
이와 같이 GPT를 이용하는 컴퓨터 시스템에서 시스템이 온되는 경우 다음과 같은 일련의 부팅동작을 수행하게 된다. 먼저, 컴퓨터 시스템이 정상적으로 동작할 수 있도록 저장 매체에 저장되는 GPT를 읽고, 이를 기초로 읽고, 이를 기초로 운영 체제가 저장되어 있는 파티션의 부트 섹터 레코드를 독출하여 시스템 부팅 동작을 수행한다.
그러나 사용자의 실수, 바이러스, 시스템의 오류 등의 문제로 GPT의 내용이 손상되면, 시스템의 부팅이 불가능해 진다. 이 경우에, 사용자는 시스템을 사용하지 못하고, 운용체제를 재설치하여야 하는 불편함이 존재하였다.
따라서, GPT의 내용이 손상되는 경우, 용이하게 복원할 수 있는 방법이 요청되었다.
따라서, 본 발명의 목적은, 사용자의 실수, 바이러스, 시스템의 오류 등으로 손상된 GPT를 복원할 수 있는 전자 장치, MBR 복원 방법 및 컴퓨터 판독가능 기록매체를 제공하는 데 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 전자 장치는, 제1 GPT(Primary GUID Partition Table), 제2 GPT(Secondary GUID Partition Table) 및 운영 체제를 저장하는 저장부, 상기 저장된 제1 GPT 및 운영 체제를 이용하여 상기 전자 장치를 부팅하는 제어부, 기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 유효성 판단부, 및, 상기 GPT가 유효하지 않으면, 상기 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 복원부를 포함한다.
여기서, 상기 유효성 판단부는, 상기 제1 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 상기 제1 GPT의 헤더에 기저장된 체크섬 값을 비교하여 상기 제1 GPT의 유효성을 판단할 수 있다.
한편, 상기 유효성 판단부는, 상기 제1 GPT가 유효하지 않으면, 상기 제2 GPT의 유효성을 판단하고, 상기 복원부는, 상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원할 수 있다.
이 경우, 상기 유효성 판단부는, 상기 제2 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 상기 제2 GPT의 헤더에 기저장된 체크섬 값을 비교하여 상기 제2 GPT의 유효성을 판단할 수 있다.
한편, 상기 복원부는, 상기 제2 GPT가 유효하면, 상기 제1 GPT의 엔트리를 상기 제2 GPT의 엔트리로 교체하고, 상기 제2 GPT의 헤더의 백업 GPT 헤더 정보 및 체크섬 값을 재구성하고, 상기 제1 GPT의 헤더를 상기 재구성된 제2 GPT의 헤더로 교체할 수 있다.
한편, 상기 제어부는, 상기 전자 장치가 부팅되면 상기 제1 GPT에 대한 백업 데이터를 생성하여 상기 저장부에 저장하고, 상기 유효성 판단부는, 상기 제1 GPT가 유효하지 않으면, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일한지를 판단하고, 상기 복원부는, 상기 제1 GPT의 엔트리와 상기 제2 백업 데이터의 엔트리가 동일하면, 상기 백업 데이터의 헤더를 이용하여 상기 제1 GPT의 헤더를 복원할 수 있다.
이 경우, 상기 유효성 판단부는, 상기 제1 GPT가 유효하지 않고, 상기 제1 GPT의 엔트리와 상기 제2 백업 데이터의 엔트리가 동일하지 않으면, 상기 제2 GPT의 유효성을 판단하고, 상기 복원부는, 상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원할 수 있다.
이 경우, 상기 복원부는, 상기 제2 GPT가 유효하지 않으면, 상기 백업 데이터의 헤더 및 엔트리를 이용하여 상기 제1 GPT의 헤더 및 엔트리를 복원할 수 있다.
한편, 상기 제어부는, 상기 제1 GPT에 대한 백업 데이터를 하나의 파일로 상기 저장부에 저장할 수 있다.
한편, 상기 제어부는, 상기 제1 GPT에 대한 백업 데이터를 BIOS에 저장할 수 있다.
한편, 상기 저장부는 MBR을 더 저장하고, 상기 제어부는, 상기 전자 장치가 부팅되면 상기 MBR에 대한 MBR 백업 데이터를 생성하여 상기 저장부에 저장하고, 상기 유효성 판단부는, 상기 MBR 백업 데이터를 이용하여 상기 MBR의 유효성을 판단할 수 있다.
이 경우, 상기 복원부는, 상기 MBR이 유효하지 않으면, 상기 MBR 백업 데이터를 이용하여 상기 MBR을 복원할 수 있다.
한편, 상기 기설정된 이벤트는, 상기 운영 체제의 시작, 상기 운영 체제의 종료, 상기 운용체제의 재시작, 사용자의 로그 오프, 절전모드로의 전환 및 상기 제1 GPT에 대한 쓰기 명령 중 적어도 하나일 수 있다.
한편, 상기 유효성 판단부는, BIOS 또는 EFI(Extensible Firmware Interface)일 수 있다.
한편, 본 실시 예에 따른, 전자 장치의 GPT 복원 방법은, 기저장된 제1 GPT(Primary GUID Partition Table) 및 운영 체제를 이용하여 상기 전자 장치를 부팅하는 단계, 기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 단계, 및, 상기 제1 GPT가 유효하지 않으면, 기저장된 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 단계를 포함한다.
이 경우, 본 GPT 복원 방법은, 상기 제1 GPT가 유효하지 않으면, 상기 제2 GPT의 유효성을 판단하는 단계를 더 포함하고, 상기 복원하는 단계는, 상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원할 수 있다.
한편, 이 경우, 본 GPT 복원 방법은, 상기 전자 장치가 부팅되면 상기 제1 GPT에 대한 백업 데이터를 생성하여 저장하는 단계, 및, 상기 제1 GPT가 유효하지 않으면, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일한지를 판단하는 단계를 더 포함하고, 상기 복원하는 단계는, 상기 제1 GPT의 엔트리와 상기 제2 백업 데이터의 엔트리가 동일하면, 상기 백업 데이터의 헤더를 이용하여 상기 제1 GPT의 헤더를 복원할 수 있다.
이 경우, 본 GPT 복원 방법은, 상기 제1 GPT가 유효하지 않고, 상기 제1 GPT의 엔트리와 상기 제2 백업 데이터의 엔트리가 동일하지 않으면, 상기 제2 GPT의 유효성을 판단하는 단계를 더 포함하고, 상기 복원하는 단계는, 상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원할 수 있다.
한편, 본 GPT 복원 방법은, 상기 전자 장치가 부팅되면 상기 MBR에 대한 MBR 백업 데이터를 생성하여 저장하는 단계, 상기 MBR 백업 데이터를 이용하여 상기 MBR의 유효성을 판단하는 단계, 및, 상기 MBR이 유효하지 않으면, 상기 MBR 백업 데이터를 이용하여 상기 MBR을 복원하는 단계를 더 포함할 수 있다.
한편, GPT 복원 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서, 상기 GPT 복원 방법은, 기저장된 제1 GPT(Primary GUID Partition Table) 및 운영 체제를 이용하여 상기 전자 장치를 부팅하는 단계, 기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 단계, 및, 상기 GPT가 유효하지 않으면, 기저장된 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 단계를 포함한다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성도,
도 2는 본 발명의 일 실시 예에 따른 저장부의 저장 구조를 도시한 도면,
도 3은 도 2의 MBR의 구조를 도시한 도면,
도 4는 본 발명의 일 실시 예에 따른 GPT 복원 방법을 설명하기 위한 흐름도,
도 5는 도 4의 GPT 복원 방법을 구체적으로 설명하기 위한 흐름도이다.
도 6은 제1 실시 예에 따른 GPT 유효성 판단 및 복원 동작을 구체적으로 설명하기 위한 흐름도,
도 7은 제2 실시 예에 따른 GPT 유효성 판단 및 복원 동작을 구체적으로 설명하기 위한 흐름도,
도 8은 제1 실시 예에 따른 GPT 유효성 판단 및 복원 동작을 구체적으로 설명하기 위한 흐름도, 그리고,
도 9는 본 발명의 다른 실시 예에 따른 GPT 복원 방법을 설명하기 위한 흐름도이다.
이하 첨부된 도면들을 참조하여 본 발명의 일시 예를 더욱 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성도이다.
도 1을 참조하면, 본 실시 예에 따른 전자 장치(100)는 통신 인터페이스부(110), 사용자 인터페이스부(120), 저장부(130), 유효성 판단부(140), 복원부(150) 및 제어부(160)로 구성될 수 있다. 여기서 전자 장치(100)는 GPT를 이용하여 부팅을 하는 PC, 노트북, 태블릿, PMP, 핸드폰 등일 수 있다.
통신 인터페이스부(110)는 전자 장치(100)를 외부 장치(미도시)에 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 외부 장치에 접속되는 형태뿐만 아니라, 무선 통신(예를 들어, GSM, UMTS, LTE, WiBRO 등의 무선 통신) 방식에 의해서 접속될 수 있다.
사용자 인터페이스부(120)는 전자 장치(100)에서 지원하는 각종 기능을 사용자가 설정 또는 선택할 수 있는 다수의 기능키를 구비하며, 전자 장치(100)에서 제공하는 각종 정보를 표시할 수 있다. 사용자 인터페이스부(120)는 터치 스크린 등과 같이 입력과 출력이 동시에 구현되는 장치로 구현될 수 있고, 마우스 및 모니터의 결합을 통한 장치로도 구현이 가능하다.
저장부(130)는 전자 장치(100)의 구동을 위한 프로그램을 저장한다. 구체적으로, 저장부(130)는 전자 장치(100)의 구동시 필요한 각종 명령어의 집합인 프로그램을 저장할 수 있다. 여기서 프로그램은 GPT(GUID Partition Table) 및 운영 체제를 포함한다. 구체적으로, 운영 체제는 전자 장치(100)를 구동시키기 위한 운영 프로그램이고, GPT는 전자 장치(100)의 부팅 과정에서 운영 체제가 어디에, 어떻게 위치해 있는지를 식별하여 컴퓨터의 주기억장치에 적재될 수 있도록 하기 위한 정보이다. GPT의 구체적인 구성에 대해서는 도 2를 참조하여 후술한다.
그리고 저장부(130)는 제1 GPT의 백업 데이터 및 MBR의 백업 데이터인 MBR 백업 데이터를 저장한다. 한편, 구현시에 제1 GPT의 백업 데이터 및 MBR 백업 데이터는 제1 GPT가 저장되는 저장매체가 아니라 별도의 BIOS에 저장될 수도 있다.
유효성 판단부(140)는 기설정된 이벤트가 발생하면, GPT의 유효성을 판단한다. 구체적으로, 유효성 판단부(140)는 운영 체제의 시작, 운영 체제의 종료, 운용체제의 재시작, 사용자의 로그 오프, 절전 모드로의 전환, GPT에 대한 쓰기 명령 등의 이벤트가 발행되면, 제1 GPT가 유효한지를 판단할 수 있다.
먼저, 유효성 판단부(140)는 MBR과 MBR 백업 데이터를 비교하여, MBR에 대한 유효성을 판단할 수 있다. 구체적으로, 도 3과 관련하여 자세히 설명하겠지만, 시스템의 호환성을 위하여 GPT에서도 디스크의 첫 번째 섹터에 MBR이 위치한다. 그러나 GPT에서의 MBR은 운영체제가 저장된 파티션 정보 등을 저장하지 않고, 해당 디스크는 GPT를 지원하는 장치임을 알리는 정보를 제1 파티션 테이블 영역 및 예약 영역에 저장하고 있다. 따라서, 유효성 판단부(140)는 MBR의 제1 파티션 테이블 영역 및 예약 영역과 MBR 백업 데이터의 제1 파티션 테이블 영역 및 예약 영역을 비교하여, MBR의 유효성을 판단할 수 있다.
한편, 본 실시 예에서는 제1 파티션 테이블 영역 및 예약 영역만을 비교하는 것으로 도시하였지만, 구현시에 MBR의 전 영역과 MBR 백업 데이터의 전 영역을 비교하여 MBR에 대한 유효성을 판단하는 형태로도 구현될 수 있다.
그리고 유효성 판단부(140)는 제1 GPT에 대한 유효성을 판단할 수 있다. 구체적으로, 유효성 판단부(140)는 제1 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 제1 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제1 GPT의 유효성을 판단할 수 있다.
이때, 제1 GPT의 헤더에 기저장된 체크섬 값과 산출된 체크섬 값이 동일하면, 유효성 판단부(140)는 제1 GPT가 유효한 것으로 판단할 수 있다. 반면에 제1 GPT의 헤더에 기저장된 체크섬 값과 산출된 체크섬 값이 동일하지 않으면, 유효성 판단부(140)는 제1 GPT가 유효하지 않은 것으로 판단할 수 있다.
한편, GPT 시스템에서는 두 개의 GPT를 이용하여 파티션에 대한 정보를 저장하는데, 제1 GPT는 부팅 과정에서 이용하는 GPT 헤더와 GPT 엔트리를 저장하는 영역이고, 제2 GPT는 제1 GPT의 백업 영역이다. 따라서, 제1 GPT가 유효하지 않은 경우, 제1 GPT를 복원함에 있어서 제2 GPT를 이용할 수 있다. 다만, 제2 GPT 역시 사용자의 실수, 바이러스, 시스템의 오류 등의 문제로 손실될 수 있는바, 유효성 판단부(140)는 제1 GPT가 유효하지 않은 경우, 제2 GPT에 대한 유효성을 판단할 수 있다.
구체적으로, 유효성 판단부(140) 제2 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 제2 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제2 GPT의 유효성을 판단할 수 있다. 이때, 제2 GPT의 헤더에 기저장된 체크섬 값과 산출된 체크섬 값이 동일하면, 유효성 판단부(140)는 제2 GPT가 유효한 것으로 판단할 수 있다. 반면에 제2 GPT의 헤더에 기저장된 체크섬 값과 산출된 체크섬 값이 동일하지 않으면, 유효성 판단부(140)는 제2 GPT가 유효하지 않은 것으로 판단할 수 있다.
또한, 본 실시 예에서는 정상 부팅된 시점에 제1 GPT에 대한 백업 데이터를 생성한다는 점에서, 제1 GPT가 손상된 경우에 백업 데이터를 이용할 수 있다. 백업 데이터는 제1 GPT가 정상 부팅된 시점, 즉 유효성이 인정되는 시점에서 백업된 데이터라는 점에서 별도의 유효성 검토는 불필요하나, 유효성 판단부(140)는 시스템 안정성을 위하여 제1 GPT가 유효하지 않은 경우(또는 제1 GPT 및 제2 GPT가 유효하지 않은 경우)에 백업 데이터에 대한 유효성을 판단할 수 있다. 백업 데이터에 대한 유효성 검토 방식은 앞서 설명한 제1 GPT 또는 제2 GPT에 대한 유효성 검토 방식과 동일하게 수행될 수 있다.
한편, 제1 GPT는 헤더와 엔트리로 구성된다. 따라서, 사용자의 실수, 바이러스, 시스템의 오류 등에 의하여 헤더만이 손상될 수 있으며, 엔트리만이 손상될 수 있으며, 헤더 및 엔트리가 동시에 손상될 수도 있다. 이러한 경우 중 제1 GPT의 헤더만이 손실된 경우에는 제1 GPT의 헤더만으로 복구하여 손쉽게 제1 GPT를 복원할 수 있다는 점에서, 유효성 판단부(140)는 제1 GPT의 엔트리와 제2 GPT의 엔트리를 비교하여 제1 GPT의 엔트리의 유효성을 판단할 수 있다. 구체적으로, 유효성 판단부(140)는 제1 GPT가 유효하지 않은 경우, 제1 GPT의 엔트리와 제2 GPT의 엔트리를 바이트 단위로 비교하여 제1 GPT의 엔트리의 유효성을 판단할 수 있다. 이때, 유효성 판단부(140)는 제1 GPT의 엔트리와 제2 GPT의 엔트리가 동일하면, 제1 GPT의 엔트리는 유효한 것으로 판단할 수 있다. 반면에 제1 GPT의 엔트리와 제2 GPT의 엔트리가 동일하지 않으면, 제1 GPT의 엔트리는 유효하지 않은 것으로 판단할 수 있다.
한편, 이상에서는 제1 GPT의 엔트리와 제2 GPT의 엔트리를 비교하여 제1 GPT의 엔트리의 유효성을 검토하는 것으로 설명하였지만, 제1 GPT에 대한 백업 데이터가 있는 경우에는 제1 GPT의 엔트리와 백업 데이터의 엔트리를 비교하여 제1 GPT의 엔트리에 대한 유효성을 검토할 수도 있다. 구체적으로, 제1 GPT에 대한 백업 데이터가 존재하고, 제1 GPT가 유효하지 않은 경우, 유효성 판단부(140)는 제1 GPT의 엔트리와 백업 데이터의 엔트리를 바이트 단위로 비교하여 제1 GPT의 엔트리의 유효성을 판단할 수 있다. 이때, 유효성 판단부(140)는 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일하면, 제1 GPT의 엔트리는 유효한 것으로 판단할 수 있다. 반면에 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일하지 않으면, 제1 GPT의 엔트리는 유효하지 않은 것으로 판단할 수 있다.
복원부(150)는 MBR이 유효하지 않으면, 저장부(130)에 저장된 MBR 백업 데이터를 이용하여 MBR를 복원한다. 구체적으로, MBR이 유효하지 않은 것으로 판단되면, 복원부(150)는 MBR에 MBR 백업 데이터로 덮어 쓰기하여 MBR을 복원할 수 있다.
그리고 복원부(150)는 제1 GPT가 유효하지 않으면, 제2 GPT 또는 백업 데이터를 이용하여 제1 GPT를 복원한다. 구체적으로, 제1 GPT가 유효하지 않고, 제2 GPT가 유효한 경우, 복원부(150)는 제2 GPT를 재구성하여 제1 GPT를 복원할 수 있다. 보다 구체적으로, 복원부(150)는 제1 GPT의 엔트리를 제2 GPT의 엔트리로 교체하고, 제2 GPT의 헤더의 백업 GPT 헤더 정보 및 체크섬 값을 재구성하고, 제1 GPT 의 헤더를 재구성된 제2 GPT의 헤더로 교체할 수 있다. 한편, 제1 GPT가 유효하지 않지만, 제1 GPT의 엔트리가 유효한 경우, 복원부(150)는 제2 GPT의 헤더의 백업 GPT 헤더 정보 및 체크섬 값을 재구성하고, 제1 GPT 의 헤더만을 재구성된 제2 GPT의 헤더로 교체할 수 있다.
한편, 제1 GPT에 대한 백업 데이터가 존재하고, 제1 GPT가 유효하지 않으면, 복원부(150)는 제1 GPT의 엔트리를 백업 데이터의 엔트리로 교체하고, 제1 GPT의 헤더를 백업 데이터의 헤더로 교체할 수 있다. 한편, 제1 GPT가 유효하지 않지만, 제1 GPT의 엔트리는 유효한 경우, 복원부(150)는 제1 GPT의 헤더만을 백업 데이터의 헤더로 교체하여 제1 GPT를 복원할 수도 있다.
제어부(160)는 전자 장치(100) 내의 각 구성에 대한 제어를 수행한다. 구체적으로, 시스템이 온되면, 제어부(160)는 저장부(130)에 저장된 제1 GPT 및 운영 체제를 기초로 부팅을 수행하고, 전자 장치(100)가 부팅 되면 제1 GPT에 대한 백업 데이터 및 MBR에 대한 백업 데이터인 MBR 백업 데이터를 생성하여 저장부(130)에 저장할 수 있다. 이때, 백업 데이터는 하나의 파일 형태를 가질 수 있다. 한편, 본 실시 예에서는 제어부(160)가 백업 데이터를 생성하여 저장하는 것으로 설명하였지만, 이러한 백업 데이터의 생성 및 저장은 상술한 유효성 판단부(140) 또는 복원부(150)에서 수행될 수 있다. 또한, 이상에서는 생성된 백업 데이터를 저장부(130)에 저장하는 것만으로 설명하였지만, 구현시에는 백업 데이터를 바이오스(BIOS)에 저장하는 형태로도 구현될 수 있다.
그리고 제어부(160)는 운영 체제의 시작, 운영 체제의 종료, 운용체제의 재시작, 사용자의 로그 오프, 절전 모드로의 전환 등의 이벤트가 발행되면, 현재 MBR 및 제1 GPT에 대한 유효성이 판단되도록 유효성 판단부(140)를 제어할 수 있다. 그리고 제1 GPT가 유효한 것으로 판단되면, 제어부(160)는 발생된 이벤트에 대응되는 동작을 수행할 수 있다.
한편, MBR 및/또는 제1 GPT가 유효하지 않은 것으로 판단되면, 제어부(160)는 MBR 및/또는 제1 GPT가 복원되도록 복원부(150)를 제어하고, 복원 이후에 발생된 이벤트에 대응되는 동작을 수행할 수 있다.
이상과 같이 본 실시 예에 다른 전자 장치(100)는 제1 GPT가 유효하지 않은 경우, 제2 GPT 또는 백업 데이터를 이용하여 복원을 수행할 수 있다.
한편, 도 1을 설명함에 있어서, 유효성 판단부(140) 및 복원부(150)가 별도의 구성인 것으로 도시하고 설명하였지만, 구현시에는 유효성 판단부(140) 및 복원부(150)의 기능은 하나의 구성으로 구현될 수 있다. 이와 같이 하나의 구성을 구현되는 경우, 해당 구성은 BIOS 또는 EFI(Extensible Firmware Interface)일 수 있다.
도 2는 본 발명의 일 실시 예에 따른 저장부의 저장 구조를 도시한 도면이다.
저장부(130)는 MBR(210), 제1 GPT(220), 파티션 영역(240), 제2 GPT(230)을 포함할 수 있다. GPT 시스템에서는 LBA(Logical Block Addressing) 단위로 주소가 구분되며, 각 LBA는 512Byte로 구성된다.
MBR(210)은 EFI 시스템을 사용하지 않은 장치와의 호환을 위한 영역으로 저장매체(예를 들어, 하드 디스크)의 첫 번째 섹터에 위치한다. 구체적으로, 종래의 MBR은 운영 체제가 어디에, 어떻게 위치해 있는지에 대한 정보를 저장하는 영역이나, EFI 시스템에서는 이와 같은 정보는 제1 GPT에 저장된다. 따라서, EFI 시스템에서 MBR는 해당 디스크는 GPT 시스템을 지원한다는 정보만을 포함한다. 이에 대해서는 도 3을 참조하여 구체적으로 후술한다.
제1 GPT(220)는 운영 체제가 어디에, 어떻게 위치해 있는지에 대한 정보를 저장하는 영역으로, GPT 헤더(221) 및 GPT 엔트리(223)로 구성된다.
제1 GPT 헤더(221)는 제1 GPT(220)의 헤더로 92Byte의 크기를 가지며, Signature, Revision, header size, CRC32 of header(헤더의 체크섬 값), Current LBA, Backup LBA(제2 GPT의 주소 정보), First usable LBA for partitions, Last usable LBA, Disk GuID, Partition entries staring LBA, Number of Partition entries, Size of a partition entry, CRC 32 of partition arrary(엔트리의 체크섬 값) 의 정보를 갖는다.
제1 엔트리(223)는 파티션의 정보를 저장하며, 128Kbyte의 크기로 128개가 존재하며, 각 엔트리는 partition type GUID, Unique partition GUID, First LBA, Last LBA, Attribute flags, Partition name 정보를 갖는다. 이와 같이 GPT 시스템에서는 128개의 엔트리를 지원하는바 해당 디스크는 128개의 논리 파티션을 가질 수 있게 된다.
제2 GPT(230)는 제1 GPT의 백업 본으로 일반적으로 제1 GPT의 내용이 변경될 때, 제2 GPT의 내용도 함께 갱신된다. 이와 같은 제2 GPT(230) 역시 제2 GPT 헤더(231)와 제2 GPT 엔트리(233)로 구성된다.
제2 GPT 헤더(231)는 제1 GPT 헤더(221)의 백업본으로 제1 GPT 헤더(221)의 위치를 Backup LBA로 가지고, 자신의 위치를 Current LBA로 가진다. 이는 제1 GPT 헤더(221)의 Current LBA, Backup LBA의 값을 서로 반대로 저장한 형태로, 제1 GPT 헤더(221)는 제2 GPT 헤더(231)를 백업본으로 보고, 제2 GPT 헤더(231)는 제1 GPT 헤더(221)를 백업본으로 보고 있는 구조로 설정되어 있다. 이에 따라서, 제2 GPT 헤더(231)의 CRC 32 of header 값과 제1 GPT 헤더(221)의 CRC 32 of header 값은 일치하지 않는다.
이와 같은 점에서, 제2 GPT를 이용하여 제1 GPT를 복원하는 경우, 복원부(150)는 제2 GPT 헤더(231)의 Current LBA의 값과 Backup LBA의 값을 상호 교체하고, 상호 교체에 의한 제2 GPT 헤더의 CRC 32 값을 산출하여 제2 GPT 헤더를 재구성하고, 재구성된 제2 GPT 헤더를 제1 GPT 헤더에 덮어 쓰기하여 제1 GPT의 헤더를 복원할 수 있다.
제2 엔트리(233)는 파티션의 정보를 저장하며, 제1 엔트리(223)와 동일한 값을 갖는다. 따라서, 제2 GPT를 이용하여 제1 GPT를 복원하는 경우, 복원부(150)는 제2 GPT의 제2 엔트리를 제1 GPT의 제1 엔트리에 덮어 쓰기하여 제1 GPT의 엔트리를 복원할 수 있다.
파티션(240)은 실제 파티션이 존재하는 위치로, 운영 체제, 각종 프로그램 등이 저장되는 영역이다.
도 3은 도 2의 MBR의 구조를 도시한 도면이다.
도 3을 참조하면, MBR(300)은 부트 코드(310), 파티션 테이블 영역(320), 예약 영역(55AA)을 포함한다. 이러한 MBR은 저장매체의 첫 번째 섹터에 위치하고, 1개의 LBA로 구성되며, 통상 512byte의 크기를 갖는다.
GPT 형식에 있어서, MBR은 GPT 시스템을 지원하지 않는 시스템과의 호환성을 위하여 위치하는바, 부트 코드(310) 및 파티션 테이블 영역(320)의 3개의 파티션 테이블 영역(partition 2-4)에는 별도의 정보를 포함하지 않는다. 즉, 파티션 테이블 영역(320)의 partition 1과 예약 영역(55AA)에만 해당 디스크가 GPT 시스템을 지원한다는 정보를 포함한다.
도 4는 본 발명의 일 실시 예에 따른 GPT 복원 방법을 설명하기 위한 흐름도이다.
먼저, 기저장된 GPT 및 운영 체제를 이용하여 전자 장치를 부팅한다(S410). 구체적으로, 저장 매체에 저장되는 제1 GPT를 읽고, 이를 기초로 운영 체제가 저장되어 있는 파티션(액티브 파티션)의 부트 섹터 레코드를 독출하여 부팅 동작을 수행할 수 있다.
그리고 전자 장치가 부팅 되면 제1 GPT에 대한 백업 데이터를 생성하여 저장한다(S420). 구체적으로, 전자 장치(100)가 정상적으로 부팅되면, 부팅된 시점의 제1 GPT에 대한 백업 데이터를 생성하여 저장할 수 있다. 즉, 정상적으로 부팅이 수행된 제1 GPT은 유효한 것인바, 부팅된 시점에서의 제1 GPT을 백업 데이터로 저장할 수 있다.
기설정된 이벤트가 발생하면(S430), 제1 GPT의 유효성을 판단한다(S440). 구체적으로, 운영 체제의 종료, 운용체제의 재시작, 사용자의 로그 오프, 절전 모드로의 전환, 제1 GPT에 대한 쓰기 명령 등의 이벤트가 발행되면, 제1 GPT가 유효한지를 판단할 수 있다. 이때, MBR에 대한 유효성도 함께 판단될 수 있으며, 제1 GPT가 유효하지 않은 경우, 제2 GPT가 유효한지에 대한 유효성을 판단할 수 있다. 경우에 따라서는 제1 GPT에 대응되는 백업 데이터에 대한 유효성을 판단할 수 있으며, 제1 GPT가 유효하지 않은 경우, 제1 GPT 중 엔트리 영역은 유효한지에 대한 유효성 판단이 수행될 수도 있다.
그리고 제1 GPT가 유효하지 않으면, 제1 GPT에 대한 복원을 수행한다(S440). 구체적으로, 제1 GPT가 유효하지 않으나, 제1 GPT의 엔트리가 유효한 경우, 제2 GPT의 엔트리 또는 백업 데이터의 엔트리를 이용하여 제1 GPT의 엔트리를 복원하고, 제1 GPT의 헤더 또는 '제1 GPT의 헤더 및 엔트리'가 유효하지 않으면 제1 GPT의 엔트리 및 헤더를 '제2 GPT의 엔트리 및 헤더' 또는 '백업 데이터의 엔트리 및 헤더'를 이용하여 복원할 수 있다.
이상과 같이 본 실시 예에 GPT 복원 방법은 제1 GPT가 유효하지 않은 경우, 제2 GPT 또는 백업 데이터를 이용하여 복원을 수행할 수 있다. 도 4와 같은 GPT 복원방법은 도 1의 구성을 가지는 전자 장치상에서 실행될 수 있으며, 그 밖의 구성을 가지는 전자 장치상에서도 실행될 수 있다.
또한, 상술한 바와 같은 GPT 복원 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램으로 구현될 수 있고, 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
도 5는 도 4의 GPT 복원 방법을 구체적으로 설명하기 위한 흐름도이다.
도 5를 참조하면, 먼저, 전자 장치(100)의 전원이 공급되면(S505), EFI 펌웨어가 스타트업(start-up) 루틴을 수행한다(S510, S515). 여기서 스타트업 루틴은 전자 장치가 켜질 때 자동으로 실행되어 전자 장치의 상태를 검사하고, 시스템을 초기화하는 작업을 하고, 초기화 작업 중에 어떤 주변 장치가 연결되어 있는지 확인하는 일련의 프로세스이다.
EFI의 스타트업 루틴에 따라, 저장 매체에 저장되는 제1 GPT의 엔트리에 저장되는 파티션 정보에 따라 운영 체제를 독출하여 부팅이 수행될 수 있다(S520).
부팅이 수행되면, 제1 GPT 및 MBR에 대한 백업 데이터를 생성하여 저장한다(S525). 구체적으로, 운영 체제가 로드된 후 GPT 관리를 위한 응용 프로그램이 실행되고, 실행된 응용 프로그램에 의하여 정상적으로 부팅이 된 MBR 영역 512byte를 파일로 백업할 수 있다. 그리고 정상적으로 부팅된 제1 GPT의 헤더 및 엔트리를 파일로 저장매체에 백업할 수 있다. 이상에서는 백업 데이터를 저장 매체에 저장하는 것으로 설명하였지만, 구현시에 백업 데이터는 BIOS에 저장될 수도 있다.
이후에 기설정된 이벤트가 발생하는지를 감지한다(S530). 구체적으로, 본 실시 예에 따른 MBR 복원 동작은 다음 부팅시의 안정성을 도모하기 위한 것인바, 운영 체제가 종료되는 시점(예를 들어, 운영 체제의 종료, 재시작, 사용자의 로그 오프, 절전 모드로의 전환)에 수행될 수 있다. 따라서, 응용 프로그램은 이러한 이벤트가 발생하는지를 감지할 수 있다. 이상에서는 운영체제가 종료되는 시점만을 기설정된 이벤트라고 설명하였지만, 구현시에는 제1 GPT에 대한 쓰기 명령이 발생되는 시점, 즉 제1 GPT의 엔트리 또는 헤더가 수정되는 시점에 상술한 바와 같은 유효성 검사를 수행할 수 있다. 또는 운용체제가 시작되는 시점, 즉 PC가 켜지는 시점을 이벤트 발생 시점으로 이용할 수도 있다. 이와 관련하여서는 도 9와 관련하여 후술한다.
기설정된 이벤트가 발생하면, 먼저, MBR의 유효성을 판단한다(S535). 구체적으로, MBR과 기저장된 MBR 백업 데이터를 바이트 단위로 비교하여 동일한지 여부로 MBR의 유효성을 판단할 수 있다. 구현시에는 MBR의 제1 파티션 테이블 영역 및 예약 영역에 대해서만 유효성을 판단할 수도 있다.
판단 결과 MBR이 유효하지 않으면(S540-N), MBR 백업 데이터를 이용하여 MBR을 복원할 수 있다(S545). 구체적으로, MBR 백업 데이터를 MBR에 덮어쓰기 하여 MBR을 복원할 수 있다.
판단 결과 MBR이 유효하거나(S540-Y), MBR에 대한 복원이 완료되면, 제1 GPT에 대한 유효성을 판단한다(S550). 구체적인 제1 GPT에 대한 유효성 판단 동작에 대해서는 도 6 내지 도 8을 참조하여 후술한다.
판단 결과 제1 GPT가 유효하지 않으면(S555-N), 제1 GPT에 대한 복원을 수행한다(S560). 구체적인 복원 동작에 대해서도 도 6 내지 8을 참조하여 후술한다.
판단 결과 GPT가 유효하거나(S555-Y), 제1 GPT에 대한 복원이 완료되면, GPT 보호를 위한 응용 프로그램은 종료되고(S570), 발생된 이벤트에 대응되는 동작이 수행된다.
도 5와 같은 GPT 복원방법은 도 1의 구성을 가지는 전자 장치상에서 실행될 수 있으며, 그 밖의 구성을 가지는 전자 장치상에서도 실행될 수 있다. 또한, 상술한 바와 같은 GPT 복원 방법 방법의 525 내지 570단계는 응용 프로그램으로 구현될 수 있으며, 이러한 응용 프로그램은 컴퓨터 판독 기록매체에 저장될 수 있다. 이상에서는 상술한 바와 같은 동작이 응용 프로그램에서 수행되는 것으로 설명하였지만, 구현시에는 운영 체제에서 이러한 동작을 수행하는 형태로도 구현될 수 있다.
도 6은 제1 실시 예에 따른 GPT 유효성 판단 및 복원 동작을 구체적으로 설명하기 위한 흐름도이다. 구체적으로, 제1 실시 예에 따른 GPT 유효성 판단 및 복원 동작은 제2 GPT만을 이용하는 실시 예이다.
먼저, 제1 GPT의 유효성을 판단한다(S610). 구체적으로, 제1 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 제1 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제1 GPT의 유효성을 판단할 수 있다.
판단 결과 제1 GPT가 유효하지 않으면(S620-N), 제2 GPT의 유효성을 판단한다(S630). 구체적으로, 제2 GPT의 헤더 및 엔트리 각각에 대한 CRC 체크섬 값을 산출하고, 산출된 체크섬 값과 제2 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제2 GPT의 유효성을 판단한다.
판단 결과 제2 GPT가 유효하지 않으면(S640-N), 별도의 복원 동작 없이 동작을 종료한다.
반면에 제2 GPT가 유효하면(S640-Y), 제2 GPT를 재구성하여 제1 GPT를 복원한다(S650). 구체적으로, 제1 GPT의 엔트리를 제2 GPT의 엔트리로 교체하고, 제2 GPT의 헤더의 백업 GPT 헤더 정보 및 체크섬 값을 재구성하고, 제1 GPT의 헤더를 재구성된 제2 GPT의 헤더로 교체하여 제1 GPT를 복원할 수 있다.
이상과 같은 제1 실시 예에 따른 GPT 유효성 판단 및 복원 방법은 제2 GPT를 이용하여 제1 GPT에 대한 복원을 수행할 수 있는바, 별도의 백업 데이터의 이용 없이도 손쉽게 복원이 가능하다. 한편, 상술한 바와 같은 제1 실시 예에 따른 GPT 유효성 판단 및 복원 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램으로 구현될 수 있고, 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
한편, 도 6을 설명함에 있어서, 제2 GPT가 유효한 경우에 제2 GPT를 이용하여 제1 GPT를 복원하는 것으로 도시하고 설명하였지만, 구현시에는 제2 GPT가 유효한 경우에, 제2 GPT의 엔트리를 이용하여 제1 GPT의 엔트리가 유효한지를 판단하고, 제1 GPT의 엔트리가 유효한 경우 제1 GPT의 헤더만을 복원하는 형태로도 구현될 수 있다.
한편, 제2 GPT는 제1 GPT의 백업본으로 제1 GPT의 수정에 의하여 함께 수정될 경우가 존재한다. 따라서, 이하에서는 도 7 및 도 8을 참조하여 기생성된 백업 데이터를 이용하여 제1 GPT에 대한 복원을 수행하는 동작을 설명한다.
도 7은 제2 실시 예에 따른 GPT 유효성 판단 및 복원 동작을 구체적으로 설명하기 위한 흐름도이다. 구체적으로, 제2 실시 예에 따른 GPT 유효성 판단 및 복원 동작은 백업 데이터를 이용하는 실시 예이다.
먼저, 제1 GPT의 유효성을 판단한다(S710). 구체적으로, 제1 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 제1 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제1 GPT의 유효성을 판단할 수 있다.
판단 결과 제1 GPT가 유효하면(S720-Y), 별도의 복원 동작 없이 동작을 종료한다.
반면에, 제1 GPT가 유효하지 않으면(S620-N), 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일한지를 판단한다(S730). 구체적으로, 제1 GPT의 엔트리가 유효한지를 판단하기 위하여, 제1 GPT의 엔트리와 백업 데이터의 엔트리를 바이트 단위로 비교하여 상호 동일한지를 판단할 수 있다.
판단 결과 제1 GPT의 엔트리가 유효하면, 즉, 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일하면(S740-Y), 백업 데이터의 헤더를 이용하여 제1 GPT의 헤더를 복원한다(S750). 구체적으로, 제1 GPT의 헤더 영역에 백업 데이터의 헤더를 덮어쓰기 하여 제1 GPT의 헤더를 복원할 수 있다.
판단 결과 제1 GPT의 엔트리가 유효하지 않으면, 즉, 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일하지 않으면(S740-N), 제1 GPT에 대한 백업 데이터를 이용하여 제1 GPT의 헤더 및 엔트리를 복원한다(S760). 구체적으로, 제1 GPT의 헤더 영역에 백업 데이터의 헤더를 덮어쓰기하고, 제1 GPT의 엔트리 영역에 백업 데이터의 엔트리를 덮어쓰기 하여 제1 GPT를 복원할 수 있다.
이상과 같은 제2 실시 예에 따른 GPT 유효성 판단 및 복원 방법은 전자 장치가 유효하게 부팅된 시점의 생성된 백업 데이터를 이용하여 제1 GPT를 복원할 수 있게 된다. 한편, 상술한 바와 같은 제2 실시 예에 따른 GPT 유효성 판단 및 복원 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램으로 구현될 수 있고, 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
한편, 이상에서는 제1 GPT가 유효하지 않으면, 제1 GPT의 엔트리가 유효한지를 판단하는 동작을 수행하는 것으로 도시하고 설명하였지만, 구현시에는 제1 GPT가 유효하지 않은 경우에 제1 GPT의 엔트리에 대한 유효성 판단 동작 없이 바로 백업 데이터를 이용하여 제1 GPT의 헤더 및 엔트리를 복원하는 형태로도 구현될 수 있다.
한편, 도 6 및 도 7을 설명함에 있어서, 제2 GPT 또는 백업 데이터 각각을 이용하여 제1 GPT를 복원하는 것으로 도시하고 설명하였지만, 구현시에는 제2 GPT 및 백업 데이터를 함께 이용하여 제1 GPT를 복원하는 형태로도 구현될 수 있다. 이와 같은 예에 대해서는 도 8을 참조하여 이하에서 설명한다.
한편, 도 6 및 도 7에서는 제2 GPT만을 이용하거나 백업 데이터만을 이용하여 제1 GPT를 복원하는 것으로 도시하고 설명하였지만, 구현시에는 제2 GPT 및 백업 데이터를 함께 이용하는 형태로 구현될 수도 있다. 이에 대해서는 도 8을 참조하여 이하에서 설명한다.
도 8은 제3 실시 예에 따른 GPT 유효성 판단 및 복원 동작을 구체적으로 설명하기 위한 흐름도이다. 구체적으로, 제3 실시 예에 따른 GPT 유효성 판단 및 복원 동작은 제2 GPT 및 백업 데이터를 이용하는 실시 예이다.
먼저, 제1 GPT의 유효성을 판단한다(S810). 구체적으로, 제1 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 제1 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제1 GPT의 유효성을 판단할 수 있다.
판단 결과 제1 GPT가 유효하면(S820-Y), 별도의 복원 동작 없이 동작을 종료한다.
반면에, 제1 GPT가 유효하지 않으면(S820-N), 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일한지를 판단한다(S830). 구체적으로, 제1 GPT의 엔트리가 유효한지를 판단하기 위하여, 제1 GPT의 엔트리와 백업 데이터의 엔트리를 바이트 단위로 비교하여 상호 동일한지를 판단할 수 있다.
판단 결과 제1 GPT의 엔트리가 유효하면, 즉, 제1 GPT의 엔트리와 백업 데이터의 엔트리가 동일하면(S840-Y), 백업 데이터의 헤더를 이용하여 제1 GPT의 헤더를 복원한다(S850). 구체적으로, 제1 GPT의 헤더 영역에 백업 데이터의 헤더를 덮어 쓰기하여 제1 GPT의 헤더를 복원할 수 있다.
판단 결과 제1 GPT의 엔트리가 유효하지 않으면, 제2 GPT의 유효성을 판단한다(S860). 구체적으로, 제2 GPT의 헤더 및 엔트리 각각에 대한 CRC 체크섬 값을 산출하고, 산출된 체크섬 값과 제2 GPT의 헤더에 기저장된 체크섬 값을 비교하여 제2 GPT의 유효성을 판단한다.
판단 결과 제2 GPT가 유효하면(S870-Y), 제2 GPT를 재구성하여 제1 GPT를 복원한다(S880). 구체적으로, 제1 GPT의 엔트리를 상기 제2 GPT의 엔트리로 교체하고, 제2 GPT의 헤더의 백업 GPT 헤더 정보 및 체크섬 값을 재구성하고, 제1 GPT의 헤더를 재구성된 제2 GPT의 헤더로 교체할 수 있다. 한편, 이상에서는 추가적인 동작 없이 제2 GPT를 재구성하여 제1 GPT를 복원하는 것으로 도시하였지만, 구현시에는 제2 GPT가 유효한 경우, 제2 GPT의 엔트리와 제1 GPT의 엔트리를 상호 비교하여 제1 GPT의 엔트리가 유효한지를 판단하고, 제1 GPT의 엔트리가 유효한 경우, 제1 GPT의 헤더만을 제2 GPT의 헤더를 이용하여 복원할 수도 있다.
판단 결과 제2 GPT가 유효하지 않으면(S870-N), 제1 GPT에 대한 백업 데이터를 이용하여 제1 GPT의 헤더 및 엔트리를 복원한다(S790). 구체적으로, 제1 GPT의 헤더 영역에 백업 데이터의 헤더를 덮어쓰기하고, 제1 GPT의 엔트리 영역에 백업 데이터의 엔트리를 덮어 쓰기하여 제1 GPT를 복원할 수 있다.
이상과 같은 제3 실시 예에 따른 GPT 유효성 판단 및 복원 방법은 전자 장치가 유효하게 부팅된 시점의 생성된 백업 데이터를 이용하여 제1 GPT를 복원할 수 있게 된다. 한편, 상술한 바와 같은 GPT 유효성 판단 및 복원 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램으로 구현될 수 있고, 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
도 9는 다른 실시 예 따른 GPT 복원 방법을 구체적으로 설명하기 위한 흐름도이다.
도 9를 참조하면, 먼저, 전자 장치(100)의 전원이 공급되면(S905), EFI 펌웨어가 제1 GPT 유효성 검사를 위한 루틴을 수행한다(S910). 여기서 유효성 검사 루틴은 앞서 설명한 스타트업 루틴 과정 중에서 운영 체제의 부팅 전에 제1 GPT에 대한 유효성 검사를 수행하는 루틴이다.
그리고 제1 GPT 유효성 검사를 수행한다(S920). 구체적으로, 도 6 내지 도 8에서 도시하고 설명한 바와 같은 제1 GPT에 대한 유효성 검사를 수행할 수 있다.
제1 GPT에 대한 유효성 검사가 수행되면, 부트 매니저가 운영 체제를 독출하여 부팅이 수행될 수 있다(S820, 830).
부팅이 수행되면, 제1 GPT, MBR에 대한 백업 데이터를 생성하여 저장한다(S950). 구체적으로, 운영 체제가 로드된 후 GPT 관리를 위한 응용 프로그램이 실행되고, 실행된 응용 프로그램에 의하여 정상적으로 부팅이 된 MBR 영역 512byte를 파일로 백업할 수 있다. 그리고 정상적으로 부팅된 제1 GPT의 헤더 영역 및 엔트리 영역을 파일로 저장매체에 백업할 수 있다. 이상에서는 백업 데이터를 저장매체에 백업하는 것으로 설명하였지만, 구현시에 백업 데이터는 BIOS에 백업될 수도 있다.
따라서, 제2 실시 예에 따른 GPT 복원 방법은 시스템의 부팅하는 과정에서 제1 GPT에 대한 유효성 검토 및 복원을 수행하는바, 사용자가 PC를 강제로 끄거나 BSOD(Blue Screen Of Death) 등을 통해 시스템이 정상종료되지 않은 경우에도 PC를 부팅하면서 손상된 정보를 복원할 수 있게 된다. 도 9와 같은 제2 실시 예에 따른 GPT 복원방법은 도 1의 구성을 가지는 전자 장치상에서 실행될 수 있으며, 그 밖의 구성을 가지는 전자 장치상에서도 실행될 수 있다. 또한, 상술한 바와 같은 GPT 복원 방법 방법의 905 내지 940단계는 프로그램으로 구현될 수 있으며, 이와 같은 프로그램은 BIOS 또는 EFI에 저장될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 져서는 안 될 것이다.
100: 전자 장치 110: 통신 인터페이스부
120: 사용자 인터페이스부 130: 저장부
140: 유효성 판단부 150: 복원부
160: 제어부

Claims (20)

  1. 전자 장치에 있어서,
    제1 GPT(Primary GUID Partition Table), 제2 GPT(Secondary GUID Partition Table) 및 운영 체제를 저장하는 저장부;
    상기 저장된 제1 GPT 및 운영 체제를 이용하여 상기 전자 장치를 부팅하는 제어부;
    기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 유효성 판단부; 및
    상기 제1 GPT가 유효하지 않으면, 상기 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 복원부;를 포함하고,
    상기 제어부는,
    상기 전자 장치가 부팅되면 상기 제1 GPT에 대한 백업 데이터를 생성하여 상기 저장부에 저장하고,
    상기 유효성 판단부는,
    상기 제1 GPT가 유효하지 않으면, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일한지를 판단하고,
    상기 복원부는,
    상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일하면, 상기 백업 데이터의 헤더를 이용하여 상기 제1 GPT의 헤더를 복원하는 전자 장치.
  2. 제1항에 있어서,
    상기 유효성 판단부는,
    상기 제1 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 상기 제1 GPT의 헤더에 기저장된 체크섬 값을 비교하여 상기 제1 GPT의 유효성을 판단하는 것을 특징으로 하는 전자 장치.
  3. 제1항에 있어서,
    상기 유효성 판단부는,
    상기 제1 GPT가 유효하지 않으면, 상기 제2 GPT의 유효성을 판단하고,
    상기 복원부는,
    상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원하는 것을 특징으로 하는 전자 장치.
  4. 제3항에 있어서,
    상기 유효성 판단부는,
    상기 제2 GPT의 헤더(header) 및 엔트리(entry) 각각에 대한 CRC 체크섬(checksum) 값을 산출하고, 산출된 체크섬 값과 상기 제2 GPT의 헤더에 기저장된 체크섬 값을 비교하여 상기 제2 GPT의 유효성을 판단하는 것을 특징으로 하는 전자 장치.
  5. 제3항에 있어서,
    상기 복원부는,
    상기 제2 GPT가 유효하면, 상기 제1 GPT의 엔트리를 상기 제2 GPT의 엔트리로 교체하고, 상기 제2 GPT의 헤더의 백업 GPT 헤더 정보 및 체크섬 값을 재구성하고, 상기 제1 GPT의 헤더를 상기 재구성된 제2 GPT의 헤더로 교체하는 것을 특징으로 하는 전자 장치.
  6. 삭제
  7. 제1항에 있어서,
    상기 유효성 판단부는,
    상기 제1 GPT가 유효하지 않고, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일하지 않으면, 상기 제2 GPT의 유효성을 판단하고,
    상기 복원부는,
    상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원하는 것을 특징으로 하는 전자 장치.
  8. 제7항에 있어서,
    상기 복원부는,
    상기 제2 GPT가 유효하지 않으면, 상기 백업 데이터의 헤더 및 엔트리를 이용하여 상기 제1 GPT의 헤더 및 엔트리를 복원하는 것을 특징으로 하는 전자 장치.
  9. 제1항에 있어서,
    상기 제어부는,
    상기 제1 GPT에 대한 백업 데이터를 하나의 파일로 상기 저장부에 저장하는 것을 특징으로 하는 전자 장치.
  10. 제1항에 있어서,
    상기 제어부는,
    상기 제1 GPT에 대한 백업 데이터를 BIOS에 저장하는 것을 특징으로 하는 전자 장치.
  11. 제1항에 있어서,
    상기 저장부는 MBR을 더 저장하고,
    상기 제어부는,
    상기 전자 장치가 부팅되면 상기 MBR에 대한 MBR 백업 데이터를 생성하여 상기 저장부에 저장하고,
    상기 유효성 판단부는,
    상기 MBR 백업 데이터를 이용하여 상기 MBR의 유효성을 판단하는 것을 특징으로 하는 전자 장치.
  12. 제11항에 있어서,
    상기 복원부는,
    상기 MBR이 유효하지 않으면, 상기 MBR 백업 데이터를 이용하여 상기 MBR을 복원하는 것을 특징으로 하는 전자 장치.
  13. 제1항에 있어서,
    상기 기설정된 이벤트는, 상기 운영 체제의 시작, 상기 운영 체제의 종료, 상기 운영체제의 재시작, 사용자의 로그 오프, 절전모드로의 전환 및 상기 제1 GPT에 대한 쓰기 명령 중 적어도 하나인 것을 특징으로 하는 전자 장치.
  14. 제1항에 있어서,
    상기 유효성 판단부는, BIOS 또는 EFI(Extensible Firmware Interface)인 것을 특징으로 하는 전자 장치.
  15. 전자 장치의 GPT 복원 방법에 있어서,
    기저장된 제1 GPT(Primary GUID Partition Table) 및 운영 체제를 이용하여 상기 전자 장치를 부팅하는 단계;
    상기 전자 장치가 부팅되면, 상기 제1 GPT에 대한 백업 데이터를 생성하여 저장하는 단계;
    기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 단계; 및
    상기 제1 GPT가 유효하지 않으면, 기저장된 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 단계;를 포함하고,
    상기 복원하는 단계는,
    상기 제1 GPT가 유효하지 않으면, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일한지를 판단하는 단계; 및
    상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일하면, 상기 백업 데이터의 헤더를 이용하여 상기 제1 GPT의 헤더를 복원하는 단계;를 포함하는 GPT 복원 방법.
  16. 제15항에 있어서,
    상기 제1 GPT가 유효하지 않으면, 상기 제2 GPT의 유효성을 판단하는 단계;를 더 포함하고,
    상기 복원하는 단계는,
    상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원하는 것을 특징으로 하는 GPT 복원 방법.
  17. 삭제
  18. 제15항에 있어서,
    상기 제1 GPT가 유효하지 않고, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일하지 않으면, 상기 제2 GPT의 유효성을 판단하는 단계;를 더 포함하고,
    상기 복원하는 단계는,
    상기 제2 GPT의 유효하면, 상기 제2 GPT를 재구성하여 상기 제1 GPT를 복원하는 것을 특징으로 하는 GPT 복원 방법.
  19. 제15항에 있어서,
    상기 전자 장치가 부팅되면 MBR에 대한 MBR 백업 데이터를 생성하여 저장하는 단계;
    상기 MBR 백업 데이터를 이용하여 상기 MBR의 유효성을 판단하는 단계; 및
    상기 MBR이 유효하지 않으면, 상기 MBR 백업 데이터를 이용하여 상기 MBR을 복원하는 단계;를 더 포함하는 것을 특징으로 하는 GPT 복원 방법.
  20. GPT 복원 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 GPT 복원 방법은,
    기저장된 제1 GPT(Primary GUID Partition Table) 및 운영 체제를 이용하여 전자 장치를 부팅하는 단계;
    상기 전자 장치가 부팅되면, 상기 제1 GPT에 대한 백업 데이터를 생성하여 저장하는 단계;
    기설정된 이벤트가 발생하면, 상기 제1 GPT의 유효성을 판단하는 단계; 및
    상기 GPT가 유효하지 않으면, 기저장된 제2 GPT를 이용하여 상기 제1 GPT를 복원하는 단계;를 포함하고,
    상기 복원하는 단계는,
    상기 제1 GPT가 유효하지 않으면, 상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일한지를 판단하는 단계; 및
    상기 제1 GPT의 엔트리와 상기 백업 데이터의 엔트리가 동일하면, 상기 백업 데이터의 헤더를 이용하여 상기 제1 GPT의 헤더를 복원하는 단계;를 포함하는 컴퓨터 판독가능 기록매체.
KR1020120105960A 2012-09-24 2012-09-24 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체 KR101999617B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120105960A KR101999617B1 (ko) 2012-09-24 2012-09-24 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체
US14/032,265 US9218249B2 (en) 2012-09-24 2013-09-20 Electronic apparatus, method of restoring guid partition table (GPT) and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120105960A KR101999617B1 (ko) 2012-09-24 2012-09-24 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체

Publications (2)

Publication Number Publication Date
KR20140039611A KR20140039611A (ko) 2014-04-02
KR101999617B1 true KR101999617B1 (ko) 2019-07-12

Family

ID=50340122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120105960A KR101999617B1 (ko) 2012-09-24 2012-09-24 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체

Country Status (2)

Country Link
US (1) US9218249B2 (ko)
KR (1) KR101999617B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101805627B1 (ko) * 2011-11-28 2017-12-08 삼성전자주식회사 컴퓨터 시스템의 부팅 제어 방법 및 이를 수행하는 부팅 제어 장치
US10048865B2 (en) * 2014-10-24 2018-08-14 Microsoft Technology Licensing, Llc Disk partition stitching and rebalancing using a partition table
CN106909840A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种监控操作系统行为的方法及装置
CN107066343A (zh) * 2017-01-24 2017-08-18 广东欧珀移动通信有限公司 移动终端中分区表的修复方法、装置及移动终端
KR102405593B1 (ko) * 2017-08-23 2022-06-08 삼성전자 주식회사 전자 장치 및 그의 데이터 운용 방법
CN110275801B (zh) * 2019-06-21 2020-12-11 珠海格力电器股份有限公司 数据还原方法、装置、系统、计算机设备和存储介质
JP2023032245A (ja) * 2021-08-26 2023-03-09 キヤノン株式会社 情報処理装置、及びその制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
KR100545689B1 (ko) 2003-08-25 2006-01-24 남승리 컴퓨터 시스템의 백업 및 복원 방법 그리고 그 프로그램을기록한 기록매체
KR100884054B1 (ko) 2007-07-13 2009-02-18 주식회사 가자아이 컴퓨터 시스템의 백업 및 복원 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050032902A (ko) * 2003-10-02 2005-04-08 주식회사 삼보컴퓨터 데이타 저장 및 복구 방법
US7475189B2 (en) * 2005-03-04 2009-01-06 Microsoft Corporation Advanced hardware and software encapsulation of RAID solutions to facilitate data protection
US20140059293A1 (en) * 2012-08-27 2014-02-27 Samsung Electronics Co., Ltd. Method for protecting a gpt cached disks data integrity in an external operating system environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
KR100545689B1 (ko) 2003-08-25 2006-01-24 남승리 컴퓨터 시스템의 백업 및 복원 방법 그리고 그 프로그램을기록한 기록매체
KR100884054B1 (ko) 2007-07-13 2009-02-18 주식회사 가자아이 컴퓨터 시스템의 백업 및 복원 방법

Also Published As

Publication number Publication date
US9218249B2 (en) 2015-12-22
KR20140039611A (ko) 2014-04-02
US20140089653A1 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
KR101994811B1 (ko) 전자 장치, mbr 복원 방법 및 컴퓨터 판독가능 기록매체
KR101999617B1 (ko) 전자 장치, gpt 복원 방법 및 컴퓨터 판독가능 기록매체
TWI495997B (zh) 用於自管理處理之方法、裝置、及機器可讀取媒體
US7941700B2 (en) Operating system-based application recovery
US10324810B2 (en) Method and apparatus for redundant array of independent disks with raid metadata and sub-raid metadata stored using different raid algorithms
US20080091874A1 (en) System and method for loading programs from hdd independent of operating system
US20030014619A1 (en) Method and system for master boot record recovery
JP2012508932A (ja) キャッシュデータおよびメタデータを管理すること
JP2015508929A5 (ko)
JP2013520744A (ja) 最小ブートイメージの生成方法及びその装置
TW201337561A (zh) 資料可得性之掛接時間重新調整
WO2012163029A1 (zh) 启动恢复的方法和装置
US7188278B1 (en) Method, system, and apparatus for utilizing compressed program code in the boot block portion of a computer BIOS
TWI493341B (zh) 記憶體儲存裝置及其修復方法
US7849300B2 (en) Method for changing booting sources of a computer system and a related backup/restore method thereof
WO2014024279A1 (ja) メモリ障害リカバリ装置、方法、及びプログラム
CN111143125B (zh) 一种mce错误处理方法、装置及电子设备和存储介质
KR20130040636A (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
KR100706514B1 (ko) 하드디스크상의 운영체제 부팅 방법
KR20050032902A (ko) 데이타 저장 및 복구 방법
JPWO2014091629A1 (ja) 記憶装置の管理プログラム、電子装置及び記憶装置の管理方法
KR20130040638A (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
JP2012174031A (ja) 情報処理装置、情報処理装置の起動方法、プログラム
CN107704198B (zh) 信息处理的方法及电子设备
CN110908607B (zh) 板载raid数据重建方法、装置、设备及可读存储介质

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
GRNT Written decision to grant