GUID磁碟分割表
GUID磁碟分割表(英語:GUID Partition Table,縮寫:GPT)是使用通用唯一標識符(也稱為全局唯一標識符(GUID))對物理計算機存儲設備(例如硬盤驅動器或固態驅動器)的分區表進行布局的標準。作為統一可擴展固件接口(UEFI)標準的一部分(統一可擴展固件接口論壇建議其為個人電腦BIOS的替代品),由於主引導記錄(MBR)分區表的限制,它也被用在一些BIOS。主引導記錄(MBR)分區表使用32位用於傳統512字節磁盤扇區的邏輯塊尋址(LBA)。
對於那些扇區為512字節的磁盤,MBR分區表不支持容量大於2.2TB(2.2×1012字節)[1]的分區。然而,一些硬盤製造商(諸如希捷和西部數據)注意到這個局限性,並且將他們的容量較大的磁盤升級到4KB的扇區,這意味着MBR的有效容量上限提升到16 TiB。 這個看似「正確的」解決方案,在臨時地降低人們對改進磁盤分配表的需求的同時,也給市場帶來關於在有較大的塊(block)的設備上從BIOS啟動時,如何最佳的劃分磁盤分區的困惑。GPT分配64bits給邏輯塊地址,因而使得最大分區大小在264-1個扇區成為可能。對於每個扇區大小為512字節的磁盤,那意味着可以有9.4ZB(9.4×1021字節)或16 EiB-1個512字節(9,444,732,965,739,290,426,880=18,446,744,073,709,551,615(264-1)個扇區×512(29)字節每扇區)[1][2]。
截止至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是硬盤上第一個分區的開始。
蘋果公司曾經警告說:[3]「不要假定所有設備的塊大小都是512字節。」一些現代的存儲設備如固態硬盤可能使用1024, 2048或4096扇區。[4]
使用英特爾架構的蘋果機也使用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發行版 |
IA-32、x86-64 | 是 | 是 | 諸如gdisk、GNU Parted、[6][7]util-linux v2.23+ fdisk、[8][9]SYSLINUX、安裝補丁後的GRUB 0.96和GRUB 2等新工具均已支持GPT。 |
macOS | 10.4.0以後(一些功能要到10.4.6以後)[10] | 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 | 是 | 是 | [11] |
HP-UX | HP-UX 11.20以後 | IA-64 | 是 | 是 | [12] |
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[14] | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows 8.1 | 2013-08-27 | IA-32 | 是 | 需要UEFI[14] | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows 10 | 2015-07-29 | IA-32 | 是 | 需要UEFI[14] | 在MBR/GPT混合硬盤中優先使用MBR。 |
64位Windows
編輯系統版本 | 發售日期 | 平台 | 讀寫支持 | 啟動支持 | 備註 |
---|---|---|---|---|---|
Windows XP Professional x64 Edition Windows Server 2003 |
2005-04-25[15] | x64 | 是 | 否 | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows Server 2003 | 2005-04-25 | IA-64 | 是 | 是 | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows Vista | 2006-07-22 | x64 | 是 | 需要UEFI[a] | 在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[b] | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows Server 2008 R2 | 2009-10-22 | IA-64 | 是 | 是 | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows 8 Windows Server 2012 |
2012-08-01 | x64 | 是 | 需要UEFI[14] | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows 8.1 | 2013-08-27 | x64 | 是 | 需要UEFI[14] | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows 10 | 2015-07-29 | x64 | 是 | 需要UEFI[14] | 在MBR/GPT混合硬盤中優先使用MBR。 |
Windows Server 2016 | 2016-10-12 | x64 | 是 | 需要UEFI[14] | 在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 |
基本數據分區[2] | 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 | 數據分區[2] | EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 |
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 | |
macOS Darwin |
HFS (HFS+) 分區 | 48465300-0000-11AA-AA11-00306543ECAC |
Apple UFS 容器 | 55465300-0000-11AA-AA11-00306543ECAC | |
APFS 卷宗容器 APFS 型 FileVault 卷宗容器 |
7C3457EF-0000-11AA-AA11-00306543ECAC | |
ZFS[c] | 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分區[3] | 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 | ||
NetBSD[4] | 交換分區 | 49F48D32-B10E-11DC-B99B-0019D1879648 |
FFS分區 | 49F48D5A-B10E-11DC-B99B-0019D1879648 | |
LFS分區 | 49F48D82-B10E-11DC-B99B-0019D1879648 | |
RAID分區 | 49F48DAA-B10E-11DC-B99B-0019D1879648 | |
concatenated分區 | 2DB519C4-B10F-11DC-B99B-0019D1879648 | |
加密分區 | 2DB519EC-B10F-11DC-B99B-0019D1879648 |
- ^ 本表中的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 b Linux和Windows的數據分區使用相同的GUID。
- a b Solaris系統中
/usr
分區的GUID在Mac OS X上被用作普通的ZFS分區。 - ^ 具體定義見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
備註
編輯參考資料
編輯- ^ 1.0 1.1 FAQ: Drive Partition Limits (PDF). UEFI Forum. [TEXT]. (原始內容 (pdf)存檔於2013-03-22).
- ^ Bill Boswell. FAQ: Drive Partition Limits. Redmondmag.com. 2002-07-01 [ZPT]. (原始內容存檔於2010-10-01).
GPT disks also support very large partitions thanks to a 64-bit Logical Block Address scheme. A logical block corresponds to one sector, or 512 bytes, yielding a maximum theoretical capacity of eight zettabytes,
- ^ Technical Note TN2166: Secrets of the GPT. Apple. [2010-06-25]. (原始內容存檔於2008-05-18).
- ^ Western Digital’s Advanced Format: The 4K Sector Transition Begins. Anandtech. [2010-06-25]. (原始內容存檔於2010-03-23).
- ^ Ubuntu on MacBook. Ubuntu Community Documentation. [2010-06-25]. (原始內容存檔於2021-01-29).
- ^ GNU Parted FAQ. [2017-09-22]. (原始內容存檔於2020-08-09).
- ^ mklabel - GNU Parted Manual. [2017-09-22]. (原始內容存檔於2020-02-20).
- ^ fdisk: add GPT support. kernel.org. 2013-09-27 [2013-10-18]. (原始內容存檔於2017-02-22).
- ^ Davidlohr Bueso. fdisk updates and GPT support. 2013-09-28 [2013-10-18]. (原始內容存檔於2013-10-19).
- ^ Myths and Facts About Intel Macs. rEFIt. [2010-06-25]. (原始內容存檔於2019-04-21).
- ^ Booting from a ZFS Root File System. [2017-09-22]. (原始內容存檔於2020-04-22).
- ^ idisk(1M) (PDF). Hewlett-Packard.[永久失效連結]
- ^ 13.0 13.1 Windows and GPT FAQ. Microsoft. [2017-09-22]. (原始內容存檔於2017-09-22).
- ^ 14.0 14.1 14.2 14.3 14.4 14.5 14.6 32位Windows 8支持通过UEFI从GPT硬盘启动。. [2017-09-22]. (原始內容存檔於2017-09-22).
- ^ Microsoft raises the speed limit with the availability of 64-bit editions of Windows Server 2003 and Windows XP Professional. [2017-09-22]. (原始內容存檔於2010-11-10).