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的形式來恢復各邏輯盤中的全部數。

主站蜘蛛池模板: 久久大香伊蕉在人线观看热2| 亚洲欧美不卡视频| AV在线麻免费观看网站| 456亚洲人成高清在线| 毛片久久久| 中文字幕无码中文字幕有码在线| 九色在线视频导航91| 动漫精品中文字幕无码| 中文字幕丝袜一区二区| 深夜福利视频一区二区| 无码一区二区三区视频在线播放| 国产一区二区免费播放| 国产精品女同一区三区五区| 91人妻日韩人妻无码专区精品| 国产成人免费观看在线视频| 99久久国产自偷自偷免费一区| 久久午夜夜伦鲁鲁片无码免费| 九九久久99精品| v天堂中文在线| 亚洲青涩在线| 九九久久精品国产av片囯产区| 亚洲一欧洲中文字幕在线| 在线不卡免费视频| 88av在线播放| 草草影院国产第一页| 一级做a爰片久久免费| 久草网视频在线| 国产亚洲高清视频| 一区二区三区四区日韩| 老司机午夜精品网站在线观看| 久久中文无码精品| 无码高清专区| 国产性爱网站| 国产网站在线看| 啪啪国产视频| 伊人网址在线| 毛片在线区| 国产国拍精品视频免费看| 亚洲最大在线观看| 国产精品片在线观看手机版| 日本手机在线视频| 欧美一级99在线观看国产| 国产一级二级三级毛片| 91成人免费观看| 天堂久久久久久中文字幕| 国产人成在线观看| 欧美成人怡春院在线激情| 国产成人欧美| 国产jizzjizz视频| 亚洲视频影院| 色哟哟精品无码网站在线播放视频| 一区二区理伦视频| 青青青草国产| 97影院午夜在线观看视频| 91在线免费公开视频| 视频二区中文无码| 无码日韩人妻精品久久蜜桃| 亚洲精品动漫| 国产精品久久国产精麻豆99网站| 在线观看无码a∨| av在线5g无码天天| 国产在线观看第二页| 欧美成人精品高清在线下载| 国产肉感大码AV无码| 国产欧美日本在线观看| 国产成人禁片在线观看| 亚洲AV色香蕉一区二区| 91福利在线观看视频| 国产精品视频第一专区| 日本黄色不卡视频| 欧美日韩免费观看| 亚洲国产综合精品一区| 欧美福利在线| 精品国产中文一级毛片在线看| 日韩欧美综合在线制服| av一区二区无码在线| 亚洲高清在线播放| 狠狠躁天天躁夜夜躁婷婷| 婷婷成人综合| AV不卡无码免费一区二区三区| 国产白浆在线观看| 国产精品自在拍首页视频8|