GUID磁碟分割表

GUID磁碟分割表（GUID Partition Table，缩写：GPT）是使用全局唯一标识符（GUID，也称通用唯一标识符）对物理计算机存储设备（例如硬盘驱动器或固态驱动器）的分区表进行布局的标准。作为统一可扩展固件接口（UEFI）标准的一部分（统一可扩展固件接口论坛建议其为个人电脑BIOS的替代品），由于主引导记录（MBR）分区表的限制，它也被用在一些BIOS。MBR分区表使用32位用于传统512字节磁盘扇区的逻辑区块位址（LBA）。
对于那些扇区为512字节的磁盘，MBR分区表不支持容量大于2.2 TB（2.2×1012字节）的分区。然而，一些硬盘制造商（诸如希捷和西部数据）注意到这个局限性，并且将他们的容量较大的磁盘升级到4 KiB的扇区，这意味着MBR的有效容量上限提升到16 TiB。  这个看似“正确的”解决方案，在临时地降低人们对改进磁盘分配表的需求的同时，也给市场带来关于在有较大的块（block）的设备上从BIOS启动时，如何最佳的划分磁盘分区的困惑。GPT分配64位给逻辑块地址，因而使得最大分区大小在264-1个扇区成为可能。对于每个扇区大小为512字节的磁盘，那意味着可以有9.4 ZB（9.4×1021字节=18,446,744,073,709,551,615（264-1）个扇区 × 512字节每扇区）的最大空间。
截止至2010年，大多数操作系统对GPT均有所支持，尽管包括Mac OS X和Windows在内的一些仅支持在EFI基础上自GPT分区启动，见#操作系统支持。
GPT分区表的结构。此例中，每个逻辑块（LBA）为512字节，每个分区的记录为128字节。负数的LBA地址表示从最后的块开始倒数，−1表示最后一个块。

**特点**
在MBR硬盘中，分区信息直接存储于主引导记录（MBR）中（主引导记录中还存储着系统的引导程序）。但在GPT硬盘中，分区表的位置信息储存在GPT头中。但出于兼容性考虑，硬盘的第一个扇区仍然用作MBR，之后才是GPT头。
跟现代的MBR一样，GPT也使用逻辑区块位址（LBA）取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0，GPT头存储于LBA 1，接下来才是分区表本身。64位Windows操作系统使用16,384字节（或32扇区）作为GPT分区表，接下来的LBA 34是硬盘上第一个分区的开始。
苹果公司曾经警告说：“不要假定所有设备的块大小都是512字节。”一些现代的存储设备如固态硬盘可能使用1024, 2048或4096扇区。
使用英特尔架构的苹果机也使用GPT。
为了减少分区表损坏的风险，GPT在硬盘最后保存了一份分区表的副本。

**传统MBR (LBA 0)**
在GPT分区表的最开头，出于兼容性考虑仍然存储了一份传统的MBR，用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据，这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中，这里也用于存储第一阶段的启动代码。在这个MBR中，只有一个标识为0xEE的分区，以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区，并且拒绝对硬盘进行操作，除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外，能够识别GPT分区表的操作系统会检查保护MBR中的分区表，如果分区类型不是0xEE或者MBR分区表中有多个项，也会拒绝对硬盘进行操作。
在使用MBR/GPT混合分区表的硬盘中，这部分存储了GPT分区表的一部分分区（通常是前四个分区），可以使不支持从GPT启动的操作系统从这个MBR启动，启动后只能操作MBR分区表中的分区。如早期Boot Camp就是使用这种方式启动Windows 7。

**分区表头（LBA 1）**
分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows Server 2003的机器上，最多可以创建128个分区，即分区表中保留了128个项，其中每个都是128字节。（EFI标准要求分区表最小要有16,384字节，即128个分区项的大小）
分区表头还记录了这块硬盘的GUID，记录了分区表头本身的位置和大小（位置总是在LBA 1）以及备份分区表头和分区表的位置和大小（在硬盘的最后）。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错，如果出错了，可以使用软件从硬盘最后的备份GPT中恢复整个分区表，如果备份GPT也校验错误，硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。
主分区表和备份分区表的头分别位于硬盘的第二个扇区（LBA 1）以及硬盘的最后一个扇区。备份分区表头中的信息是关于备份分区表的。

**分区表项（LBA 2–33）**
GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如，EFI系统分区的GUID类型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID（这个GUID指的是该分区本身，而之前的GUID指的是该分区的类型）。再接下来是分区起始和末尾的64位LBA编号，以及分区的名字和属性。

**操作系统支持**

**类Unix操作系统**

**32位Windows**

**64位Windows**

**分区类型GUID**
# guidord本表中的GUID使用小端序表示。例如，EFI系统分区的GUID在这里写成C12A7328-F81F-11D2-BA4B-00A0C93EC93B但实际上它对应的16字节的序列是28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B——只有前3部分的字节序被交换了。
# a Linux和Windows的数据分区使用相同的GUID。
# a Solaris系统中/usr分区的GUID在Mac OS X上被用作普通的ZFS分区。
# ^具体定义见 src/sys/sys/disklabel_gpt.hdate=20110702083128 。NetBSD的GUID在单独定义之前曾经使用过FreeBSD的GUID。

**MBR与GPT互相转换**

**Windows操作系统**
在Win10 1703及更高版本，执行命令“mbr2gpt /convert /disk:盘号 /allowfullos”
或者使用DiskGenius等软件将MBR转换为GPT。

**参见**
 主引导记录- GUID- 硬盘分区- 可扩展固件接口- BIOS

**外部链接**
 Microsoft TechNet:  Disk Sectors on GPT Disks- Microsoft TechNet:  Using GPT Drives on x86-64 Systemsdate=20050706074131 - Apple Developer Connection:  Secrets of the GPT date=20080518082924 -  Make the most of large drives with GPT and Linux date=20180929042338 - GPT fdisk :  Information on Hybrid GPT-MBR, Converting MBR and BSD disklabels to GPT and Booting from GPT disks date=20210115054648 - Microsoft :  FAQs on Using GPT disks in Windowsdate=20110219111649 -  A forum post describing steps to modify existing Windows x64 BIOS-MBR based installations to boot from UEFI-GPT