GPT,即GUID Partition Table(GUID 分區表,GPT)的簡寫形式,它是Windows Server 2003 中的一種新型磁盤架構,是一種由基于 Itanium 計算機中的可擴充固件接口 (EFI*) 使用的磁盤分區架構。這種64位的Itanium 版Windows系統采用的磁盤布局架構,與傳統的32位磁盤完全不同。
與主啟動記錄 (MBR) 分區方法相比,GPT 具有更多的優點:
u 它允許每個磁盤有多達 128 個分區(MBR磁盤最多隻能有4個主分區,或者3個主分區加一個擴充分區和無限制的邏輯驅動器)。
u 支援高達 18 千兆兆位元組(EB,exabytes)的卷大小(MBR磁盤支援的最大卷為2TB)。
u 允許将主磁盤分區表和備份磁盤分區表用于備援。
u 支援唯一的磁盤和分區 ID (GUID)。
u 性能更加穩定。
...
可以在運作帶有Service Pack 1 (SP1) 的 Windows Server 2003的磁盤管理中進行MBR與GPT磁盤的互相轉換,然後進行相應的分區操作。也可以使用 DiskPart.exe 指令行實用程式或 EFI 固件實用程式 Diskpart.efi 在基本 GPT 磁盤上建立分區。
一個轉換為GPT并建立分區後的磁盤,總體布局如圖2.37所示。
圖2.37 GPT磁盤總體布局
我們可以看到,一個GPT磁盤可以分為兩大部分:保護MBR和EFI部分。
(1)第一部分隻由0号扇區組成,在這個扇區中包含一個DOS分區表,分區表内隻有一個表項,這個表項描述了一個類型值為0xEE的分區,大小為整個磁盤(如圖2.38所示)。這個分區的存在可以使計算機認為這個磁盤是合法的,并且已被使用,進而不再試圖對其進行格式化等操作,是以該扇區又被稱為“保護MBR”。實際上,EFI根本不使用這個分區表。
圖2.38 GPT磁盤的0号扇區
(2)另一部分為EFI部分,EFI部分又可以分為4個區域:EFI資訊區(又稱為GPT頭)部分、分區表部分、GPT分區部分和備份區域。
u EFI資訊區,也稱為GPT頭,起始于磁盤的1号扇區,通常隻占用這一個扇區。GPT磁盤建立後,由GPT頭定義分區表的位置和大小。Windows限定分區表項為128個。GPT頭還包含頭和分區表的校驗和,這樣就可以及時發現錯誤或者改變。
u 分區表區域包含分區表項。這個區域由GPT頭定義,一般占用磁盤2~33号扇區。分區表中的每個表項由起始和結束位址、類型值、名字、屬性标志和GUID值組成。分區表建立後,128位的GUID對系統來說是唯一的。
u 分區部分是最大的區域,由配置設定給分區的扇區組成。這個區域的起始和結束位址由GPT頭定義。
u 備份區域位于磁盤的尾部,包含GPT頭和分區表的備份。它占用GPT結束扇區和EFI結束扇區之間的33個扇區。其中最後一個扇區用來備份1号扇區的EFI資訊,其餘的32個扇區用來備份2~33号扇區的分區表。
1. EFI資訊扇區資料結構
EFI資訊扇區位于磁盤的1号扇區,也稱為GPT頭。GPT磁盤建立後,由GPT頭定義分區表的位置和大小,Windows限定分區表項為128個。GPT頭還包含頭和分區表的校驗和。EFI資訊扇區的結構如表2.21所示。
表2.21 EFI資訊扇區結構
相對位元組偏移
(十六進制)
位元組數
說明
00~07
8
簽名(ASCII碼“EFI PART”
08~0B
4
版本
0C~0F
GPT頭大小位元組數
10~13
GPT頭CRC校驗和
14~17
保留
18~1F
目前GPT頭的LBA扇區号,也即為EFI區域起始扇區号
20~27
GPT頭備份LBA扇區号,也即為EFI區域結束扇區号
28~2F
GPT分區區域起始LBA
30~37
GPT分區區域結束LBA
38~47
12
磁盤GUID
48~4F
GPT分區表起始LBA
50~53
分區表項數
54~57
每分區表項占用位元組數
58~5B
分區表CRC校驗和
5C~1FF
366
通過這些結構中的描述值,我們可以确定GPT頭、分區表、GPT分區區域、分區表的備份位置等結構布局。圖2.39顯示了一個GPT頭的執行個體。
圖2.39 GPT頭
具體分析如下:
1) 0x00~0x07:8個位元組,GPT頭簽名“4546492050415254”,ASCII碼為“EFI PART”。
2) 0x08~0x0B:4個位元組,版本号。
3) 0x0C~0x0F:4個位元組,GPT頭大小位元組數,此處的值為0x5C,即92個位元組。
4) 0x10~0x13:4個位元組,GPT頭校驗和。
5) 0x14~0x17:4個位元組,保留。
6) 0x18~0x1F:8個位元組,目前GPT頭的LBA扇區号,即EFI區域起始扇區号,通常為1。
7) 0x20~0x27: 8個位元組,GPT頭備份位置的LBA扇區号,即EFI區域結束扇區号,此處的值為224909(0x086E8D)。
8) 0x28~0x2F:8個位元組,GPT分區區域起始LBA扇區号,此處的值為34(0x22)。
9) 0x30~0x37:8個位元組,GPT分區區域結束LBA扇區号,此處的值為224876(0x036E6C)。
10)0x38~0x47:16個位元組,磁盤GUID。
11)0x48~0x4F:8個位元組,GPT分區表起始LBA扇區号,此處的值為2(0x02),通常都是起始于2号扇區。
12)0x50~0x53:4個位元組,分區表項數,限定為128(0x80)。
13)0x54~0x57:4個位元組,每分區表項占用位元組數,固定為128(0x80)。
14)0x58~0x5B:4個位元組,分區表CRC校驗和。
15)0x5C~0x1FF:420個位元組,保留。
本文轉自老骥伏枥51CTO部落格,原文連結:http://blog.51cto.com/sjhfml/129146 ,如需轉載請自行聯系原作者