999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

恢復GPT分區的研究與實現

2021-08-02 03:48:58陳培德吳建平
計算機技術與發展 2021年7期

陳培德,吳建平

(云南大學 信息學院,云南 昆明 650223)

0 引 言

全局唯一標識GPT是globally unique identifier partition table的縮寫,其含義是“全局唯一標識磁盤分區表”[1],它是可擴展固件接口(EFI)標準的一部分[2]。GPT的出現是為了替代舊式的MBR(master boot record)[3],主要解決了MBR分區表不支持容量大于2.2 TB的分區問題[4]。

由于MBR分區最多包含4個項目,多于4分區則采用擴展分區的形式來管理,每個分區項目定義了主分區在磁盤上的位置[5]。

目前,微軟公司Windows 10使用了GPT磁盤分區格式,同時Windows 10不再支持MBR。計算機如果使用Windows 10就必須采用MBR分區格式,這樣不同分區表誤操作、誤轉換的結果是硬盤中原有的磁盤分區表丟失,磁盤中的數據不能正常讀取。在Windows 7和Windows 10用戶數量龐大的今天,這種因GPT分區表問題導致硬盤中的數據無法讀取和使用的問題較為突出[6]。

當GPT存儲磁盤出現誤操作或操作系統本身故障所造成的分區表損壞、數據不可見、不可讀的數據等問題的時候,有可能是GPT分區表的邏輯出錯,可以通過一定的技術手段,對保存在臺式機硬盤、筆記本硬盤、服務器硬盤等設備上丟失的寶貴數據進行搶救和恢復。

1 GPT磁盤介紹

從整體來看,GPT磁盤主要由6大部分組成[7]。即保護MBR、GPT頭、GPT分區表、GPT分區區域(即文件系統所在區域)、GPT分區表備份和GPT頭備份[8]。大致結構如圖1所示[8](注:假設GPT磁盤的扇區號范圍為0 ~n-1,其中n為GPT磁盤的總扇區數)。

圖1 GPT磁盤的整體結構

(1)保護MBR。

保護MBR位于GPT磁盤的0號扇區[9],也是由主引導記錄、磁盤簽名、MBR分區表和結束標志4個部分組成[10-11]。在MBR分區表中,分區標志為0XEE[2],相對扇區為1,總扇區數為4 294 967 295,也就是分區總數的最大值[2],即該磁盤已經被GPT分區占用,不能再進行MBR分區。

(2)GPT頭。

GPT頭位于GPT磁盤的1號扇區[12],該扇區是在將MBR磁盤轉換成GPT磁盤后自動生成的,GPT頭定義了GPT分區各參數的基本信息[12],GPT頭也就是對整個GPT磁盤的整體描述。其定義如表1所示。

表1 GPT頭各項參數含義

續表1

(3)GPT分區表。

GPT分區表位于GPT磁盤的2~33號扇區,共占用32個扇區,每個分區表占128字節,最多可以容納128個分區表,由于第1個分區表為系統保留,所以用戶在GPT磁盤上最多可以再建立127個分區,每個分區表管理一個分區。其定義如表2所示。

表2 GPT分區表各項參數含義

表3 GPT分區類型GUID定義說明[2]

(4)分區區域。

GPT分區區域是整個GPT磁盤中最大的區域,位于GPT磁盤的中間位置,GPT分區區域的開始扇區和結束扇區由GPT頭定義[2],一般情況下,開始扇區為34號扇區,而結束扇區為GPT磁盤總扇區數減去35。該區域由多個具體的分區組成,如:微軟保留分區、EFI系統分區、LDM元數據分區、LDM數據分區、OEM分區和主分區等[2]。各分區的開始扇區和結束扇區在各分區表中均有定義。

(5)分區表備份。

一般情況下,分區表備份位于GPT磁盤的倒數33號扇區~倒數2號扇區,也是占用32個扇區,是GPT分區表位于GPT磁盤的2~33號扇區的備份。其定義如表4所示。

表4 GPT頭備份各參數含義

(6)GPT頭備份。

GPT頭備份位于GPT磁盤的倒數1號扇區,該扇區也是在將MBR磁盤轉換成GPT磁盤后自動生成的,GPT頭備份也是定義了GPT分區各參數的基本信息,但該扇區不是GPT頭的簡單備份,GPT頭備份對GPT分區各參數基本信息的定義與GPT頭對GPT分區各參數基本信息的定義稍有不同。GPT頭備份也是對整個GPT磁盤的整體描述。

2 實驗環境及制作實驗素材

2.1 實驗環境

(1)操作系統:Windows 7;

(2)數據恢復軟件及分析工具:WinHex 15.08。

2.2 制作GPT模板

(1)在Windows 7操作系統下,使用Windows 7的虛擬磁盤管理功能在D盤的根目錄上建立一個名為abc1.vhd的文件,文件大小為1 GB;

(2)將abc1.vhd文件附加為虛擬磁盤1,轉換成GPT磁盤;在磁盤1上依次建立6個分區,磁盤1中6個分區的容量分別為150 MB、60 MB、100 MB、180 MB、230 MB和270 MB;

(3)使用WinHex軟件打開磁盤1,將磁盤1的0號扇區以文件的形式保存,文件為“保護MBR.vhd”;

將磁盤1的1號扇區以文件的形式保存,文件為“GPT頭.vhd”;

將磁盤1的2~3號扇區以文件的形式保存,文件名為“GPT分區表.vhd”;

將磁盤1的2 097 151號扇區以文件的形式保存,文件為“GPT頭備份.vhd”;

至此,保護的MBR、GPT頭、GPT分區表、GPT頭備份的模板已制作完成。

(4)分離abc1.vhd文件。

2.3 制作實驗素材

(1)在Windows 7操作系統下,使用Windows 7的虛擬磁盤管理功能在D盤的根目錄上建立一個名為abc2.vhd的文件,文件大小為2 GB;

(2)將abc2.vhd文件附加為虛擬磁盤2,轉換成GPT磁盤;在磁盤1上依次建立4個分區,并對4個分區進行快速格式化操作,文件系統均選擇NTFS,磁盤1中4個分區依次對應4個邏輯盤情況如下:

H盤,文件系統:NTFS,容量:350 MB

I盤,文件系統:NTFS,容量:600 MB

J盤,文件系統:NTFS,容量:800 MB

K盤,文件系統:NTFS,容量:260 MB

(3)分別在H盤、I盤、J盤和K盤中存儲一些文件夾和文件;

(4)將H盤、I盤、J盤和K盤的GPT分區刪除;并將GPT磁盤轉換為MBR磁盤。

至此,實驗素材已制作完成。

3 恢復GPT分區的基本思路與方法

3.1 恢復GPT分區的基本思路

(1)恢復0號扇區保護的MBR;

(2)恢復GPT頭;

(3)恢復GPT頭備份;

(4)恢復GPT分區表和GPT分區表備份。

3.2 恢復GPT分區的基本方法

恢復GPT分區的基本方法如下:

(1)通過計算機管理中的磁盤管理功能將MBR磁盤轉換為GPT磁盤;從而實現恢復0號扇區保護的MBR、GPT頭和GPT頭備份;

(2)由于將MBR磁盤轉換為GPT磁盤后,在2號扇區只存儲了一個微軟保留的GPT分區表,所以,GPT頭中的“GPT頭CRC32校驗和”和“GPT分區表CRC32校驗和”這兩個參數要重新計算[13];

(3)同理,GPT頭備份中的“GPT頭備份CRC32校驗和”和“GPT分區表備份CRC32校驗和”這兩個參數也要重新計算;

(4)通過WinHex的“掃描丟失分區”獲得4個邏輯盤的開始扇區號和4個邏輯盤的容量,通過4個邏輯盤的容量可以計算4個邏輯盤的總扇區數;

(5)通過4個邏輯盤的開始扇區號和總扇區數,可以計算4個邏輯盤的結束扇區號;

(6)將“GPT分區表.vhd”文件復制到GPT分區表所在扇區號,并修改4個GPT分區表中的開始扇區號和結束扇區號;

(7)通過GPT分區表恢復GPT分區表備份;

(8)通過GPT分區表計算GPT頭和GPT頭備份中的“GPT分區表CRC32校驗和”;

(9)計算GPT頭中的“GPT頭CRC32校驗和”;

(10)計算GPT頭備份中“GPT頭備份CRC32校驗和”。

通過以上操作,可以完整恢復GPT分區表、GPT分分區表備份、GPT頭和GPT頭備份。

4 恢復GPT分區的步驟

根據恢復GPT分區的基本思路與方法,恢復GPT分區的步驟如下:

1、獲得4個邏輯盤的基本情況。

(1)在Windows 7操作系統下,啟動WinHex;

(2)文件-->打開-->選擇D盤根目錄上的abc2.vhd文件,打開D盤根目錄上的abc2.vhd文件;

(3)專家-->映象文件為磁盤,將abc2.vhd文件映像為磁盤;

(4)工具-->磁盤工具-->掃描丟失分區,可以獲得4個丟失分區的基本情況,如圖2所示;

圖2 獲得4個丟失分區的情況

(5)從圖2可以獲得4個邏輯盤的文件系統、容量和開始扇區號,填入表5中;

(6)通過各邏輯盤容量可以計算出各邏輯盤的總扇區數;

H盤總扇區數=容量*1 024*1 024/512

=350*1 024*1 024/512

=716 800

I盤總扇區數=容量*1 000*1 024*1 024/512

=0.6*1 024*1 024*1 024/512

=1 228 800

J盤總扇區數=容量*1 024*1 024*1 024/512

=0.8*1 024*1 024*1 024/512

=1 638 400

K盤總扇區數=容量*1 024*1 024/512

=260*1 024*1 024/512

=532 480

(7)通過各邏輯盤的總扇區數和DBR所在扇區號可以計算DBR備份所在扇區號;

H盤結束扇區= H盤開始扇區+H盤總扇區數-1

=65 664+716 800-1

=782 463

I盤結束扇區= I盤開始扇區+I盤總扇區數-1

=782 464+1 228 800-1

=2 011 263

J盤結束扇區= J盤開始扇區+J盤總扇區數-1

=2 011 264+1 638 400-1

=3 649 663

K盤結束扇區= K盤開始扇區+K盤總扇區數-1

=3 649 664+532 480-1

=4 182 143

將H盤、I盤、J盤和K盤的總扇區數和結束扇區號填入表5。

表5 磁盤1各邏輯盤基本情況

2、將MBR磁盤轉換為GPT磁盤。

(8)在Windows 7操作系統下,使用Windows 7的虛擬磁盤管理功能附加D盤根目錄上的abc2.vhd文件為磁盤1;

(9)將光標移動到“磁盤1 基本2 GB 聯機”處,右擊,從彈出的快捷菜單中選擇“轉換成GPT磁盤(V)”;

至此,磁盤1由MBR磁盤轉換為GPT磁盤。

(10)將光標移動到“磁盤1 基本1.97 GB 聯機”處,右擊,從彈出的快捷菜單中選擇“分離VHD”,將磁盤1分離。

3、重建4個邏輯盤GPT分區表。

(1)在Windows 7操作系統下,啟動WinHex;

(2)文件-->打開-->選擇D盤根目錄上的abc2.vhd文件,打開D盤根目錄上的abc2.vhd文件;

(3)專家-->映像文件為磁盤,將abc2.vhd文件映像為磁盤;

(4)打開“GPT分區表.vhd”文件,并全選該文件,單擊“復制”按鈕;

(5)將標移動到abc2.vhd文件的2號扇區開始位置,單擊“粘貼”按鈕;

(6)視圖-->模板管理器-->GPT Partition table,在圖3中分別輸入4個邏輯盤的開始扇區和結束扇區。

圖3 通過模版輸入4個分區的開始扇區和結束扇區

至此,GPT分區表已恢復。

4、恢復4個邏輯盤GPT分區表備份。

(7)從GPT頭可以獲得GPT分區表備份在4 194 271號扇區,將2號扇區復制到4 194 271號扇區,至此,GPT分區表備份已恢復。

5、重建GPT頭。

(8)選中2號扇區到33號扇區,即GPT分區表所在扇區號;

(9)工具-->比較Hash值-->CRC32(32Bit),可以獲得GPT分區表的CRC32校驗和為“F0E2AC5D”;GPT分區表的CRC32校驗和在GPT頭中的存儲形式采用小頭位序,占4個字節,所以,在GPT頭扇區偏移0X58~0X5B中的存儲形式為“5D AC E2 F0”;

(10)將1號扇區偏移0X58~0X5B處的值修改為“5D AC E2 F0”(注:存儲形式);

(11)將1號扇區偏移0X20~0X23處的值修改為“00 00 00 00 00”(注:存儲形式);

(12)選中1號扇區偏移0X00~0X5B這92個字節;

(13)工具-->比較Hash值-->CRC32(32Bit),可以獲得GPT頭的CRC32校驗和為“DE370F6F”;GPT頭的CRC32校驗和在GPT頭中的存儲形式采用小頭位序,占4個字節,所以,在GPT頭扇區偏移0X20~0X23中的存儲形式為“6F 0F 37 DE”;

(14)將1號扇區偏移0X20~0X23處的值修改為“6F 0F 37 DE”(注:存儲形式);然后存盤。

至此,GPT頭已恢復。

6、重建GPT頭備份。

(15)將光標移動到4 194 303號扇區,將偏移0X58~0X5B處的值修改為“5D AC E2 F0”(注:存儲形式);即修改GPT分區表備份的CRC32校驗和;

(16)將4 194 303號扇區偏移0X20~0X23處的值修改為“00 00 00 00 00”(注:存儲形式);

(17)選中4 194 303號扇區偏移0X00~0X5B,工具-->比較Hash值-->CRC32(32Bit),可以獲得GPT頭的CRC32校驗和為“7E5F9703”;

(18)將4 194 303號扇區偏移0X20~0X23處的值修改為“03 97 5F 7E”(注:存儲形式);然后存盤。

至此,GPT頭備份已恢復。

完成以上操作后,GPT磁盤中的保護MBR、GPT頭、GPT分區表、GPT分區表備份和GPT頭備份已成功恢復。通過計算機管理中的磁盤管理附加abc2.vhd后,在資源管理器中可以看到到H盤、I盤、J盤和K盤符。

5 在0號扇區建立4個MBR分區

如果GPT磁盤總容量小于2.2 TB,且分區總數小于4個時,也可以在硬盤0號扇區通過重建4個MBR的形式來恢復各邏輯盤中的全部數據。

由于MBR分區表存儲在0號扇區,邏輯盤的開始扇區也就是0號扇區MBR分區表中的相對扇區;根據相對扇區、總扇區數和分區標志可以得到存儲在0號扇區的4個MBR分區表如表6所示。

表6 存儲在0號扇區的4個MBR分區

使用WinHex軟件打開abc2.vhd,并映像為磁盤,將H盤、I盤、J盤和K盤的4個MBR分區填入到0號扇區偏移0X01BE~0X01FD處,如圖4所示;然后存儲并退出WinHex;即可恢復0號扇區的4個MBR分區表。

圖4 在0號扇區輸入4個分區的MBR分區表

通過計算機管理中的磁盤管理附加abc2.vhd后,在資源管理器中可以看到H盤、I盤、J盤和K盤符。

6 結束語

綜上所述,當GPT磁盤中的分區被刪除,并將GPT磁盤轉換為MBR磁盤后,通過掃描丟失分區功能獲得邏輯盤的開始扇區號和容量,通過容量計算各邏輯盤的總扇區數,通過各邏輯性盤的開始扇區號和總扇區數,計算出各邏輯盤的結束扇區號,通過修改GPT分區表中的開始扇區號和結扇區號,就可以恢復GPT分區表。

通過計算GPT頭中的GPT分區表CRC32校驗和與GPT頭校驗和就可以恢復GPT頭;通過計算GPT頭備份中的GPT分區表CRC32校驗和與GPT頭備份校驗和就可以恢復GPT頭備份。這樣也就可以恢復GPT磁盤中各邏輯盤的全部數據;如果GPT磁盤總容量小于2.2 TB,且分區總數小于4個時,也可以在硬盤0號扇區通過重建MBR的形式來恢復各邏輯盤中的全部數。

主站蜘蛛池模板: 福利小视频在线播放| 欧美第一页在线| 8090成人午夜精品| 欧美成人精品在线| 自偷自拍三级全三级视频| 亚洲成人福利网站| 国产第八页| 久久先锋资源| 日韩一级二级三级| 91青青在线视频| 国内精品久久久久久久久久影视| 欧美精品H在线播放| 免费激情网站| 国产成人精品2021欧美日韩 | 91福利片| 国产区网址| 国产欧美精品一区二区| 超碰色了色| 看av免费毛片手机播放| 伊人91在线| 在线视频精品一区| 日韩不卡免费视频| 国产成在线观看免费视频| 欧美www在线观看| 国产成人综合久久精品尤物| 日本a∨在线观看| 99久久精品国产综合婷婷| 免费播放毛片| 午夜欧美理论2019理论| 在线欧美日韩| 亚洲成人网在线播放| 精品无码国产一区二区三区AV| 老司机精品久久| 亚洲成AV人手机在线观看网站| 波多野吉衣一区二区三区av| 99re这里只有国产中文精品国产精品| 欧美三级日韩三级| 久久精品无码国产一区二区三区| 亚洲中文字幕av无码区| 日韩精品成人在线| a毛片免费观看| 亚洲精品国产首次亮相| 深夜福利视频一区二区| av性天堂网| 久久久精品无码一区二区三区| 色婷婷成人网| 一本久道久综合久久鬼色| 99在线观看国产| 国产人成在线视频| 91精品国产丝袜| 99久久精彩视频| 超级碰免费视频91| 午夜精品福利影院| 亚洲高清中文字幕| 国产麻豆福利av在线播放| 日韩在线第三页| 露脸真实国语乱在线观看| 日韩精品少妇无码受不了| 国产成人盗摄精品| 手机在线免费不卡一区二| 91在线播放国产| 久久亚洲日本不卡一区二区| 国产99精品视频| 国产黑丝一区| 亚洲色精品国产一区二区三区| 国产精品成人AⅤ在线一二三四| 欧美精品1区| www成人国产在线观看网站| 色爽网免费视频| 在线观看国产小视频| 欧美亚洲一二三区| 国产办公室秘书无码精品| 天天操天天噜| 中文字幕免费播放| 午夜三级在线| 色综合网址| 麻豆精选在线| 国产色网站| 首页亚洲国产丝袜长腿综合| 国产欧美日韩视频怡春院| 免费观看精品视频999| 中文字幕在线视频免费|