跳至內容

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分割區啟動,見#作業系統支援

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是硬碟上第一個分割區的開始。

蘋果公司曾經警告說:[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編號,以及分割區的名字和屬性。

GPT分割區表項的格式
起始位元組 長度 內容
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-32x86-64ARM 在MBR/GPT混合硬碟中,可以同時使用GPT和MBR分割區標識。
Linux 大多數x86架構的Linux發行版

Fedora 8+、Ubuntu 8.04+[5]

IA-32、x86-64 諸如gdisk、GNU Parted[6][7]util-linux v2.23+ fdisk[8][9]SYSLINUX安裝修補程式後的GRUB 0.96GRUB 2等新工具均已支援GPT。
macOS 10.4.0以後(一些功能要到10.4.6以後)[10] IA-32、x86-64、PowerPCApple晶片 只有搭載英特爾晶片和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

[編輯]
Microsoft Windows歷代32位元版本的GPT支援詳情[13]
系統版本 發售日期 平台 讀寫支援 啟動支援 備註
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

[編輯]
Microsoft Windows歷代64位元版本的GPT支援詳情[13]
系統版本 發售日期 平台 讀寫支援 啟動支援 備註
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[1]
(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英語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英語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
  1. ^ 本表中的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部分的位元組序被交換了。
  2. a b Linux和Windows的資料分割區使用相同的GUID。
  3. a b Solaris系統中/usr分割區的GUID在Mac OS X上被用作普通的ZFS分割區。
  4. ^ 具體定義見src/sys/sys/disklabel_gpt.h頁面存檔備份,存於網際網路檔案館)。NetBSD的GUID在單獨定義之前曾經使用過FreeBSD的GUID。

MBR與GPT互相轉換

[編輯]

Windows作業系統

[編輯]

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

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

參見

[編輯]

外部連結

[編輯]

備註

[編輯]
  1. ^ 僅SP1、SP2
  2. ^ 在多硬碟啟動環境下,非UEFI引導需要MBR格式的引導程式(啟動分割區);系統分割區可使用GPT格式。
  3. ^ Solaris 的/usr的 GUID 也用作 macOS 的 ZFS 通用 GUID。

參考資料

[編輯]
  1. ^ 1.0 1.1 FAQ: Drive Partition Limits (PDF). UEFI Forum. [TEXT]. (原始內容 (pdf)存檔於2013-03-22). 
  2. ^ 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, 
  3. ^ Technical Note TN2166: Secrets of the GPT. Apple. [2010-06-25]. (原始內容存檔於2008-05-18). 
  4. ^ Western Digital’s Advanced Format: The 4K Sector Transition Begins. Anandtech. [2010-06-25]. (原始內容存檔於2010-03-23). 
  5. ^ Ubuntu on MacBook. Ubuntu Community Documentation. [2010-06-25]. (原始內容存檔於2021-01-29). 
  6. ^ GNU Parted FAQ. [2017-09-22]. (原始內容存檔於2020-08-09). 
  7. ^ mklabel - GNU Parted Manual. [2017-09-22]. (原始內容存檔於2020-02-20). 
  8. ^ fdisk: add GPT support. kernel.org. 2013-09-27 [2013-10-18]. (原始內容存檔於2017-02-22). 
  9. ^ Davidlohr Bueso. fdisk updates and GPT support. 2013-09-28 [2013-10-18]. (原始內容存檔於2013-10-19). 
  10. ^ Myths and Facts About Intel Macs. rEFIt. [2010-06-25]. (原始內容存檔於2019-04-21). 
  11. ^ Booting from a ZFS Root File System. [2017-09-22]. (原始內容存檔於2020-04-22). 
  12. ^ idisk(1M) (PDF). Hewlett-Packard. [永久失效連結]
  13. ^ 13.0 13.1 Windows and GPT FAQ. Microsoft. [2017-09-22]. (原始內容存檔於2017-09-22). 
  14. ^ 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). 
  15. ^ 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).