■ 甘肅 權(quán)建軍
編者按:現(xiàn)代智能儀器設(shè)備廣泛使用磁盤(pán)進(jìn)行數(shù)據(jù)存儲(chǔ)。傳統(tǒng)的MBR分區(qū)表由于對(duì)磁盤(pán)容量局限于2.2TB,并且只能有四個(gè)主分區(qū),因此,在Windows 8系統(tǒng)改用了GPT分區(qū)表。由于設(shè)備故障或誤操作,數(shù)據(jù)丟失往往造成重大損失。本文通過(guò)實(shí)驗(yàn)的方法,對(duì)GPT分區(qū)表進(jìn)行數(shù)據(jù)恢復(fù)。實(shí)驗(yàn)表明,在GPT頭和分區(qū)表被破壞時(shí),可以根據(jù)GPT分區(qū)表特征,通過(guò)其備份進(jìn)行數(shù)據(jù)恢復(fù)。
G P T 是GUID Partion Table的縮寫(xiě),其含義是“全局唯一標(biāo)識(shí)磁盤(pán)分區(qū)表”。由于MBR分 區(qū)表不支持大于2.2TB的分區(qū),微軟Windows 8放棄了MBR分區(qū)格式,使用了GPT磁
N盤(pán)分區(qū)格式。在現(xiàn)代智能儀器中,GPT分區(qū)表問(wèn)題導(dǎo)致硬盤(pán)不能讀取和使用的問(wèn)題較為突出。
本文通過(guò)實(shí)驗(yàn)方法進(jìn)行研究,直觀了解GPT分區(qū),并進(jìn)行GPT分區(qū)重構(gòu),恢復(fù)數(shù)據(jù)。
GPT磁盤(pán)有6部分結(jié)構(gòu)組成,如圖1所示。
保護(hù)MBR位于GPT磁盤(pán)的第一個(gè)扇區(qū),即0號(hào)扇區(qū),由磁盤(pán)簽名、MBR磁盤(pán)分區(qū)表和結(jié)束標(biāo)志組成。
MBR分區(qū)表中,只有一個(gè)表項(xiàng),分區(qū)類(lèi)型標(biāo)志為0xEE,分區(qū)起始1號(hào)扇區(qū),總扇區(qū)數(shù)0xFFFFFFFF。
GPT頭位于GPT磁盤(pán)的第二個(gè)扇區(qū),也就是1號(hào)扇區(qū)。該扇區(qū)是在創(chuàng)建GPT磁盤(pán)時(shí)生成的,GPT頭會(huì)定義分區(qū)表的起始位置、分區(qū)表的結(jié)束位置、每個(gè)分區(qū)表項(xiàng)的大小、分區(qū)表項(xiàng)的個(gè)數(shù)及分區(qū)表的校驗(yàn)和等信息。
表1 GPT分區(qū)表項(xiàng)中各字段的含義
圖2 GPT頭的備份的結(jié)構(gòu)參數(shù)
分區(qū)表位于GPT磁盤(pán)的2~33號(hào)扇區(qū),一共占用32個(gè)扇區(qū),每個(gè)分區(qū)表占用128個(gè)字節(jié),能夠容納128個(gè)分區(qū)表項(xiàng),所以GPT磁盤(pán)允許創(chuàng)建128個(gè)分區(qū)。
分區(qū)表各字段含義如表1所示。
GPT分區(qū)區(qū)域通常都始于GPT磁盤(pán)的34號(hào)扇區(qū),是整個(gè)GPT磁盤(pán)的最大區(qū)域,有多個(gè)具體分區(qū)組成。分區(qū)區(qū)域的起始地址和結(jié)束地址由GPT頭定義。
GPT頭的備份在GPT磁盤(pán)的最后一個(gè)扇區(qū),和GPT頭相比,雖然結(jié)構(gòu)一樣,但個(gè)別參數(shù)有不同。
具體如圖2所示。
在此表中,要注意GPT分區(qū)表備份起始扇區(qū)號(hào),后面要用到。
分區(qū)區(qū)域結(jié)束后,就是分區(qū)表的備份。分區(qū)表的備份地址,在GPT頭備份扇區(qū)中有說(shuō)明,即“GPT分區(qū)表備份起始扇區(qū)號(hào)”。
圖3 重構(gòu)保護(hù)MBR
(1) 操作系統(tǒng) :Windows 7;
(2) 數(shù) 據(jù) 恢 復(fù) 軟 件:WinHex 18.1
(1) 在 Windows 7系 統(tǒng)下建立虛擬磁盤(pán)GPTT.vhd文件,大小10GB,保存在D盤(pán);
(2) 將 GPTT.vhd 附加為虛擬磁盤(pán),轉(zhuǎn)換成GPT磁盤(pán)。在磁盤(pán)上創(chuàng)建3個(gè)分區(qū)。在三個(gè)磁盤(pán)分區(qū)寫(xiě)入一些文件。
(3) 將磁盤(pán)的0號(hào)、1號(hào)、2號(hào)扇區(qū)的數(shù)據(jù)全部清零。
這樣,GPT故障磁盤(pán)就制作好了。重啟電腦后,發(fā)現(xiàn)虛擬磁盤(pán)上的三個(gè)分區(qū)盤(pán)符找不到了。
1.查找十六進(jìn)制“454649”(對(duì) 應(yīng) 字 符 為“EFI”),搜到,說(shuō)明磁盤(pán)類(lèi)型為GPT分區(qū);
圖4 重構(gòu)GPT頭
2.按照GPT的分區(qū)格式,填寫(xiě)保護(hù)MBR,通過(guò)GPT頭備份來(lái)重構(gòu)GPT頭和GPT分區(qū)表。
在0號(hào)扇區(qū)填寫(xiě)保護(hù)MBR相關(guān)信息。磁盤(pán)類(lèi)型“EE”,分區(qū)起始扇區(qū)“1”,分區(qū)大小“FFFFFFFF”,在扇區(qū)末尾加“55 AA”。如圖3所示。
將最后一個(gè)扇區(qū)的GPT頭備份復(fù)制到1號(hào)扇區(qū)。
注意備份和GPT頭結(jié)構(gòu)雖然一致,但有幾個(gè)參數(shù)要修改。
需要將GPT頭所在扇區(qū)指向1號(hào)扇區(qū),GPT分區(qū)表起始扇區(qū)指向2號(hào)扇區(qū)。如圖4所示。
在備份GPT頭中,有GPT分區(qū)表備份起始扇區(qū)號(hào),直接將此扇區(qū)復(fù)制到2號(hào)扇區(qū)即可。在全部修復(fù)完成后,重啟系統(tǒng),就可以找到盤(pán)符,打開(kāi)文件,數(shù)據(jù)恢復(fù)成功。
GPT分區(qū)格式是Windows 8及以上系統(tǒng)的磁盤(pán)格式,通過(guò)實(shí)驗(yàn)的方法,在GPT磁盤(pán)數(shù)據(jù)破壞后,重構(gòu)了GPT分區(qū)的保護(hù)MBR、GPT頭和GPT分區(qū)表,恢復(fù)了磁盤(pán)數(shù)據(jù)。通過(guò)實(shí)驗(yàn)教學(xué),直觀再現(xiàn)了GPT磁盤(pán)數(shù)據(jù)恢復(fù)方法。