Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows 7系統教程 >> Win7系統應用技巧 >> 兩招恢復誤GHOST的硬盤(一)

兩招恢復誤GHOST的硬盤(一)

日期:2017/2/8 15:24:44      編輯:Win7系統應用技巧
平時遇到的誤情況有兩種,一種是誤用了帶功能的XP安裝盤,這種安裝盤會重建分區表,把你的硬盤分為四個區,然後把XP系統到C盤;第二種是利用備份還原系統,本應把備份還原到C分區,但一不小心還原到整個硬盤上了。這兩種操作的實質是一樣的,都改寫了硬盤的分區表,而且向硬盤覆蓋了一些數據。從數據恢復的角度來看,C分區被覆蓋了數據,國內由於沒有深層恢復技術,基本被覆蓋的數據是回不來的,但C分區之後的數據基本是可以完全恢復的。

        舉個例子加以說明,一塊硬盤原來有三個分區,分別是C,D,E,D盤和E盤有重要數據。原打算用在C盤裝上一個XP系統,但操作時不小心,把備份還原到了整個硬盤,這下子硬盤上只有一個C分區了。如下圖所示意,這個硬盤共有16G,原先C盤8G,D和E各是4G,現在只有一個C盤,大小是16G。



 
        從上圖可以看出,作了兩件事情,一是覆蓋了C盤的一部分空間,二是重寫了分區表。除了被覆蓋了一部分數據,其余的數據都毫發無損,我們只要能重建分區表,原來的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。修改完分區表後,保存設置,重啟計算機。
   
     
        重啟計算機後,我們發現磁盤1中已經有了三個分區,如下圖所示,其中F和G就是原先硬盤中的D和E,現在這兩個分區應該可以正常訪問,數據應該被100%恢復。
   



        打開F盤看看,如下圖所示,數據都回來了,用同樣方法可以驗證第三個分區的內容也被恢復了。現在硬盤中的第一個分區肯定不能訪問了,但我們只要用備份對第一個分區執行一次恢復操作就可以了。至此,數據恢復成功完成!
   

 
      以上這種方法適合了解分區原理的用戶,如果您不了解分區表的參數含義,不用擔心,您可以選擇下一種方法。

        二 Diskgen

        Diskgen是國內一款著名的分區恢復軟件,它可以快速地進行分區表的重建,備份,恢復等工作,是進行分區恢復時的好幫手。尤其是它查找分區表時進行了優化,每個磁頭只檢查第一個扇區,因此查找速度很快,不過它的這個特性有時也會遇到麻煩。Diskgen有DOS版本和Windows版本,用哪個都可以,我一般用的是深山紅葉光盤中帶的DOS版Diskgen,我感覺已經夠用了,記住,我們可以依靠工具但決不能依賴工具,工具不過是工程師思路的延伸而已。

        把硬盤恢復到故障狀態,在計算機中放入深山紅葉的啟動光盤,如下圖所示,出現了深山紅葉的啟動界面,我們選擇第二項“萬用MS-DOS工具箱“。
   

   
      進入DOS工具箱後,運行Diskgen,如下圖所示。
   

 
      啟動Diskgen後,我們首先在“硬盤”菜單中選擇第2硬盤,因為我們准備恢復的硬盤是計算機中的第二塊硬盤。如下圖所示,第二塊硬盤中只有一個分區。我們准備重建分區表,

在“工具”菜單中選擇“重建分區表”。

   

        Diskgen提醒要先對分區表進行備份,我們選擇“繼續”。
   


        接下來選擇工作方式,一定要選擇“交互方式”,這樣才能對恢復過程了然於胸。當然,如果實在不了解原理,用自動模式碰碰運氣也未嘗不可。
   

 
        Diskgen首先找到了目前的第一個分區,這個分區結果是誤後形成的,不是我們所希望的,因此選擇“跳過”。
   

        Diskgen繼續向下搜索,速度很快,如果Diskgen找到了一些分區,但都離1025柱面較遠,很有可能是以前分區遺留下來的,我們通通選擇“跳過”。直到如下圖所示,Diskgen找到了1020柱面的擴展分區,這是我們需要的,點擊“保留”。這樣,Diskgen在重建分區表時就會為這個擴展分區自動創建一個分區項。
   
 
        擴展分區之前的8G空間還沒有分區,我們點擊硬盤的前8G未分區空間,在“分區”菜單中選擇“新建分區”,如下圖所示。
   

        Diskman詢問是否將擴展分區之前的空間都劃給此分區,點擊“確定”。
   

 
        Diskgen詢問是否將分區類型設為FAT,由於我們用還原時分區的文件系統應該是NTFS,因此選擇“否”。
   

t="99" border="0" />

          如下圖所示,Diskgen要求手工輸入分區類型,我們輸入NTFS的代碼07。
 

        如下圖所示,分區重建完畢,新建了一個分區,找回了原來的擴展分區,存盤退出後重啟計算機。



          如下圖所示,重啟計算機後分區恢復了正常,第二個和第三個分區的數據都被恢復了。
   
 
      總結:誤形成的分區錯誤還是比較好處理的,只要將分區表正確重建,基本上C分區之後的數據都可以100%恢復。如果大家熟悉分區表參數,使用Winhex就可以完成任務,否則使用Diskgen輔助處理也是不錯的。千萬不要用Easyrecovery等工具掃描恢復,一是要花很長時間,另外掃描恢復的效果並不理想,至少不是100%恢復。恢復誤只涉及分區,一般不涉及文件系統,除非你C盤有數據被覆蓋了,那樣的話可以用Easyrecovery碰碰運氣。
Copyright © Windows教程網 All Rights Reserved