• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      恢復GPT分區(qū)的研究與實現(xiàn)

      2021-08-02 03:48:58陳培德吳建平
      計算機技術與發(fā)展 2021年7期
      關鍵詞:分區(qū)表磁盤扇區(qū)

      陳培德,吳建平

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

      0 引 言

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

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

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

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

      1 GPT磁盤介紹

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

      圖1 GPT磁盤的整體結構

      (1)保護MBR。

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

      (2)GPT頭。

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

      表1 GPT頭各項參數(shù)含義

      續(xù)表1

      (3)GPT分區(qū)表。

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

      表2 GPT分區(qū)表各項參數(shù)含義

      表3 GPT分區(qū)類型GUID定義說明[2]

      (4)分區(qū)區(qū)域。

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

      (5)分區(qū)表備份。

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

      表4 GPT頭備份各參數(shù)含義

      (6)GPT頭備份。

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

      2 實驗環(huán)境及制作實驗素材

      2.1 實驗環(huán)境

      (1)操作系統(tǒng):Windows 7;

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

      2.2 制作GPT模板

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

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

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

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

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

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

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

      (4)分離abc1.vhd文件。

      2.3 制作實驗素材

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

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

      H盤,文件系統(tǒng):NTFS,容量:350 MB

      I盤,文件系統(tǒng):NTFS,容量:600 MB

      J盤,文件系統(tǒng):NTFS,容量:800 MB

      K盤,文件系統(tǒng):NTFS,容量:260 MB

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

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

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

      3 恢復GPT分區(qū)的基本思路與方法

      3.1 恢復GPT分區(qū)的基本思路

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

      (2)恢復GPT頭;

      (3)恢復GPT頭備份;

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

      3.2 恢復GPT分區(qū)的基本方法

      恢復GPT分區(qū)的基本方法如下:

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

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

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

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

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

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

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

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

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

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

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

      4 恢復GPT分區(qū)的步驟

      根據(jù)恢復GPT分區(qū)的基本思路與方法,恢復GPT分區(qū)的步驟如下:

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

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

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

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

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

      圖2 獲得4個丟失分區(qū)的情況

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

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

      H盤總扇區(qū)數(shù)=容量*1 024*1 024/512

      =350*1 024*1 024/512

      =716 800

      I盤總扇區(qū)數(shù)=容量*1 000*1 024*1 024/512

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

      =1 228 800

      J盤總扇區(qū)數(shù)=容量*1 024*1 024*1 024/512

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

      =1 638 400

      K盤總扇區(qū)數(shù)=容量*1 024*1 024/512

      =260*1 024*1 024/512

      =532 480

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

      H盤結束扇區(qū)= H盤開始扇區(qū)+H盤總扇區(qū)數(shù)-1

      =65 664+716 800-1

      =782 463

      I盤結束扇區(qū)= I盤開始扇區(qū)+I盤總扇區(qū)數(shù)-1

      =782 464+1 228 800-1

      =2 011 263

      J盤結束扇區(qū)= J盤開始扇區(qū)+J盤總扇區(qū)數(shù)-1

      =2 011 264+1 638 400-1

      =3 649 663

      K盤結束扇區(qū)= K盤開始扇區(qū)+K盤總扇區(qū)數(shù)-1

      =3 649 664+532 480-1

      =4 182 143

      將H盤、I盤、J盤和K盤的總扇區(qū)數(shù)和結束扇區(qū)號填入表5。

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

      2、將MBR磁盤轉(zhuǎn)換為GPT磁盤。

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

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

      至此,磁盤1由MBR磁盤轉(zhuǎn)換為GPT磁盤。

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

      3、重建4個邏輯盤GPT分區(qū)表。

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

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

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

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

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

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

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

      至此,GPT分區(qū)表已恢復。

      4、恢復4個邏輯盤GPT分區(qū)表備份。

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

      5、重建GPT頭。

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

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

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

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

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

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

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

      至此,GPT頭已恢復。

      6、重建GPT頭備份。

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

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

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

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

      至此,GPT頭備份已恢復。

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

      5 在0號扇區(qū)建立4個MBR分區(qū)

      如果GPT磁盤總?cè)萘啃∮?.2 TB,且分區(qū)總數(shù)小于4個時,也可以在硬盤0號扇區(qū)通過重建4個MBR的形式來恢復各邏輯盤中的全部數(shù)據(jù)。

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

      表6 存儲在0號扇區(qū)的4個MBR分區(qū)

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

      圖4 在0號扇區(qū)輸入4個分區(qū)的MBR分區(qū)表

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

      6 結束語

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

      通過計算GPT頭中的GPT分區(qū)表CRC32校驗和與GPT頭校驗和就可以恢復GPT頭;通過計算GPT頭備份中的GPT分區(qū)表CRC32校驗和與GPT頭備份校驗和就可以恢復GPT頭備份。這樣也就可以恢復GPT磁盤中各邏輯盤的全部數(shù)據(jù);如果GPT磁盤總?cè)萘啃∮?.2 TB,且分區(qū)總數(shù)小于4個時,也可以在硬盤0號扇區(qū)通過重建MBR的形式來恢復各邏輯盤中的全部數(shù)。

      猜你喜歡
      分區(qū)表磁盤扇區(qū)
      2022中科院期刊分區(qū)表全球眼科學期刊分區(qū)及排名
      2022中科院期刊分區(qū)表全球眼科學期刊分區(qū)及排名
      2022中科院期刊分區(qū)表全球眼科學期刊分區(qū)及排名
      分階段調(diào)整增加扇區(qū)通行能力策略
      南北橋(2022年2期)2022-05-31 04:28:07
      解決Windows磁盤簽名沖突
      電腦愛好者(2019年2期)2019-10-30 03:45:31
      修改磁盤屬性
      U盤故障排除經(jīng)驗談
      磁盤組群組及iSCSI Target設置
      創(chuàng)建VSAN群集
      基于貝葉斯估計的短時空域扇區(qū)交通流量預測
      利辛县| 河池市| 都昌县| 海盐县| 上高县| 和平区| 泽州县| 越西县| 九江县| 措美县| 射阳县| 昭通市| 新干县| 广河县| 广灵县| 灌阳县| 安平县| 石城县| 勐海县| 娄烦县| 栖霞市| 屏山县| 长子县| 江源县| 古丈县| 台江县| 清原| 无锡市| 宜丰县| 夏津县| 个旧市| 谢通门县| 泽州县| 三门峡市| 平武县| 大埔县| 衡南县| 怀集县| 韶山市| 通许县| 肥东县|