GUID磁碟分區表

全局唯一標識分區表(GUIDPartition Table,縮寫:GPT)是一個實體硬碟的分區表的結構布局的標準。它是可擴展固件接口(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一32bits來存儲邏輯塊地址和大小信息的主引導記錄(MBR)分區表。對於那些扇區為512位元組的磁碟,MBR分區表不支持容量大於2.2TB(2.2×10位元組)的分區,然而,一些硬碟製造商(諸如希捷和西部數據)注意到這個局限性,並且將他們的容量較大的磁碟升級到4KB的扇區,這意味著MBR的有效容量上限提升到16 TiB。 這個看似“正確的”解決方案,在臨時地降低人們對改進磁碟分配表的需求的同時,也給市場帶來關於在有較大的塊(block)的設備上從BIOS啟動時,如何最佳的劃分磁碟分區的困惑。GPT分配64bits給邏輯塊地址,因而使得最大分區大小在2-1個扇區成為可能。對於每個扇區大小為512位元組的磁碟,那意味著可以有9.4ZB(9.4×10位元組)或8 ZiB個512位元組(9,444,732,965,739,290,426,880位元組或18,446,744,073,709,551,615(2-1)個扇區×512(2)位元組每扇區)。

基本信息

簡介

全局唯一標識分區表GUIDPartition Table,縮寫: GPT)是一個實體硬碟的分區表的結構布局的標準。它是可擴展固件接口(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一32bits來存儲邏輯塊地址和大小信息的主引導記錄(MBR)分區表。對於那些扇區為512位元組的磁碟,MBR分區表不支持容量大於2.2TB(2.2×10位元組)的分區,然而,一些硬碟製造商(諸如希捷和西部數據)注意到這個局限性,並且將他們的容量較大的磁碟升級到4KB的扇區,這意味著MBR的有效容量上限提升到16 TiB。 這個看似“正確的”解決方案,在臨時地降低人們對改進磁碟分配表的需求的同時,也給市場帶來關於在有較大的塊(block)的設備上從BIOS啟動時,如何最佳的劃分磁碟分區的困惑。GPT分配64bits給邏輯塊地址,因而使得最大分區大小在2-1個扇區成為可能。對於每個扇區大小為512位元組的磁碟,那意味著可以有9.4ZB(9.4×10位元組)或8ZiB個512位元組(9,444,732,965,739,290,426,880位元組或18,446,744,073,709,551,615(2-1)個扇區×512(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是硬碟上第一個分區的開始。

蘋果公司曾經警告說:“不要假定所有設備的塊大小都是512位元組。”一些現代的存儲設備如固態硬碟可能使用1024位元組的塊,一些磁光碟(MO)可能使用2048位元組的扇區(但是磁光碟通常是不進行分區的)。一些硬碟生產商在計畫生產4096位元組一個扇區的硬碟,但截至2010年初,這種新硬碟使用固件對作業系統偽裝成512位元組一個扇區。

使用英特爾架構的蘋果機也使用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。

分區表頭(LBA 1)

分區表頭定義了硬碟的可用空間以及組成分區表的項的大小和數量。在使用64位Windows Server 2003的機器上,最多可以創建128個分區,即分區表中保留了128個項,其中每個都是128位元組。(EFI標準要求分區表最小要有16,384位元組,即128個分區項的大小)

分區表頭還記錄了這塊硬碟的GUID,記錄了分區表頭本身的位置和大小(位置總是在LBA 1)以及備份分區表頭和分區表的位置和大小(在硬碟的最後)。它還儲存著它本身和分區表的CRC32校驗。固件、引導程式和作業系統在啟動時可以根據這個校驗值來判斷分區表是否出錯,如果出錯了,可以使用軟體從硬碟最後的備份GPT中恢復整個分區表,如果備份GPT也校驗錯誤,硬碟將不可使用。所以GPT硬碟的分區表不可以直接使用16進制編輯器修改。

分區表頭的格式
起始位元組長度內容
08位元組簽名("EFI PART", 45 46 49 20 50 41 52 54)
84位元組修訂(在1.0版中,值是00 00 01 00)
124位元組分區表頭的大小(單位是位元組,通常是92位元組,即5C 00 00 00)
164位元組分區表頭(第0-91位元組)的CRC32校驗,在計算時,把這個欄位作為0處理,需要計算出分區序列的CRC32校驗後再計算本欄位
204位元組保留,必須是0
248位元組當前LBA(這個分區表頭的位置)
328位元組備份LBA(另一個分區表頭的位置)
408位元組第一個可用於分區的LBA(主分區表的最後一個LBA + 1)
488位元組最後一個可用於分區的LBA(備份分區表的第一個LBA − 1)
5616位元組硬碟GUID(在類UNIX系統中也叫UUID)
728位元組分區表項的起始LBA(在主分區表中是2)
804位元組分區表項的數量
844位元組一個分區表項的大小(通常是128)
884位元組分區序列的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分區表項的格式
起始位元組長度內容
016位元組分區類型GUID
1616位元組分區GUID
328位元組起始LBA(小端序)
408位元組末尾LBA
488位元組屬性標籤(如:60表示“唯讀”)
5672位元組分區名(可以包括36個UTF-16(小端序)字元)

作業系統支持

參見:UEFI:磁碟設備兼容性

類Unix作業系統

作業系統版本平台讀寫支持啟動支持備註
FreeBSD7.0以後IA-32、x86-64、ARM在MBR/GPT混合硬碟中,可以同時使用GPT和MBR分區標識。
Linux大多數x86架構的Linux發行版
Fedora8+、Ubuntu8.04+
IA-32、x86-64諸如gdisk、GNU Parted、util-linuxv2.23+fdisk、SYSLINUX、安裝補丁後的GRUB 0.96和GRUB 2等新工具均已支持GPT。
macOS10.4.0以後(一些功能要到10.4.6以後)IA-32、x86-64、PowerPC只有搭載因特爾晶片的計算機支持GPT啟動。
MidnightBSD0.4-CURRENT以後IA-32、x86-64需要BIOS支持在MBR/GPT混合硬碟中,可以同時使用GPT和MBR分區標識。
SolarisSolaris 10以後IA-32、x86-64、SPARC
HP-UXHP-UX 11.20以後IA-64

32位Windows

Microsoft Windows歷代32位版本的GPT支持詳情
系統版本發售日期平台讀寫支持啟動支持備註
Windows XP2001-10-25IA-32
Windows Server 20032003-04-24IA-32
Windows Server 2003 SP12005-03-30IA-32在MBR/GPT混合硬碟中優先使用MBR。
Windows Vista2006-07-22IA-32在MBR/GPT混合硬碟中優先使用MBR。
Windows Server 20082008-02-27IA-32在MBR/GPT混合硬碟中優先使用MBR。
Windows 72009-10-22IA-32在MBR/GPT混合硬碟中優先使用MBR。
Windows 82012-08-01IA-32需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows 8.12013-08-27IA-32需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows 102015-07-29IA-32需要UEFI在MBR/GPT混合硬碟中優先使用MBR。

64位Windows

Microsoft Windows歷代64位版本的GPT支持詳情
系統版本發售日期平台讀寫支持啟動支持備註
Windows XP Professional x64 Edition
Windows Server 2003
2005-04-25x64在MBR/GPT混合硬碟中優先使用MBR。
Windows Server 20032005-04-25IA-64在MBR/GPT混合硬碟中優先使用MBR。
Windows Vista2006-07-22x64需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows Server 20082008-02-27x64需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows Server 20082008-02-27IA-64在MBR/GPT混合硬碟中優先使用MBR。
Windows 72009-10-22x64需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows Server 2008 R22009-10-22IA-64在MBR/GPT混合硬碟中優先使用MBR。
Windows 8
Windows Server 2012
2012-08-01x64需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows 8.12013-08-27x64需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows 102015-07-29x64需要UEFI在MBR/GPT混合硬碟中優先使用MBR。
Windows Server 20162016-10-12x64需要UEFI在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
基本數據分區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數據分區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
Mac OS XHFS(HFS+)分區48465300-0000-11AA-AA11-00306543ECAC
蘋果公司UFS55465300-0000-11AA-AA11-00306543ECAC
ZFS6A898CC3-1DD2-11B2-99A6-080020736631
蘋果RAID分區52414944-0000-11AA-AA11-00306543ECAC
蘋果RAID分區,下線52414944-5F4F-11AA-AA11-00306543ECAC
蘋果啟動分區426F6F74-0000-11AA-AA11-00306543ECAC
Apple Label4C616265-6C00-11AA-AA11-00306543ECAC
Apple TV恢復分區5265636F-7665-11AA-AA11-00306543ECAC
Solaris啟動分區6A82CB45-1DD2-11B2-99A6-080020736631
根分區6A85CF4D-1DD2-11B2-99A6-080020736631
交換分區6A87C46F-1DD2-11B2-99A6-080020736631
備份分區6A8B642B-1DD2-11B2-99A6-080020736631
/usr分區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交換分區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部分的位元組序被交換了。

Linux和Windows的數據分區使用相同的GUID。

Solaris系統中/usr分區的GUID在Mac OS X上被用作普通的ZFS分區。

具體定義見src/sys/sys/disklabel_gpt.h。NetBSD的GUID在單獨定義之前曾經使用過FreeBSD的GUID。

1.

^

2.

3.

4.

參見

•主引導記錄

•GUID

•硬碟分區

•可擴展固件接口

•BIOS

相關詞條

相關搜尋

熱門詞條

聯絡我們