全局唯一標識分區表

全局唯一標識分區表

全局唯一標識分區表GUID Partition Table,縮寫:GPT)是一個實體磁碟的分區表的結構布局的標準。它是可擴展固件接口(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一32bits來存儲邏輯塊地址和大小信息的主引導記錄(MBR)分區表。

GPT分配64bits給邏輯塊地址,因而使得最大分區大小在2-1個扇區成為了可能。對於每個扇區大小為512位元組的磁碟,那意味著可以有9.4ZB(9.4 x 10位元組)或8ZiB-512位元組。

介紹,特點,結構,LBA 0,LBA 1,LBA 2–33,作業系統支持,Windows,Mac OS X,Linux,分區類型GUID,

介紹

全局唯一標識分區表的出現是為了替代舊式的MBR。對於那些扇區為512位元組的磁碟,MBR分區表不支持容量大於2.2TB(2.2 × 10位元組)的分區,然而,一些硬碟製造商(諸如希捷和西部數據)注意到了這個局限性,並且將他們的容量較大的磁碟升級到了4KB的扇區,這意味著MBR的有效容量上限提升到了8.8TB。這個看似“正確的”解決方案,在臨時地降低了人們對GPT的需求的同時,也給市場帶來了,關於在有較大的塊(block)的設備上從BIOS啟動時,如何最佳的劃分磁碟分區的困惑。
蘋果公司曾經警告說:“不要假定所有設備的塊大小都是512位元組。”一些現代的存儲設備如固態硬碟可能使用1024位元組的塊,一些磁光碟(MO)可能使用2048位元組的扇區(但是磁光碟通常是不進行分區的)。一些硬碟生產商在計畫生產4096位元組一個扇區的硬碟,但截至2010年初,這種新硬碟使用固件對作業系統偽裝成512位元組一個扇區。
GPT作為MBR的繼任者,正是為了解決MBR所帶來的諸多限制。

特點

在MBR硬碟中,分區信息直接存儲於主引導記錄(MBR)中(主引導記錄中還存儲著系統的引導程式)。但在GPT硬碟中,分區表的位置信息儲存在GPT頭中。但出於兼容性考慮,硬碟的第一個扇區仍然用作MBR,之後才是GPT頭。
跟現代的MBR一樣,GPT也使用邏輯區塊地址(LBA)取代了早期的CHS定址方式。傳統MBR信息存儲於LBA 0,GPT頭存儲於LBA 1,接下來才是分區表本身。64位Windows作業系統使用16,384位元組(或32扇區)作為GPT分區表,接下來的LBA 34是硬碟上第一個分區的開始。
為了減少分區表損壞的風險,GPT在硬碟最後保存了一份分區表的副本。
總的來說,GPT都將修復 MBR 的許多限制:
  • GPT只使用LBA,因此,CHS問題就不復存在。
  • 磁碟指針的大小為64位,假設512位元組扇區,這意味著GPT可以處理的磁碟大小最高達512 x 264位元組(8zebibytes,即86億TiB)。
  • GPT數據結構在磁碟上存儲兩次:開始和結束各一次。在因事故或壞扇區導致損壞的情況下,這種重複提高了成功恢復的幾率。
  • 循環冗餘檢驗值針對關鍵數據結構而計算,提高了數據崩潰的檢測幾率。
  • GPT將所有分區存儲在單個分區表中(帶有備份),因此擴展分區或邏輯分區沒有存在的必要。GPT默認支持128個分區,當然您也可以更改分區表的大小,如果您的分區軟體支持這種更改的話。
  • 雖然MBR提供1位元組分區類型代碼,但GPT使用一個16位元組的全局唯一標識符(GUID)值來標識分區類型。這使分區類型更不容易衝突。
  • GPT支持存儲人類可讀的分區名稱。您可以使用這個欄位來命名您的Linux /home、/usr、/var和其他分區,以便它們在分區軟體中更容易識別。

結構

LBA 0

在GPT分區表的最開頭,處於兼容性考慮仍然存儲了一份傳統的MBR(LBA 0),這個MBR也叫做保護MBR(Protective MBR)。
保護性MBR保護GPT磁碟不受以前發布的MBR磁碟工具(比如FDISK或WindowsNT磁碟管理器)的危害。這些工具不能感知GPT,也無法正確地訪問GPT磁碟。不能識別GPT的舊軟體在訪問GPT磁碟時只解釋保護性MBR。這些工具通過解釋保護性MBR,將GPT磁碟看成一個封裝的(可能無法識別)分區,而不是錯誤地當成一個未分區的磁碟,並且拒絕對硬碟進行操作,除非用戶特別要求刪除這個分區。這就避免了意外刪除分區的危險。例如,當在32位的Windows XP系統中掛載GPT磁碟時,會將其識別為“GPT 保護分區(GPT Protective Partition)”,並且用戶無法對這個分區進行任何操作(除非使用命令行工具),這是因為32位的Windows XP並不支持GPT,它僅僅只是知道掛載的是一個GPT磁碟而已。
在支持從GPT啟動的作業系統中,這裡也用於存儲第一階段的啟動代碼。在這個MBR中,只有一個標識為0xEE的分區,以此來表示這塊硬碟使用GPT分區表。
另外,能夠識別GPT分區表的作業系統會檢查保護MBR中的分區表,如果分區類型不是0xEE或者MBR分區表中有多個項,也會拒絕對硬碟進行操作。
在使用MBR/GPT混合分區表的硬碟中,這部分存儲了GPT分區表的一部分分區(通常是前四個分區),可以使不支持從GPT啟動的作業系統從這個MBR啟動,啟動後只能操作MBR分區表中的分區。如Boot Camp就是使用這種方式啟動Windows。

LBA 1

分區表頭(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")
8
4位元組
修訂
12
4位元組
分區表頭的大小
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

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(小端格式)字元)

作業系統支持

Windows

能在所有基於x64平台上用作存儲卷,包括運行Windows XP Professional x64 Edition的平台。從Windows Server 2003 SP1開始,GPT磁碟也可用作基於x86的Windows平台上的存儲卷。
可用作基於x64的Windows 7、Windows Vista和Windows Server 2008版本上的引導卷。從Windows Server 2003 SP1開始,GPT磁碟也可用作基於Itanium的系統上的引導卷。
儘管GPT規範對分區數量幾乎沒有限制。但是,Windows實現限制的分區數量為128個。GPT中的分區項的保留空間大小會限制分區數量。對於Windows Server 2003 SP1、Windows XP x64版本及更新的版本,支持的最大原始分區為18EB。(Windows檔案系統目前的限制為每個256TB)。
32位Windows GPT支持狀況一覽
作業系統版本發行日期平台讀寫支持啟動支持備註
Windows XP
2001-10-25
-
Windows Server 2003
2003-04-24
IA-32
-
Windows Server 2003 SP1
2005-03-30
IA-32
混合硬碟1中優先使用MBR
Windows Vista
2006-07-22
IA-32
混合硬碟中優先使用MBR
Windows Server 2008
2008-02-27
IA-32
混合硬碟中優先使用MBR
Windows 7
2009-10-22
IA-32
混合硬碟中優先使用MBR
Windows 8
2012-08-01
IA-32
混合硬碟中優先使用MBR
64位Windows GPT支持狀況一覽
作業系統版本發行日期平台讀寫支持啟動支持備註
Windows XP Professional x64 Edition
Windows Server 2003
2005-04-25
混合硬碟中優先使用MBR
Windows Server 2003
2005-04-25
混合硬碟中優先使用MBR
Windows Vista
2006-07-22
x64
需要UEFI
混合硬碟中優先使用MBR
Windows Server 2008
2008-02-27
x64
需要UEFI
混合硬碟中優先使用MBR
Windows Server 2008
2008-02-27
IA-64
混合硬碟中優先使用MBR
Windows 7
Windows Server 2008 R2
2009-10-22
x64
需要UEFI
混合硬碟中優先使用MBR.
Windows Server 2008 R2
2009-10-22
IA-64
混合硬碟中優先使用MBR
Windows 8
Windows Server 2012
2012-08-01
x64
需要UEFI
混合硬碟中優先使用MBR.
注1:此處混合硬碟指MBR/GPT混合硬碟。

Mac OS X

Mac OS X 10.4或者更高的版本都支持掛載GPT磁碟。
使用英特爾架構的蘋果機也使用GPT。

Linux

Linux核心必須提供GPT支持,以便對磁碟分區上的數據提供訪問。幸運的是,長久以來,Linux一直包含這種支持。

分區類型GUID

作業系統分區類型GUID
EFI檔案系統(標準)
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
微軟保留分區
E3C9E316-0B5C-4DB8-817D-F92DF00215AE
基本數據分區
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
邏輯軟碟管理工具元數據分區
5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
邏輯軟碟管理工具數據分區
AF9B60A0-1431-4F62-BC68-3311714A69AD
HFS+分區
48465300-0000-11AA-AA11-00306543ECAC
UFS
55465300-0000-11AA-AA11-00306543ECAC
啟動分區
426F6F74-0000-11AA-AA11-00306543ECAC
RAID分區
52414944-0000-11AA-AA11-00306543ECAC
RAID分區(Offline)
52414944-5F4F-11AA-AA11-00306543ECAC
標籤
4C616265-6C00-11AA-AA11-00306543ECAC
ChromeOS
Linux數據(標準)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
ChromeOS核心
FE3A2A5D-4F32-41A7-B725-ACCC3285A309
ChromeOS根檔案系統
3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
ChromeOS固件
CAB6E88E-ABF3-4102-A07A-D4BB9BE3C1D3
ChromeOS將來使用
2E0A753D-9E48-43B0-8337-B15192CB1B5E
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
註:以上表中GUID為小端格式。

相關詞條

熱門詞條

聯絡我們