陳培德,吳建平,王麗清
(云南大學 信息學院 云南省高校數字媒體技術重點實驗室,云南 昆明 650223)
Ghost后數據恢復的研究與實現
陳培德,吳建平,王麗清
(云南大學 信息學院 云南省高校數字媒體技術重點實驗室,云南 昆明 650223)
Windows用戶在使用Ghost工具軟件安裝操作系統時,有時會將“選擇鏡像文件到分區”誤操作為“選擇鏡像文件到磁盤”;操作完成后,整個硬盤成為一個大C盤,造成各邏輯盤丟失。針對這一情況,以Ghost8.0為實驗軟件,Windows 7為平臺,WinHex 15.08為分析工具,對Ghost后硬盤中MBR分區結構進行分析,提出了兩種恢復Ghost后硬盤分區的基本思路與方法。第一種是通過各邏輯盤的DBR所在扇區號和總扇區數,在硬盤0號扇區重建各邏輯盤的MBR分區表來恢復各邏輯盤;另一種是通過重建硬盤0號扇區擴展分區表來恢復各邏輯盤。實驗結果表明:誤Ghost后除第1個邏輯盤中前面的部分數據被覆蓋后無法恢復外,只要恢復各邏輯盤的MBR分區表,后續邏輯盤中的數據均可完整恢復。通過實踐表明,這兩種恢復方法不僅實用而且方便、快捷。
Ghost;鏡像文件;分區表;數據恢復
Ghost是目前較多使用的快速地在硬盤上安裝操作系統,備份和恢復數據的一款工具軟件[1]。它實現了FAT16、FAT32、NTFS、OS2等多種硬盤分區格式的分區及硬盤數據的備份和還原功能[2]。
在微軟視窗操作系統廣為流傳的基礎上,為避開視窗操作系統原始完整安裝的費時和重裝系統后驅動應用程序再裝的麻煩,許多軟件安裝人員把自己做好的干凈系統用Ghost來備份和還原[3]。為使操作簡潔,其流程被一鍵Ghost、一鍵還原精靈等進一步簡化,它的易用很快得到了軟件安裝人員的喜愛[4]。將視窗操作系統Windows XP、Windows VISTA、Windows 7等軟件與系統引導文件、硬盤分區工具等集成為一體,進一步進行配套,這樣用戶在需要重裝系統時能有效且簡便地完成系統的快速重裝。然而,用戶在使用Ghost軟件安裝系統時,由于操作不慎,會誤將選擇分區操作為選擇整個硬盤[5],導致安裝系統后,只有一個分區,其分區的大小為整個硬盤的大小[6]。文中對Ghost后數據恢復進行了大量實驗,發現Ghost后大部分數據可以完整恢復。
1)實驗環境。
(1)操作系統:Windows 7;
(2)Ghost版本:8.0;
(3)數據恢復軟件及分析工具:WinHex 15.08。
2)制作目標盤實驗素材。
(1)Windows 7操作系統下,使用Windows 7的虛擬磁盤管理功能在D盤的根目錄上建立一個名為abcd1.vhd的文件,文件大小為20 GB。
(2)將abcd1.vhd文件附加為虛擬磁盤1,分區類型為MBR,并將磁盤1劃分為兩個分區,即主分區和擴展分區。主分區的大小為3 GB,對應的盤符為F:;擴展分區大小為17 GB,在擴展分區中再建立三個邏輯盤,即G盤、H盤和I盤。將各邏輯盤進行格式化,磁盤1中各邏輯盤基本情況如下:
·F盤,文件系統:FAT32,容量:2.93 GB;
·G盤,文件系統:NTFS,容量:4.88 GB;
·H盤,文件系統:NTFS,容量:5.86 GB;
·I盤,文件系統:NTFS,容量:6.32 GB。
(3)分別在F盤、G盤、H盤和I盤中存儲一些文件夾和文件。
(4)使用WinHex軟件查看0號扇區的分區表為“00 20 21 00 0B 92 54 7E 00 08 00 00 00 0C 5D 00”和“00 92 55 7E 05 FE FFFF 00 C8 5D 00 00 28 22 02”,第1個分區表對應F盤,第2個分區表對應擴展分區。
(5)F盤的基本情況為:已用磁盤空間:480 MB;可用磁盤空間:2.45 GB;總容量:2.92 GB。每個扇區的字節數:512,每個簇的扇區數:8;保留扇區:4 414;隱藏扇區:2 048;總扇區數:6 144 000;每個FAT表所占扇區數:5 985,已使用簇號:2~123 066;未使用簇號:123 067~765 953。
至此,Ghost前的目標盤已制作完成。
3)制作源盤實驗素材。
(1)使用Windows 7的虛擬磁盤管理功能在D盤的根目錄下再建立一個名為abcd2.vhd的文件,文件大小為500 MB。
(2)將該文件附加為磁盤2;分區類型為MBR,在磁盤2中建立一個分區,文件系統選擇FAT32,并將其進行格式化,使用WinHex查看0號扇區的分區表為“00 02 03 00 0B FE 3F 3E 80 00 00 00 00 88 0F 00”,所對應的盤符為J盤,J盤大小為497 MB。
(3)在J盤的根目錄下連續存儲一些文件和文件夾。J盤的基本情況為:已用磁盤空間:213 MB;可用磁盤空間:279 MB;總容量:493 MB。每個扇區的字節數:512,每個簇的扇區數:8;保留扇區:6 218;隱藏扇區:128;總扇區數:1 017 856;每個FAT表所占扇區數:987;已使用簇號:2~54 555;未使用簇號:54 556~126 209。
(4)使用Ghost軟件將J盤做成一個鏡像文件,文件名為:abcd3.gho,鏡像文件大小為212 MB。
至此,Ghost前的鏡像文件已制作完成。
Ghost前,各邏輯盤在磁盤1中的分布情況如圖1所示。
在磁盤1的0號扇區有兩個分區,即主分區(對應的盤符為F盤)和擴展分區[6];在擴展分區中有G盤分區表和H盤鏈接項、H盤分區和I盤鏈接項、I盤分區[7]。各邏輯盤分區表情況如表1所示。

表1 Ghost前各邏輯盤和擴展分區情況

圖1 Ghost前磁盤1各邏輯盤分布圖
以Windows 7操作系統為平臺,使用Ghost軟件以abcd3.gho為源文件,以磁盤1為目標盤,進行Ghost操作。
操作步驟如下:
(1)Local→Disk→From Image;
(2)從彈出的“Image File name to restore from”窗口中選擇“abcd3.gho”;
(3)在彈出的“Select local destination drive by clicking on the drive number”窗口中選擇目標驅動器—磁盤1[6]。
Ghost后,各邏輯盤在磁盤1中的分布情況如圖2所示。即在磁盤1的0號扇區建立了一個分區,主分區所對應的盤符為新F盤,新F盤的大小為整個磁盤1的容量。

圖2 Ghost后磁盤1布局圖
從Ghost前和Ghost后對比圖可知,Ghost后,目標文件abcd3.gho只覆蓋了Ghost前F盤的一部分數據,F盤未覆蓋的部分可以使用按文件名的形式進行恢復。G盤、H盤和I盤中所存儲的文件夾和文件沒有被覆蓋,可以全部恢復。
注:Ghost后,由于0號扇區的擴展表已刪除,所以G盤分區表、H盤鏈接項、H盤分區表、I盤鏈接項和I盤分區表已不再起作用,如圖2中的虛線部分。其分區表情況如表2所示。
經過大量實驗,發現對于Ghost后,可以通過兩種方法來恢復數據:
方法一:
(1)恢復G盤、H盤和I盤三個邏輯盤在0號扇區偏移地址0X01CE~0X01FD的主分區表;
(2)調整新F盤分區表中的總扇區數(扇區偏移為0X01CA~0X01CD);

表2 Ghost后各分區情況
(3)調整新F盤FAT32_DBR中的總扇區數(扇區偏移為0X020~0X023)。
完成以上操作就可以恢復Ghost前G盤、H盤和I盤中的所有文件夾和文件;同時也可以查看新F盤的全部文件夾和文件。恢復后的各分區表與各邏輯盤分布圖如圖3所示。

圖3 恢復后磁盤1中各邏輯盤的分布圖
恢復步驟為:
(1)啟動WinHex軟件,通過NTFS_DBR的特征值(注:NTFS_DBR的特征值為扇區前三個字節的值為“EB5290”[8])查找NTFS_DBR所在扇區號。
(2)分別在6 146 048號扇區、16 388 095號扇區等找到;經確認各NTFS_DBR作用如表3所示。

表3 磁盤1中NTFS_DBR和NTFS_DBR備份所在扇區號
(3)從表3可以計算出磁盤1中Ghost前G盤、H盤和I盤在0號扇區的分區,如下所示:
·G盤“00 01 01 00 07 FE FF FF 00 D0 5D 00 00 40 9C 00”
·H盤“00 01 01 00 07 FE FF FF 00 18 FA 00 00 80 BB 00”
·I盤 “00 01 01 00 07 FE FF FF 00 A0 B5 01 00 50 CA 00”
對G盤、H盤和I盤分區表說明如下:
①由于G盤、H盤和I盤均不引導系統,各分區表中第1個字節的值為“00”[9];
②目前硬盤的存取方式均為LBA,分區表中第2~4字節未定義,可以填充任意值,這里填充“01 01 00”[9];
③由于要恢復的邏輯盤的文件系統均為NTFS,分區標志為“07”[10-11];
④分區表中第6~8字節未定義,可以填充任意值,這里填充“FE FF FF”[9];
⑤分區表中第9~12字節為相對扇區,即各邏輯盤NTFS_DBR所在扇區號;
⑥分區表中第13~16字節為總扇區數,即各邏輯盤所占扇區數[12]。
(4)調整新F盤分區表中的總扇區數,由于G盤NTFS_DBR所在扇區號為6 146 048,所以可以推算出新F盤的結束扇區號為6 146 047,而新F盤分區表中的相扇區為63,所以新F盤總扇區數為6 418 033。新F盤分區表為“00 01 01 00 0C FE FF FF 3F 00 00 00 C1 CF 5D 00”。
(5)將計算好的3個分區表填充0扇區偏移0X01CE~0X01FD處,并將第1個分區表總扇區數(偏移地址為0X01CA~0X01CD)修改為“C1 CF 5D 00”。
(6)將光標移到63號扇區,即F盤FAT32_DBR所在扇區,將F盤FAT32_DBR中總扇區數(扇區偏移地址為0X020~0X023)修改為“C1 CF 5D 00”。
(7)存盤并退出WinHex,到資源管理器可以查看到恢復出來的G盤、H盤和I盤中的文件夾和文件,以及新F盤中的文件夾和文件。
方法二:
(1)恢復Ghost前0號扇區的擴展分區表;
(2)調整Ghost后新F盤分區表中的總扇區數;
(3)調整新F盤FAT32_DBR中的總扇區數。
完成以上操作就可以恢復Ghost前G盤、H盤和I盤中所有文件夾和文件;同時也可以查看Ghost后F盤的全部文件夾和文件?;謴秃蟮母鬟壿嫳P結構圖如圖1所示,即Ghost前的結構圖。
恢復步驟為:
(1)啟動WinHex軟件,通過特征值來查找G盤分區表和H盤鏈接項所在扇區號(注:特征值為扇區最后兩個字節的值為“55AA”[12])。
(2)在6 146 048號扇區找到,即擴展分區表的相對扇區為6 146 048。
(3)由于整個硬盤的總扇區數為41 943 041,可以估算擴展分區表的結束扇區號為41 943 020,即擴展分區在整個硬盤中扇區號為6 146 048~41 943 020,擴展分區中總扇區數為35 794 925。
(4)擴展分區在0號扇區偏移0X01CE~0X01DD處的分區表為“00 01 01 00 05 FE FF FF 00 C8 5D 00 EC 37 22 02”。
對擴展分區表說明如下:
①擴展分區表不引導系統,第1個字節的值為“00”;
②第2~4字節未定義,可以填充任意值,這里填充“01 01 00”;
③第5個字節為擴展分區標志位,取值為“05”或“0F”,這里取“05”[13];
④第6~8字節未定義,可以填充任意填,這里填充“FE FF FF”;
⑤第9~12字節為相對扇區,即G盤分區表和H盤鏈接項所在扇區號,其值為6 146 048,在分區表中的存儲形式為“00 C8 5D 00”;
⑥第13~16字節為總扇區數,即擴展分區表所占總扇區數,其值為35 794 925,在分區表中存儲形式為“EC 37 22 02”。
(5)由于在6 146 048號扇區找到G盤分區表和H盤鏈接項,確定新F盤的結束扇區號為6 146 047。即新F盤所占扇區號為63~6 146 047,分區表中總扇區數為6 145 985,在分區表中的存儲形式為“C1 C7 5D 00”;即新F盤的分區表修改為“00 01 01 00 0C FE FF FF 3F 00 00 00 C1 C7 5D 00”。
(6)將計算好的擴展分區表填入至0號扇區偏移0X01CE~0X01DD處,并將第1個分區表總扇區數(扇區偏移地址為0X01CA~0X01CD)修改為“C1 C7 5D 00”。
(7)將光標移到63號扇區,即F盤FAT32_DBR所在扇區,將F盤FAT32_DBR中總扇區數(扇區偏移地址為“0X020~0X023”[14])修改為“C1 C7 5D 00”。
(8)存盤并退出WinHex,到資源管理器可以查看到恢復出來的G盤、H盤和I盤中的文件夾和文件,以及新F盤中的文件夾和文件。
至此,Ghost前的G盤、H盤和I盤中所存儲的全部文件夾和文件均已被完整恢復出來。如果要恢復的文件內容存儲于原來F盤未被覆蓋的區域,可以使用WinHex按文件類型功能進行恢復。
除使用Ghost8.0做實驗外,還使用Ghost11.0.1做了大量實驗。實驗結果發現:Ghost后,除被覆蓋的區域外,還將G盤分區表、H盤鏈接項、H盤分區表和I盤分區表刪除,只留下I盤鏈接項。對于這種情況,使用方法一來恢復更為方便一些,但方法一只能恢復4個分區表,如果分區多于四個可以先恢復四個分區,將各邏輯中的文件復制出來后,再通過修改分區表的形式恢復剩余分區中的文件夾和文件。
對于方法二,使用Ghost11.0.1后,如果G盤分區表、H盤鏈接項、H盤分區表和I盤分區表四個分區表被刪除,只留下I盤鏈接項,這種情況的恢復思路如下:
(1)計算擴展分區表;
(2)計算G盤分區表、H盤鏈接項、H盤分區表和I盤分區表;
(3)計算G盤分區表和H盤鏈接項所在扇區號;
(4)計算H盤分區表和I盤鏈接項所在扇區號;
(5)計算I盤分區表所在扇區號;
(6)將擴展分區表填入至0號扇區偏移0X01CE~0X01DD處,將G盤分區表和H盤鏈接項填入所在扇區偏移0X01BE~0X01DD處,將H盤分區表和I盤鏈接項填入所在扇區偏移0X01BE~0X01DD處,將I盤分區表填入所在扇區偏移0X01BE~0X01CD處;
(7)調整Ghost后新F盤分區表中的總扇區數和新F盤FAT32_DBR中的總扇區數。
綜上所述,Ghost后整個硬盤分區變為一個大分區,恢復Ghost前邏輯盤中全部數據的核心工作在于重建分區表。
[1] 賀惠萍,榮 彥,張 蘭,等.Windows+7萬能Ghost啟動盤仿真軟件的設計與實現[J].實驗技術與管理,2014,31(5):127-130.
[2] 張鐘澍,陳代軍,李新萌.修復和維護你的硬盤[M].北京:北京希望電子出版社,2002:298.
[3] 丁一鈞.利用GHOST重裝操作系統疑難問題解析[J].電腦編程技巧與維護,2013(14):122-123.
[4] 楊海瑞.試談機房使用Ghost恢復系統的方法[J].電腦編程技巧與維護,2013(20):111-112.
[5] 陳培德,吳建平,王麗清.NTFS文件系統實例詳解[M].北京:國防工業出版社,2015.
[6] 劉 偉.數據恢復技術深度揭秘[M].北京:電子工業出版社,2010.
[7] 馬 林.數據重現─文件系統原理精解與數據恢復最佳實踐[M].北京:清華大學出版社,2009:43-51.
[8] Carrier B.File system forensic analysis[M].[s.l.]:Addison Wesley Professional,2005:160.
[9] 汪中夏,張京生,劉 偉.RAID數據恢復技術揭秘[M].北京:清華大學出版社,2010:102-115.
[10] 戴士劍,涂彥暉.數據恢復技術[M].北京:電子工業出版社,2005:97.
[11] 劉乃琦,郭建東,張 可.系統與數據恢復技術[M].成都:電子科技大學出版社,2008:46.
[12] Fathi B.深入解析Windows操作系統(第5版·英文版)[M].北京:人民郵電出版社,2009.
[13] Hogan T.The programmer's PC sourcebook[M].USA:Microsoft Press,1988:60.
[14] Ivens K,Gardinier K.Windows 2000:the complete reference[M].[s.l.]:McGraw-Hill Companies,2000:531.
Research and Implementation for Data Recovery after Ghost
CHEN Pei-de,WU Jian-ping,WANG Li-qing
(Key Laboratory of Digital Media Technology of Universities and Colleges in Yunnan Province, School of Information Science and Engineering,Yunnan University,Kunming 650223,China)
When the Windows users install the operating system with the Ghost tool software to their computers,they should make wrong operation of “to disk from image” instead of “to partition from image”.After having finished it,the whole hard disk partition changes into a big Drive C,leading to the result that the primary partition in hard disk and the logical disk have lost.To aim the case,Ghost 8.0 is used as the experimental software,and the Windows 7 as the platform,and WinHex 15.08 as the analysis tool to analyze the primary partition structure in the hard disk after Ghost.The two thought and methods are put forward for recovering the partition in the disk.The first one is to rebuild the MBR partition table in the 0 sector for very logic disk by the DBR’s sector number and total sectors for very logic disk in DBR,to recover all data in every logic disk.The second is to rebuild the extension partition table in the 0 sector for recovery of all data in every logic disk.The results of experiments indicate that the part of data in the front of disk could not be recovered,and the other data in the behind disk would be recovered integrally with,if the partition table would be recovered.The practice demonstrates that the two methods are not only useful,but also quick and easy.
Ghost;image file;partition table;data recovery
2016-03-23
2016-06-29
時間:2017-01-04
云南省科技創新強省計劃項目(2014AB021);云南省高校數字媒體重點實驗室開放基金項目(2015KFKT002)
陳培德(1966-),男,工程師,研究方向為文件系統與數據恢復技術。
http://www.cnki.net/kcms/detail/61.1450.TP.20170104.1102.100.html
TP311.12
A
1673-629X(2017)01-0112-05
10.3969/j.issn.1673-629X.2017.01.025