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分區啟動，見#作業系統支持。

## 特點

在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進位編輯器修改。

起始字節｜長度｜內容

0｜8位元組｜簽名（"EFI PART", 45 46 49 20 50 41 52 54）

8｜4位元組｜修訂（在1.0版中，值是00 00 01 00）

12｜4位元組｜分區表頭的大小（單位是字節，通常是92位元組，即5C 00 00 00）

16｜4位元組｜分區表頭（第0－91位元組）的CRC32校驗，在計算時，把這個欄位作為0處理，需要計算出分區序列的CRC32校驗後再計算本欄位

20｜4位元組｜保留，必須是0

24｜8位元組｜當前LBA（這個分區表頭的位置）

32｜8位元組｜備份LBA（另一個分區表頭的位置）

40｜8位元組｜第一個可用於分區的LBA（主分區表的最後一個LBA + 1）

48｜8位元組｜最後一個可用於分區的LBA（備份分區表的第一個LBA − 1）

56｜16位元組｜硬碟GUID（在類UNIX系統中也叫UUID）

72｜8位元組｜分區表項的起始LBA（在主分區表中是2）

80｜4位元組｜分區表項的數量

84｜4位元組｜一個分區表項的大小（通常是128）

88｜4位元組｜分區序列的CRC32校驗

92｜、｜保留，剩餘的字節必須是0（對於512位元組LBA的硬碟即是420個字節）

主分區表和備份分區表的頭分別位於硬碟的第二個扇區（LBA 1）以及硬碟的最後一個扇區。備份分區表頭中的資訊是關於備份分區表的。

## 分區表項（LBA 2–33）

GPT分區表使用簡單而直接的方式表示分區。一個分區表項的前16位元組是分區類型GUID。例如，EFI系統分區的GUID類型是`{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}`。接下來的16位元組是該分區唯一的GUID（這個GUID指的是該分區本身，而之前的GUID指的是該分區的類型）。再接下來是分區起始和末尾的64位LBA編號，以及分區的名字和屬性。

起始字節｜長度｜內容

0｜16位元組｜分區類型GUID

16｜16位元組｜分區GUID

32｜8位元組｜起始LBA（小端序）

40｜8位元組｜末尾LBA

48｜8位元組｜屬性標籤（如：`60`表示「只讀」）

56｜72位元組｜分區名（可以包括36個UTF-16（小端序）字符）

## 作業系統支持

### 類Unix作業系統

作業系統｜版本｜平台｜讀寫支持｜啟動支持｜備註

FreeBSD｜7.0以後｜IA-32、x86-64、ARM｜是｜是｜在MBR/GPT混合硬碟中，可以同時使用GPT和MBR分區標識。

Linux｜大多數x86架構的Linux發行版 Fedora 8+、Ubuntu 8.04+｜IA-32、x86-64｜是｜是｜諸如gdisk、GNU Parted、util-linux v2.23+ fdisk、SYSLINUX、安裝補丁後的GRUB 0.96和GRUB 2等新工具均已支持GPT。

macOS｜10.4.0以後（一些功能要到10.4.6以後）｜IA-32、x86-64、PowerPC、Apple晶片｜是｜是｜只有搭載英特爾晶片和Apple晶片的電腦支持GPT啟動。

MidnightBSD｜0.4-CURRENT以後｜IA-32、x86-64｜是｜需要CSM｜在MBR/GPT混合硬碟中，可以同時使用GPT和MBR分區標識。

Solaris｜Solaris 10以後｜IA-32、x86-64、SPARC｜是｜是

HP-UX｜HP-UX 11.20以後｜IA-64｜是｜是

### 32位Windows

系統版本｜發售日期｜平台｜讀寫支持｜啟動支持｜備註

Windows XP｜2001-10-25｜IA-32｜否｜否

Windows Server 2003｜2003-04-24｜IA-32｜否｜否

Windows Server 2003 SP1｜2005-03-30｜IA-32｜是｜否｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Vista｜2006-07-22｜IA-32｜是｜否｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Server 2008｜2008-02-27｜IA-32｜是｜否｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 7｜2009-10-22｜IA-32｜是｜否｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 8｜2012-08-01｜IA-32｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 8.1｜2013-08-27｜IA-32｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 10｜2015-07-29｜IA-32｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

### 64位Windows

系統版本｜發售日期｜平台｜讀寫支持｜啟動支持｜備註

Windows XP Professional x64 EditionWindows Server 2003｜2005-04-25｜x64｜是｜否｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Server 2003｜2005-04-25｜IA-64｜是｜是｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Vista｜2006-07-22｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Server 2008｜2008-02-27｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Server 2008｜2008-02-27｜IA-64｜是｜是｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 7｜2009-10-22｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Server 2008 R2｜2009-10-22｜IA-64｜是｜是｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 8Windows Server 2012｜2012-08-01｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 8.1｜2013-08-27｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 10｜2015-07-29｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows Server 2016｜2016-10-12｜x64｜是｜需要UEFI｜在MBR/GPT混合硬碟中優先使用MBR。

Windows 11｜2021-10-05｜x64、ARM64｜在MBR/GPT混合硬碟中優先使用MBR。

## 分區類型GUID

相關作業系統｜分區類型｜GUID

（None）｜未使用｜00000000-0000-0000-0000-000000000000

MBR分區表｜024DEE41-33E7-11D3-9D69-0008C781F39F

EFI系統分區｜C12A7328-F81F-11D2-BA4B-00A0C93EC93B

BIOS引導分區｜21686148-6449-6E6F-744E-656564454649

Windows｜微軟保留分區｜E3C9E316-0B5C-4DB8-817D-F92DF00215AE

基本數據分區linwin｜EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

邏輯軟碟管理工具元數據分區｜5808C8AA-7E8F-42E0-85D2-E1E90434CFB3

邏輯軟碟管理工具數據分區｜AF9B60A0-1431-4F62-BC68-3311714A69AD

Windows恢復環境｜DE94BBA4-06D1-4D40-A16A-BFD50179D6AC

IBM通用並行文件系統（GPFS）分區｜37AFFC90-EF7D-4e96-91C3-2D7AE055B174

HP-UX｜數據分區｜75894C1E-3AEB-11D3-B7C1-7B03A0000000

服務分區｜E2A1E728-32E3-11D6-A682-7B03A0000000

Linux｜數據分區linwin｜0FC63DAF-8483-4772-8E79-3D69D8477DE4

RAID分區｜A19D880F-05FC-4D3B-A006-743F0F84911E

交換分區｜0657FD6D-A4AB-43C4-84E5-0933C84B4F4F

邏輯捲軸管理員（LVM）分區｜E6D6D379-F507-44C2-A23C-238F2A3DF928

保留｜8DA63339-0007-60C0-C436-083AC8230908

FreeBSD｜啟動分區｜83BD6B9D-7F41-11DC-BE0B-001560B84F0F

數據分區｜516E7CB4-6ECF-11D6-8FF8-00022D09712B

交換分區｜516E7CB5-6ECF-11D6-8FF8-00022D09712B

UFS分區｜516E7CB6-6ECF-11D6-8FF8-00022D09712B

Vinum volume manager分區｜516E7CB8-6ECF-11D6-8FF8-00022D09712B

ZFS分區｜516E7CBA-6ECF-11D6-8FF8-00022D09712B

macOSDarwin｜HFS (HFS+) 分區｜48465300-0000-11AA-AA11-00306543ECAC

Apple UFS 容器｜55465300-0000-11AA-AA11-00306543ECAC

APFS 卷宗容器APFS 型 FileVault 卷宗容器｜7C3457EF-0000-11AA-AA11-00306543ECAC

ZFS｜6A898CC3-1DD2-11B2-99A6-080020736631

Apple RAID 分區｜52414944-0000-11AA-AA11-00306543ECAC

Apple RAID 離線分區｜52414944-5F4F-11AA-AA11-00306543ECAC

Apple 開機卷宗 (恢復模式)｜426F6F74-0000-11AA-AA11-00306543ECAC

Apple 卷標｜4C616265-6C00-11AA-AA11-00306543ECAC

Apple TV 恢復分區｜5265636F-7665-11AA-AA11-00306543ECAC

Apple Core Storage 卷宗容器 HFS+ 型 FileVault 卷宗容器｜53746F72-6167-11AA-AA11-00306543ECAC

SoftRAID_Status｜B6FA30DA-92D2-4A9A-96F1-871EC6486200

SoftRAID_Scratch｜2E313465-19B9-463F-8126-8A7993773801

SoftRAID_Volume｜FA709C7E-65B1-4593-BFD5-E71D61DE9B02

SoftRAID_Cache｜BBBA6DF5-F46F-4A89-8F59-8765B2727503

Solaris｜啟動分區｜6A82CB45-1DD2-11B2-99A6-080020736631

根分區｜6A85CF4D-1DD2-11B2-99A6-080020736631

交換分區｜6A87C46F-1DD2-11B2-99A6-080020736631

備份分區｜6A8B642B-1DD2-11B2-99A6-080020736631

/usr分區solmac｜6A898CC3-1DD2-11B2-99A6-080020736631

/var分區｜6A8EF2E9-1DD2-11B2-99A6-080020736631

/home分區｜6A90BA39-1DD2-11B2-99A6-080020736631

備用扇區｜6A9283A5-1DD2-11B2-99A6-080020736631

保留分區｜6A945A3B-1DD2-11B2-99A6-080020736631

6A9630D1-1DD2-11B2-99A6-080020736631 6A980767-1DD2-11B2-99A6-080020736631 6A96237F-1DD2-11B2-99A6-080020736631 6A8D2AC7-1DD2-11B2-99A6-080020736631

NetBSDnetbsd｜交換分區｜49F48D32-B10E-11DC-B99B-0019D1879648

FFS分區｜49F48D5A-B10E-11DC-B99B-0019D1879648

Log-structured File System (BSD)分區｜49F48D82-B10E-11DC-B99B-0019D1879648

RAID分區｜49F48DAA-B10E-11DC-B99B-0019D1879648

concatenated分區｜2DB519C4-B10F-11DC-B99B-0019D1879648

加密分區｜2DB519EC-B10F-11DC-B99B-0019D1879648

- 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部分的字節序被交換了。
- linwinlinwin Linux過去和Windows的數據分區使用相同的類型GUID（基本數據分區：EBD0A0A2-B9E5-4433-87C0-68B6B72699C7），這對在UEFI GPT配置下的雙啟動系統造成了一些問題。新的類型GUID（Linux數據分區：0FC63DAF-8483-4772-8E79-3D69D8477DE4）被引入以解決這一問題
- solmacsolmac Solaris系統中`/usr`分區的GUID在Mac OS X上被用作普通的ZFS分區。
- netbsd具體定義見 src/sys/sys/disklabel_gpt.h。NetBSD的GUID在單獨定義之前曾經使用過FreeBSD的GUID。

## MBR與GPT互相轉換

### Windows作業系統

在Win10 1703及更高版本，執行命令「mbr2gpt /convert /disk:盤號 /allowfullos」

或者使用DiskGenius等軟體將MBR轉換為GPT。

## 外部連結

- Microsoft TechNet: Disk Sectors on GPT Disks
- Microsoft TechNet: Using GPT Drives on x86-64 Systems
- Apple Developer Connection: Secrets of the GPT
- Make the most of large drives with GPT and Linux
- GPT fdisk : Information on Hybrid GPT-MBR, Converting MBR and BSD disklabels to GPT and Booting from GPT disks
- Microsoft : FAQs on Using GPT disks in Windows
- A forum post describing steps to modify existing Windows x64 BIOS-MBR based installations to boot from UEFI-GPT