热门问题
时间线
聊天
视角
GUID磁碟分割表
桌面或服務器個人計算機中使用的物理存儲設備上的分區表佈局標準 来自维基百科,自由的百科全书
Remove ads
GUID磁碟分割表(英語:GUID Partition Table,縮寫:GPT)是使用全域唯一識別碼(GUID,也稱通用唯一識別碼)對物理電腦儲存裝置(例如硬碟機或固態驅動器)的分區表進行布局的標準。作為統一可延伸韌體介面(UEFI)標準的一部分(統一可延伸韌體介面討論區建議其為個人電腦BIOS的替代品),由於主開機紀錄(MBR)分區表的限制,它也被用在一些BIOS。MBR分區表使用32位元用於傳統512位元組磁碟磁區的邏輯區塊地址(LBA)。
對於那些磁區為512位元組的磁碟,MBR分區表不支援容量大於2.2 TB(2.2×1012位元組)[1]的分區。然而,一些硬碟製造商(諸如希捷和威騰電子)注意到這個局限性,並且將他們的容量較大的磁碟升級到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位元組每磁區)的最大空間[1][2]。
截止至2010年,大多數作業系統對GPT均有所支援,儘管包括Mac OS X和Windows在內的一些僅支援在EFI基礎上自GPT分區啟動,見#作業系統支援。

Remove ads
特點
在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。
Remove ads
分區表頭(LBA 1)
分區表頭定義了硬碟的可用空間以及組成分區表的項的大小和數量。在使用64位元Windows Server 2003的機器上,最多可以建立128個分區,即分區表中保留了128個項,其中每個都是128位元組。(EFI標準要求分區表最小要有16,384位元組,即128個分區項的大小)
分區表頭還記錄了這塊硬碟的GUID,記錄了分區表頭本身的位置和大小(位置總是在LBA 1)以及備份分區表頭和分區表的位置和大小(在硬碟的最後)。它還儲存着它本身和分區表的CRC32校驗。韌體、引導程式和作業系統在啟動時可以根據這個校驗值來判斷分區表是否出錯,如果出錯了,可以使用軟件從硬碟最後的備份GPT中恢復整個分區表,如果備份GPT也校驗錯誤,硬碟將不可使用。所以GPT硬碟的分區表不可以直接使用16進制編輯器修改。
主分區表和備份分區表的頭分別位於硬碟的第二個磁區(LBA 1)以及硬碟的最後一個磁區。備份分區表頭中的資訊是關於備份分區表的。
分區表項(LBA 2–33)
GPT分區表使用簡單而直接的方式表示分區。一個分區表項的前16位元組是分區類型GUID。例如,EFI系統分區的GUID類型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}
。接下來的16位元組是該分區唯一的GUID(這個GUID指的是該分區本身,而之前的GUID指的是該分區的類型)。再接下來是分區起始和末尾的64位元LBA編號,以及分區的名字和屬性。
作業系統支援
Remove ads
Remove ads
Remove ads
分區類型GUID
- ^ 本表中的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。
Remove ads
MBR與GPT互相轉換
在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
備註
參考資料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads