원문 보기: https://dawoum.duckdns.org/wiki/GUID_Partition_Table
GUID 파티션 테이블 (GUID Partition Table, GPT)은 하드 디스크 드라이브나 솔리드-스테이트 드라이브와 같은 물리적 컴퓨터 저장 장치의 파티션 테이블의 레이아웃에 대한 표준으로, 범용 고유 식별자 (UUID)를 사용하며, 이는 전역 고유 식별자 (GUID)라고도 알려져 있습니다. 통합된 확장-가능 펌웨어 인터페이스 (UEFI) 표준 (PC BIOS에 대한 통합된 EFI 포럼-제안 대체)의 일부를 형성하며, 그럼에도 불구하고 전통적인 512-바이트 디스크 섹터의 논리 블록 주소 지정 (LBA)에 대해 32비트를 사용하는 마스터 부트 레코드 (MBR) 파티션 테이블의 제한 때문에 일부 BIOS에도 사용됩니다.
모든 최신 개인용 컴퓨터 운영 시스템은 GPT를 지원합니다. x86 아키텍처의 macOS와 Microsoft Windows를 포함한 일부 운영 시스템은 EFI 펌웨어를 갖는 시스템에서만 GPT 파티션에서 부팅을 지원하지만, FreeBSD와 대부분의 리눅스 배포판은 BIOS 또는 EFI 펌웨어 인터페이스를 갖는 시스템에서 GPT 파티션에서 부팅할 수 있습니다.
History
1980년대 초반부터 널리 사용된 마스터 부트 레코드 (MBR) 파티셔닝 방식은 최신 하드웨어 사용에 대해 제한을 부과했습니다. 블록 주소와 관련된 정보에 대해 사용 가능한 크기는 32비트로 제한됩니다. 512-바이트 섹터를 갖는 하드 디스크에 대해, MBR 파티션 테이블 엔트리는 2 TiB (2³² × 512‑bytes) 또는 2.20 TB (2.20 × 10¹² bytes)의 최대 크기를 허용합니다.
1990년대 후반에, Intel은 결국 통합 확장-가능 펌웨어 인터페이스(Unified Extensible Firmware Interface, UEFI)가 되는 것의 일부로 새로운 파티션 테이블 형식을 개발했습니다. GUID 파티션 테이블은 UEFI 2.8 사양의 5장에 지정되어 있습니다. GPT는 논리 블록 주소에 64비트를 사용하여, 최대 264 섹터의 디스크 크기를 허용합니다. 512-바이트 섹터를 갖는 디스크에 대해, 최대 크기는 8 ZiB (264 × 512‑bytes) 또는 9.44 ZB (9.44 × 10²¹ bytes)입니다. 4,096-바이트 섹터를 갖는 디스크에 대해, 최대 크기는 64 ZiB (264 × 4,096‑bytes) 또는 75.6 ZB (75.6 × 10²¹ bytes)입니다.
2010년에, 하드-디스크 제조업체는 4,096-바이트 섹터 (Advanced Format)를 갖는 드라이브를 출시했습니다. 레거시 하드웨어와 소프트웨어와의 호환성을 위해, 그것들 드라이브에는 놓여있는 4,096-바이트 물리적 섹터에도 불구하고 하드 드라이브에 접근하는 엔터티에 512-바이트 섹터를 제공하는 에뮬레이션 기술 (512e)이 포함되어 있습니다. 드라이브가 단일 오정렬 4,096-바이트 쓰기 연산을 충족하기 위해 두 번의 읽기-수정-쓰기 작업을 수행해기 위해 강제될 때 쓰기 연산에서 성능이 저하될 수 있습니다. 2014년 4월부터, 에뮬레이션 기술 (4K native) 없이 엔터프라이즈급 드라이브가 시장에 출시되어 왔습니다.
운영 시스템 내에서 4 KB 논리 섹터에 대한 지원의 준비 상태는 해당 유형, 공급업체와 버전에 따라 다릅니다. 예를 들어, Microsoft Windows는 UEFI에서 Windows 8과 Windows Server 2012 (둘 다 2012년 출시)부터 4K 네이티브 드라이브를 지원합니다.
Features
MBR과 마찬가지로, GPT는 역사적인 실린더-헤드-섹터 (CHS) 주소 지정의 자리에 논리 블록 주소 지정 (LBA)을 사용합니다. 보호적인 MBR은 LBA 0에 저장되고, GPT 헤더는 LBA 1에 있으며, 백업 GPT 헤더는 마지막 LBA에 저장됩니다. GPT 헤더에는 전형적으로 LBA 2에 있는 파티션 테이블 (파티션 엔트리 배열)에 대한 포인터가 있습니다. 파티션 테이블의 각 엔트리는 128 바이트의 크기를 가집니다. UEFI 사양은 섹터 크기에 관계없이 최소 16,384바이트가 파티션 엔트리 배열에 할당되도록 규정합니다. 따라서, 512-바이트 섹터를 갖는 디스크에서, 최소 32 섹터가 파티션 엔트리 배열에 사용되고, 첫 번째 사용 가능한 블록은 LBA 34 이상에 있고, 반면에 4,096-바이트 섹터 디스크에서, 최소 4 섹터가 파티션 엔트리 배열에 사용되고, 첫 번째 사용 가능한 블록은 LBA 6 이상에 있습니다.
MBR variants
Protective MBR (LBA 0)
제한된 이전 버전과의 호환성을 위해, 레거시 마스터 부트 레코드 (MBR) 공간은 여전히 GPT 사양에 예약되어 있지만, 이제 MBR-기반 디스크 유틸리티가 GPT 디스크를 잘못 인식하고 덮어쓰는 것을 방지하는 방식으로 사용됩니다. 이것은 보호적 MBR이라고 참조됩니다.
전체 GPT 드라이브 (여기서 "전체"는 실제로 MBR에서 표현될 수 있는 드라이브의 최대한을 의미함)를 포함하는 EEh 유형의 단일 파티션이 표시되고 이를 GPT로 식별합니다. GPT 디스크를 읽을 수 없는 운영 시스템과 도구는 일반적으로 디스크를 알 수 없는 유형의 파티션 하나를 포함하고 빈 공간이 없다고 인식하고 사용자가 이 파티션의 삭제를 명시적으로 요청하고 확인하지 않는 한 전형적으로 디스크를 수정하는 것을 거부할 것입니다. 이를 통해 실수로 지우는 것을 최소화합니다. 나아가, GPT-인식 OS는 보호적 MBR을 확인하고 포함된 파티션 유형이 EEh 유형이 아니거나 목표 장치에 정의된 파티션이 여러 개 있으면, OS가 파티션 테이블 조작을 거부할 수 있습니다.
디스크의 실제 크기가 MBR 파티션 테이블에서 레거시 32-비트 LBA 엔트리를 사용하여 표현할 수 있는 최대 파티션 크기를 초과하면, 이 파티션의 기록된 크기는 최댓값에서 잘려, 나머지 디스크는 무시됩니다. 이것은 섹터당 512바이트의 디스크를 가정할 때 보고된 최대 크기가 2 TiB가 됩니다(512e 참조). 이는 4 KiB 섹터를 갖는 16 TiB (4Kn)가 되지만, 많은 이전 운영 시스템과 도구가 512 바이트의 섹터 크기에 대해 하드 코딩되어 있거나 32-비트 계산으로 제한되어 있기 때문에, 2 TiB 제한을 초과하는 것은 호환성 문제를 초래할 수 있습니다.
Hybrid MBR (LBA 0 + GPT)
EFI가 아닌 BIOS 서비스를 통한 GPT-기반 부팅을 지원하는 운영 시스템에서, 첫 번째 섹터는 부트로더 코드의 첫 번째 단계를 저장하는 데에도 사용될 수 있지만, GPT 파티션을 인식하도록 수정될 수 있습니다. MBR에서 부트로더는 512 바이트의 섹터 크기를 가정해서는 안 됩니다.
Partition table header (LBA 1)
![](https://blog.kakaocdn.net/dn/rdxOJ/btsLSfxb3tB/fRglMB0fgiRiZOZWtxLZPK/img.png)
파티션 테이블 헤더는 디스크에서 사용 가능한 블록을 정의합니다. 그것은 역시 파티션 테이블을 구성하는 파티션 엔트리의 수와 크기를 정의합니다 (테이블의 오프셋 80 및 84).
Partition entries (LBA 2–33)
![](https://blog.kakaocdn.net/dn/errPIu/btsLRDkOS0E/KyTGLs0eHEt5f4KQmJFiK0/img.png)
주요 헤더 뒤 및 백업 헤더 앞에, 파티션 엔트리 배열은 각 엔트리 블록에 대해 최소 128 바이트 크기를 사용하여 파티션을 설명합니다. 디스크에서 배열의 시작 위치와 각 엔터리의 크기는 GPT 헤더에 제공됩니다. 각 엔트리의 처음 16 바이트는 파티션 유형의 전역 고유 식별자 (GUID)를 지정합니다. 예를 들어, EFI 시스템 파티션에 대한 GUID는 C12A7328-F81F-11D2-BA4B-00A0C93EC93B입니다. 두 번째 16 바이트는 파티션에 고유한 GUID입니다. 그 다음에 시작 및 끝 64비트 LBA, 파티션 속성, 및 36자 (최대) 유니코드 파티션 이름이 나옵니다. GUID의 본성과 목적이고 RFC 4122에 따라, GUID 파티션 유형 지정자의 고유성을 보장하기 위해 중앙 레지스트리가 필요하지 않습니다.
64-비트 파티션 테이블 속성은 모든 파티션 유형에 대한 48-비트 공통 속성과 16-비트 유형-지정 속성 사이에 공유됩니다:
![](https://blog.kakaocdn.net/dn/KONjE/btsLShO48JK/YRySuuaGGXlOpFTZxQW540/img.png)
Microsoft는 기본 데이터 파티션에 대한 유형-지정 속성을 다음과 같이 정의합니다:
![](https://blog.kakaocdn.net/dn/Fuw3a/btsLS7kCcLC/o1xgw6KhNr5cWwj3MFso60/img.png)
Google은 ChromeOS 커널에 대한 유형-지정 속성을 다음과 같이 정의합니다:
![](https://blog.kakaocdn.net/dn/xnqrj/btsLRH1PACF/JqzljNhDQ7NczYq6FdjOP1/img.png)
Operating-system support
UNIX and Unix-like systems
![](https://blog.kakaocdn.net/dn/cdOR01/btsLRnCuvYz/eqRjYKKT0TtI5blcPNVSJK/img.png)
Windows: 32-bit versions
Windows 7 및 이전 버전은 32-비트 플랫폼에서 UEFI를 지원하 않고, 따라서 GPT 파티션에서 부팅을 허용하지 않습니다.
![](https://blog.kakaocdn.net/dn/x8cty/btsLRHOi9J2/aPLAN6PDnyDbxLFdsaqxEk/img.png)
Windows: 64-bit versions
디스크당 128개의 파티션으로 제한됩니다.
![](https://blog.kakaocdn.net/dn/SDyiR/btsLSfYdi9A/GByRWB9Jq9x2SAE8JYnjG0/img.png)
Partition type GUIDs
"파티션 유형 GUID"는 각 파티션 유형이 해당 유형에 고유한 GUID 번호에 의해 엄격하게 식별됨을 의미하고, 따라서 같은 유형의 파티션은 모두 같은 "파티션 유형 GUID"를 가질 것입니다. 각 파티션에는 역시 "파티션 고유 GUID"가 별도의 엔트리로 있으며, 이는 이름에서 알 수 있듯이 각 파티션에 대한 고유한 ID입니다.
External links
- Microsoft TechNet: Disk Sectors on GPT Disks (archived page)
- Microsoft Windows Deployment: Converting MBR to GPT without dats loss
- Microsoft TechNet: Troubleshooting Disks and File Systems
- Microsoft TechNet: Using GPT Drives
- Microsoft: FAQs on Using GPT disks in Windows
- Microsoft Technet: How Basic Disks and Volumes Work A bit MS-specific but good figures relate GPT to older MBR format and protective-MBR, shows layouts of complete disks, and how to interpret partition-table hexdumps.
- Apple Developer Connection: Secrets of the GPT
- Make the most of large drives with GPT and Linux
- Convert Windows Vista SP1+ or 7 x86_64 boot from BIOS-MBR mode to UEFI-GPT mode without Reinstall
- Support for GPT (Partition scheme) and HDD greater than 2.19 TB in Microsoft Windows XP
- Setting up a RAID volume in Linux with >2TB disks