티스토리 뷰

1. GPT 개요

GPT(GUID Partition Table)는 기존 MBR(Master Boot Record) 파티션 테이블의 용량 및 보안 제약을 개선하기 위해 개발된 파일 시스템입니다. GPT는 MBR의 2TB(0xFFFFFFFF) 한계를 넘어 최대 8ZB(0xFFFFFFFFFFFFFFFF)까지 지원할 수 있습니다.

1.1 GPT의 특징

  • 최대 128개의 주 파티션을 생성 가능 (MBR은 4개 제한)
  • CRC(Cyclical Redundancy Check)를 이용하여 파티션 테이블 보호 가능
  • 중요 데이터 구조를 볼륨 끝에 복제하여 장애 발생 시 복구 가능
  • 최신 EFI(Extensible Firmware Interface)와 함께 사용됨

2. EFI(Extensible Firmware Interface)

EFI는 인텔에서 BIOS의 대체 수단으로 제안한 펌웨어 인터페이스입니다. 현재는 UEFI(Universal Extensible Firmware Interface)로 발전하여 사용되고 있습니다.

2.1 EFI의 주요 특징

  • GUI 인터페이스 제공
  • 마우스 사용 가능
  • Pre-OS 소프트웨어 실행 가능 (예: 시스템 복구, 인터넷 브라우저)
  • 네트워크 기능 지원
  • 다국어 지원 (한국어 포함)

3. GPT와 MBR 비교

구분 MBR GPT
최대 주 파티션 개수 4개 128개
최대 디스크 크기 2TB 18EB(이론상 8ZB)
백업본 저장 X O
사용 가능 환경 BIOS UEFI 및 BIOS 호환
CRC 보호 X O

 

4. GPT 구조

GPT 디스크는 다음과 같은 논리적 구조를 가집니다.

  1. Protective MBR (0번 섹터)
    • GPT를 지원하지 않는 시스템에서 디스크를 보호하기 위한 MBR
    • 파일 시스템 타입: 0xEE (GPT 사용 여부 표시)
  2. GPT Header (1번 섹터)
    • GPT의 메타데이터를 포함하는 헤더
    • GPT 백업본 위치 정보 포함
  3. Partition Table (2번 섹터부터)
    • 최대 128개의 파티션 정보를 저장하는 영역
  4. 사용 가능한 파티션 영역
    • 실제 데이터가 저장되는 영역
  5. Backup GPT Header & Partition Table (디스크 마지막 섹터)
    • GPT 헤더 및 파티션 테이블의 백업본

5. GPT Header 구조

GPT Header는 논리적으로 1번 섹터에 위치하며, 주요 구조는 다음과 같습니다.

필드 오프셋 크기(Byte) 설명
Signature 0x200 8 "EFI PART" 값 저장
Revision 0x208 4 GPT 버전 (1.0)
Header Size 0x20C 4 GPT 헤더 크기 (보통 92 Byte)
CRC32 of Header 0x210 4 헤더의 무결성 체크 값
LBA of GPT Header 0x218 8 현재 GPT Header의 LBA 주소 (보통 0x01)
LBA of Backup GPT Header 0x220 8 GPT 헤더 백업 위치
Starting LBA for Partitions 0x228 8 파티션 시작 위치
Ending LBA for Partitions 0x231 8 파티션 끝 위치
Disk GUID 0x238 16 디스크의 GUID
Partition Table Entry Starting LBA 0x248 8 파티션 테이블 시작 위치
Number of Partition Entries 0x250 4 최대 파티션 엔트리 개수 (기본 128개)
Size of Partition Table Entry 0x254 4 파티션 엔트리 크기 (보통 128 Byte)
CRC32 of Partition Table 0x258 4 파티션 테이블의 무결성 체크 값

6. GPT Partition Entry 구조

 

GPT Partition Entry는 128 Byte 크기로, 하나의 섹터에 4개씩 저장됩니다.

필드 오프셋 크기(Byte) 설명
Partition Type GUID 0x400 16 파티션 유형 식별값
Unique Partition GUID 0x410 16 파티션의 고유 GUID
First LBA 0x420 8 파티션의 시작 LBA
Last LBA 0x428 8 파티션의 끝 LBA
Attribute Flags 0x430 8 파티션 속성 값 (예: 시스템 파티션)
Partition Name 0x438 72 파티션 이름 (UTF-16 인코딩)

7. GPT 보호 및 복구

7.1 Protective MBR

Protective MBR은 GPT를 지원하지 않는 운영체제에서 디스크를 보호하기 위해 사용됩니다. BIOS 기반 시스템에서 인식 가능하도록 설계되었으며, 파일 시스템 타입 값을 0xEE로 설정하여 GPT를 사용하는 디스크임을 표시합니다.

7.2 GPT 백업 구조

GPT는 주요 데이터 구조(헤더 및 파티션 테이블)를 디스크 마지막 부분에 백업합니다. 만약 GPT Header가 손상되면 백업 데이터를 사용하여 복구할 수 있습니다.

7.3 CRC32 체크섬

GPT는 CRC32를 사용하여 GPT Header 및 Partition Table의 무결성을 검증합니다. 손상된 경우 시스템이 이를 감지하고 복구 작업을 수행할 수 있습니다.