1. GPT定義 全局唯一標識分區表(GUID partition table, 縮寫:GPT)是一個實體硬碟的分區表的結構佈局的標準。它是可擴展固件介面(UEFI)標準的一部分,被用於替代BIOS系統中使用32bits來存儲邏輯塊地址和分區大小信息的主引導記錄(MBR)分區表。GPT標準使用64b ...
1. GPT定義
全局唯一標識分區表(GUID partition table, 縮寫:GPT)是一個實體硬碟的分區表的結構佈局的標準。它是可擴展固件介面(UEFI)標準的一部分,被用於替代BIOS系統中使用32bits來存儲邏輯塊地址和分區大小信息的主引導記錄(MBR)分區表。GPT標準使用64bits用於記錄邏輯塊地址,因此,GPT分區格式在同等邏輯塊大小的情況下,比MBR分區格式支持更大的硬碟空間。
2. GPT磁碟格式
GPT分區格式包含傳統MBR(主引導記錄)、分區表頭、分區表、備份分區表頭、備份分區表以及數據區。
2.1 傳統MBR(LBA0)
出處於相容性與安全性方面的考慮,GPT分區格式保留傳統MBR,位於LBA0(第一個邏輯扇區),用於防止不支持GPT的硬碟管理軟體錯誤識別並破壞硬碟數據。在這個MBR中,只有一個標誌為0xEE的分區,以此表示這塊硬碟使用GPT分區格式。不支持GPT分區格式的軟體,會識別出未知類型的分區;支持GPT分區格式的軟體,可正確識別GPT分區磁碟。
2.2 分區表頭(LBA1)
分區表頭記錄了磁碟可用空間大小、分區表項大小與個數,備份分區表的位置信息,詳細可參見表1。
表1 GPT分區表頭格式
起始位元組 | 長度 | 內容 |
---|---|---|
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個位元組) |
2.3. 分區表
分區表記錄了每個分區的詳細信息,包括分區類型GUID、分區GUID、分區大小與位置信息、分區的名稱與屬性,詳細格式信息見表2。
表2 GPT分區表項的格式
起始位元組 | 長度 | 內容 |
---|---|---|
0 | 16位元組 | 分區類型GUID |
16 | 16位元組 | 分區GUID |
32 | 8位元組 | 起始LBA(小端序) |
40 | 8位元組 | 末尾LBA |
48 | 8位元組 | 屬性標簽(如:60表示“只讀”) |
56 | 72位元組 | 分區名(可以包括36個UTF-16(小端序)字元) |
3. 驗證
使用本人硬碟驗證如下:
3.1 GPT的MBR內容
使用磁碟內容查看工具查看MBR內容,16進位顯示如下圖所示。可見第一個主分區表項文件系統標識為“0xEE”。
3.2 GPT表頭
GPT表頭內容如下:
3.3 GPT表項
GPT表項內容:
參考鏈接
[1] 維基百科.全局唯一標識分區表