■ 甘肅 權建軍
編者按:現代智能儀器設備廣泛使用磁盤進行數據存儲。傳統的MBR分區表由于對磁盤容量局限于2.2TB,并且只能有四個主分區,因此,在Windows 8系統改用了GPT分區表。由于設備故障或誤操作,數據丟失往往造成重大損失。本文通過實驗的方法,對GPT分區表進行數據恢復。實驗表明,在GPT頭和分區表被破壞時,可以根據GPT分區表特征,通過其備份進行數據恢復。
G P T 是GUID Partion Table的縮寫,其含義是“全局唯一標識磁盤分區表”。由于MBR分 區表不支持大于2.2TB的分區,微軟Windows 8放棄了MBR分區格式,使用了GPT磁
N盤分區格式。在現代智能儀器中,GPT分區表問題導致硬盤不能讀取和使用的問題較為突出。
本文通過實驗方法進行研究,直觀了解GPT分區,并進行GPT分區重構,恢復數據。
GPT磁盤有6部分結構組成,如圖1所示。
保護MBR位于GPT磁盤的第一個扇區,即0號扇區,由磁盤簽名、MBR磁盤分區表和結束標志組成。
MBR分區表中,只有一個表項,分區類型標志為0xEE,分區起始1號扇區,總扇區數0xFFFFFFFF。
GPT頭位于GPT磁盤的第二個扇區,也就是1號扇區。該扇區是在創建GPT磁盤時生成的,GPT頭會定義分區表的起始位置、分區表的結束位置、每個分區表項的大小、分區表項的個數及分區表的校驗和等信息。

表1 GPT分區表項中各字段的含義

圖2 GPT頭的備份的結構參數
分區表位于GPT磁盤的2~33號扇區,一共占用32個扇區,每個分區表占用128個字節,能夠容納128個分區表項,所以GPT磁盤允許創建128個分區。
分區表各字段含義如表1所示。
GPT分區區域通常都始于GPT磁盤的34號扇區,是整個GPT磁盤的最大區域,有多個具體分區組成。分區區域的起始地址和結束地址由GPT頭定義。
GPT頭的備份在GPT磁盤的最后一個扇區,和GPT頭相比,雖然結構一樣,但個別參數有不同。
具體如圖2所示。
在此表中,要注意GPT分區表備份起始扇區號,后面要用到。
分區區域結束后,就是分區表的備份。分區表的備份地址,在GPT頭備份扇區中有說明,即“GPT分區表備份起始扇區號”。

圖3 重構保護MBR
(1) 操作系統 :Windows 7;
(2) 數 據 恢 復 軟 件:WinHex 18.1
(1) 在 Windows 7系 統下建立虛擬磁盤GPTT.vhd文件,大小10GB,保存在D盤;
(2) 將 GPTT.vhd 附加為虛擬磁盤,轉換成GPT磁盤。在磁盤上創建3個分區。在三個磁盤分區寫入一些文件。
(3) 將磁盤的0號、1號、2號扇區的數據全部清零。
這樣,GPT故障磁盤就制作好了。重啟電腦后,發現虛擬磁盤上的三個分區盤符找不到了。
1.查找十六進制“454649”(對 應 字 符 為“EFI”),搜到,說明磁盤類型為GPT分區;

圖4 重構GPT頭
2.按照GPT的分區格式,填寫保護MBR,通過GPT頭備份來重構GPT頭和GPT分區表。
在0號扇區填寫保護MBR相關信息。磁盤類型“EE”,分區起始扇區“1”,分區大小“FFFFFFFF”,在扇區末尾加“55 AA”。如圖3所示。
將最后一個扇區的GPT頭備份復制到1號扇區。
注意備份和GPT頭結構雖然一致,但有幾個參數要修改。
需要將GPT頭所在扇區指向1號扇區,GPT分區表起始扇區指向2號扇區。如圖4所示。
在備份GPT頭中,有GPT分區表備份起始扇區號,直接將此扇區復制到2號扇區即可。在全部修復完成后,重啟系統,就可以找到盤符,打開文件,數據恢復成功。
GPT分區格式是Windows 8及以上系統的磁盤格式,通過實驗的方法,在GPT磁盤數據破壞后,重構了GPT分區的保護MBR、GPT頭和GPT分區表,恢復了磁盤數據。通過實驗教學,直觀再現了GPT磁盤數據恢復方法。