兩招輕松恢復誤Ghost的硬盤
日期:2017/2/8 9:06:13   編輯:系統工具
最近接連幫朋友恢復了幾塊被誤Ghost的硬盤,今天抽點時間寫寫處理過程,希望能給遇到此類問題的朋友一些參考。平時遇到的誤Ghost情況有兩種,一種是誤用了帶Ghost功能的XP安裝盤,這種安裝盤會重建分區表,把你的硬盤分為四個區,然後把XP系統Ghost到C盤;第二種是利用Ghost備份還原系統,本應把備份還原到C分區,但一不小心還原到整個硬盤上了。這兩種操作的實質是一樣的,都改寫了硬盤的分區表,而且向硬盤覆蓋了一些數據。從數據恢復的角度來看,C分區被覆蓋了數據,國內由於沒有深層恢復技術,基本被覆蓋的數據是回不來的,但C分區之後的數據基本是可以完全恢復的。
舉個例子加以說明,一塊硬盤原來有三個分區,分別是C,D,E,D盤和E盤有重要數據。原打算用Ghost在C盤裝上一個XP系統,但操作時不小心,把Ghost備份還原到了整個硬盤,這下子硬盤上只有一個C分區了。如下圖所示意,這個硬盤共有16G,原先C盤8G,D和E各是4G,現在只有一個C盤,大小是16G。//本文轉自www.45it.com電腦軟硬件應用網
從上圖可以看出,Ghost作了兩件事情,一是覆蓋了C盤的一部分空間,二是重寫了分區表。除了被Ghost覆蓋了一部分數據,其余的數據都毫發無損,我們只要能重建分區表,原來的D盤和E盤的數據就可以重見天日了。要重建分區表,關鍵是要知道第一個擴展分區起始的位置,找到了這個位置,所有的問題就都解決了。平時我解決這個問題,一般用Winhex或Diskgen,現把兩種方法都寫出來供大家參考。
一 Winhex
Winhex是個五星級的扇區編輯工具,雖然只有2M大小,但功能及其強大,什麼分析分區表,分析DBR,計算偏移,簇鏈追蹤都不在話下,是數據恢復工程師的保留武器。我們先請它出場,但使用Winhex要求對數據存儲原理有一定了解(今天俺就不詳細介紹原理了),要不然看了Winhex的界面就崩潰的也不在少數。
我們把要恢復的硬盤掛到另外一台計算機上,如下圖所示,磁盤1就是要目標硬盤,現在它只有一個分區,我們要把它的分區恢復原狀。
啟動Winhex,在工具菜單中選擇“磁盤編輯器”,如下圖所示,選擇打開第二塊物理硬盤HD1(wmware搭的實驗環境)。
Winhex打開了物理硬盤,如下圖所示就是0扇區的內容,0扇區內容分為三部分,引導程序,分區表和55AA的結束標志。圖中綠色部分就是分區表,由於現在硬盤中只有一個分區,因此分區表中只有一項。
好,現在我們要重建正確的分區表,分區表中要有兩項,一項是對主分區C的描述,另一項是對擴展分區的描述。現在的關鍵是要找出擴展分區的起點,由於原硬盤的C分區大約是8000M,每個柱面的大小是255×63×512=8225280字節=7.8M,因此原擴展分區的起點大約是8000÷7.8=1025,也就是說擴展分區的起點在1025柱面附近。考慮到誤差因素,我們放寬范圍,讓Winhex從950柱面開始搜索擴展分區的起始扇區。擴展分區的起始扇區有擴展分區表,而且扇區以55AA結束,我們根據這個特征可以指定搜索條件,具體思路是每個扇區512個字節,編號從0到511,我們讓Winhex檢索哪個扇區的510和511字節是55和AA,這個扇區就有可能是我們要找的擴展分區起始扇區。當然了,也有可能某個不相干的扇區也是以55AA結尾,那就要作進一步的篩選。一般情況下,擴展分區的起始扇區總是位於某個柱面的0磁頭1扇區,這些條件我們都要加以利用。
好了,首先定位到950柱面0磁頭1扇區,我們准備從這裡開始搜索,在Winhex的“位置”菜單中選擇“轉到扇區”,如下圖所示,填入參數是950/0/1。再次聲明,950柱面只是一個憑經驗估算的結果。
在Winhex“搜索”菜單中,選擇“查找16進制數值”,如下圖所示。
如下圖所示,我們輸入了搜索參數,搜索的16進制數值為55AA,搜索方向是向下,這是告訴Winhex從950柱面向後搜索。條件設為從偏移510開始,因為1個扇區有512字節,編號從0字節到511,55在510位置,AA在511位置。
搜索開始了,一會就找到了一個符合條件的扇區,到底是不是我們要照的擴展分區起始扇區呢?我們在Winhex的“查看”菜單中選擇顯示“詳細資料面板“,這樣就可以顯示出扇區的LBA和CHS參數,如下圖所示,這個扇區位於1019柱面254磁頭63扇區。顯然是一個NTFS分區的結束扇區,很有可能就是原C盤的最後一個扇區。這個扇區不是我們需要的,繼續搜索!
再向下找到的扇區就很象我們的目標了,如下圖所示,這個扇區中有一個分區表,而且位置在1020柱面0磁頭1扇區,和我們估算的1025柱面相差無幾,憑經驗基本可以認定這就是我們要找的目標。
好了,假定我們找到的1020柱面0磁頭1扇區就是擴展分區的起點,那我們就可以判斷原先的C分區是從0柱面1磁頭1扇區開始,到1019柱面254磁頭63扇區結束。那擴展分區結束在什麼地方呢?從分區表中的第二項可以知道答案,分區表的第二項描述了第二個擴展分區的起點和終點,第二個擴展分區的終點就是我們要找的擴展分區的結束位置。從分區表來看,第二個擴展分區的起點距當前扇區有7D 04 7E個扇區,大小是88 C8 AE個扇區。經過計算,擴展分區的終點是2087柱面254磁頭63扇區。說到這兒,要對一些朋友說聲抱歉了,這些計算涉及到分區原理,如果以前沒有接觸過,確實不容易看懂。現在大家如果理解起來有問題,可以參考第二種方法。
經過計算,我們算出C分區從 0/1/1-1019/254/63,擴展分區從 1020/0/1-2087/254/63。有了這些參數,我們在硬盤0扇區的分區表中寫出兩項分區表,分別描述C分區和擴展分區就可以了。如下圖所示,兩項分區表的參數分別是 80 01 01 00 07 FE FF FF 3F 00 00 00 BD 08 FA 00和00 00 C1 FF 0F FE FF FF FC 08 FA 00 2C CD 05 01。修改完分區表後,保存設置,重啟計算機。