您好,登錄后才能下訂單哦!
前一篇 Windows磁盤MBR結構詳解 中我們介紹了Basic Disk中的Master Boot Record結構。GPT Disk作為Windows 2003以后引入的分區結構。使用了GUID分區表結構,它與MBR相比好處是支持更大和更多的分區,提高容錯。本文介紹了GUID分區表的結構和各個字段的含義。
GPT Disk 的Protective MBR:
GPT Disk的結構中,第一個LBA位置(LBA 0)存放的是Protective MBR,隨后LBA1的位置才是GPT的GUID分區表頭。Protective MBR的作用是為了兼容性考慮,阻止一些遺留的MBR磁盤工具破壞GUID分區表。這種在LBA 0的位置存放Protective MBR的結構是基于Extensible Firmware Interface(EFI)規格。Protective MBR和MBR擁有同樣的結構,同時還包括一條包含值為0xEE的System ID的分區記錄(如下圖所示),這個值標注了該分區為GPT分區,如果包含該分區的磁盤被移動到Windows 2000中或者被一些遺留的磁盤工具訪問,則該分區會被標注晨GPT Protective分區,不能被刪除。
Globally Unique Identifier Partition Table(GUID)結構:
如下圖所示,組成GPT Disk的GUID記錄有以下幾種:
GUID Partition Table Header: GPT Header定義了分區記錄所用到的Logical Block Address的區域。同時還定義了分區在磁盤上的位置、它自身的GUID、以及一組CRC32的校驗值。Primary GPT Header位于磁盤的LBA1位置,緊跟著Protective MBR。Backup GPT Header位于磁盤最后一個磁道之上。下圖是GPT Header中包含幾個字段:
首位0x00是為長度8個字節的簽名檔,這個值必須為固定值,用來定義EFI的兼容性。
0x08開始有四組長度為4個字節的字段,Revision標注EFI規格的版本信息、Header Size記錄了整個GPT Head的大小,也為固定值、CRC32的校驗信息、Reserved預留位。
隨后0x18開始是5個長度為8個字節的字段和一個長度為16字節字段,Primary LBA記錄了Primary GPT Head的位置、Backup LBA記錄Backup GPT Header的位置、First Usable LBA記錄了第一個分區的起始位置,例如64位的Windows Server 2003,它的起始位置是34、Last Usable LBA記錄的分區結束的位置。Disk GUID長度為16個字節,用來標識分區表頭和磁盤、 Partition Entry LBA記錄GUID分區記錄的位置,固定為LBA2。
從0x50開始為3個長度為4字節的記錄,Number of Partition Entries記錄最大的磁盤分區數,例如64位的Windows Server是128個、Size of Partition Entry記錄了每個GUID分區記錄大小,它的值為128字節、Partition Entry Array CRC32記錄一組分區記錄的校驗值。
最后從0x5C位置開始長度為420字節的預留空間,值都為0。
GUID Partition Entry Array:類似MBR中的分區表,GUID partition entry array中包含了磁盤上每個分區的記錄。比如64位的Windows Server 2003創建了一個Array值為16384字節,則第一個可用的數據大于等于LBA34. GUID Partition Entry Array也在分區最后存在一個副本,位置是在最后一個可用的LBA之后,GUID Partition table header之前。
GUID Partition Entry: GUID Partition Entry長度為128個字節,用來定義單個分區結構。每個GUID Partition entry從Partition Type記錄開始。長度為16個字節的Partition Type GUID,類似MBR磁盤分區表中的System ID,它定義了分區中包含的數據和分區的作用。下圖中是一個典型的GPT Disk的GUID Partition entry array記錄,這個圖中顯示了三種分區記錄
第一部分{45464920-5041-5254-0000-01005C000000}為EFI System分區、中間部分{16E3C9E3–5C0B–B84D–817D–F92DF00215AE}為Microsoft Reserved分區,最下面的一個{A2A0D0EB–E5B9–3344–87C0–68B6B72699C7}是Windows Basic Disk中的一個主分區。
在每個部分的中間位置主要記錄了一些字段。Partition Type GUID之后的0x10位置開始,是一個長度為16字節的Unique Partition GUID記錄用來標識每條記錄的唯一性。0x20開始為3個長度為8個字節的字段,Starting LBA和Ending LBA分別記錄了分區的起始和結束的位置、Attribute Bit描述了分區是如何使用的,例如是否為隱藏和只讀等等、最后0x38開始的72個字節字段用來Unicode的分區的名字,名字最長為36個字符。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。