當前位置:文思屋>社會工作>電腦培訓>

恢復誤ghost硬碟的方法

文思屋 人氣:7.41K

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

恢復誤ghost硬碟的方法

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

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_kgxau__20080713105725622.jpg" width="561" height="439" border="0" />

從上圖可以看出,作了兩件事情,一是覆蓋了C盤的一部分空間,二是重寫了分割槽表。除了被覆蓋了一部分資料,其餘的資料都毫髮無損,我們只要能重建分割槽表,原來的D盤和E盤的資料就可以重見天日了。要重建分割槽表,關鍵是要知道第一個擴充套件分割槽起始的位置,找到了這個位置,所有的問題就都解決了。平時我解決這個問題,一般用Winhex或Diskgen,現把兩種方法都寫出來供大家參考。

一 Winhex

Winhex是個五星級的扇區編輯工具,雖然只有2M大小,但功能及其強大,什麼分析分割槽表,分析DBR,計算偏移,簇鏈追蹤都不在話下,是資料恢復工程師的保留武器。我們先請它出場,但使用Winhex要求對資料儲存原理有一定了解(今天俺就不詳細介紹原理了),要不然看了Winhex的介面就崩潰的也不在少數。

我們把要恢復的硬碟掛到另外一臺計算機上,如下圖所示,磁碟1就是要目標硬碟,現在它只有一個分割槽,我們要把它的分割槽恢復原狀。

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105725430.jpg" width="627" height="448" border="0" />

啟動Winhex,在工具選單中選擇“磁碟編輯器”,如下圖所示,選擇開啟第二塊物理硬碟HD1(wmware搭的實驗環境)。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_jlfre__20080713105726752.jpg" width="356" height="349" border="0" /> Winhex打開了物理硬碟,如下圖所示就是0扇區的內容,0扇區內容分為三部分,載入程式,分割槽表和55AA的結束標誌。圖中綠色部分就是分割槽表,由於現在硬碟中只有一個分割槽,因此分割槽表中只有一項。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_conok__20080713105726937.jpg" width="628" height="561" border="0" />

好,現在我們要重建正確的分割槽表,分割槽表中要有兩項,一項是對主分割槽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柱面只是一個憑經驗估算的結果。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_dxcs0__20080713105727778.jpg" width="268" height="193" border="0" /> 在Winhex“搜尋”選單中,選擇“查詢16進位制數值”,如下圖所示。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_zofd2__20080713105728919.jpg" width="630" height="566" border="0" />

如下圖所示,我們輸入了搜尋引數,搜尋的16進位制數值為55AA,搜尋方向是向下,這是告訴Winhex從950柱面向後搜尋。條件設為從偏移510開始,因為1個扇區有512位元組,編號從0位元組到511,55在510位置,AA在511位置。

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105729438.jpg" width="251" height="277" border="0" />

搜尋開始了,一會就找到了一個符合條件的扇區,到底是不是我們要照的擴充套件分割槽起始扇區呢?我們在Winhex的“檢視”選單中選擇顯示“詳細資料面板“,這樣就可以顯示出扇區的LBA和CHS引數,如下圖所示,這個扇區位於1019柱面254磁頭63扇區。顯然是一個NTFS分割槽的結束扇區,很有可能就是原C盤的最後一個扇區。這個扇區不是我們需要的,繼續搜尋!

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_sj56z__20080713105729559.jpg" width="640" height="512" border="0" />

再向下找到的扇區就很象我們的目標了,如下圖所示,這個扇區中有一個分割槽表,而且位置在1020柱面0磁頭1扇區,和我們估算的1025柱面相差無幾,憑經驗基本可以認定這就是我們要找的目標。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_jfg9q__20080713105730667.jpg" width="638" height="569" border="0" />

好了,假定我們找到的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。修改完分割槽表後,儲存設定,重啟計算機。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_n9fxw__20080713105731949.jpg" width="639" height="571" border="0" />

重啟計算機後,我們發現磁碟1中已經有了三個分割槽,如下圖所示,其中F和G就是原先硬碟中的D和E,現在這兩個分割槽應該可以正常訪問,資料應該被100%恢復。

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105732851.jpg" width="634" height="446" border="0" />

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

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_y9kzj__20080713105733851.jpg" width="595" height="398" border="0" />

以上這種方法適合瞭解分割槽原理的使用者,如果您不瞭解分割槽表的引數含義,不用擔心,您可以選擇下一種方法。

二 Diskgen

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

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

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_yqfyl__20080713105733866.jpg" width="515" height="491" border="0" />

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

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105734815.jpg" width="628" height="460" border="0" />

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

在“工具”選單中選擇“重建分割槽表”。

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105735933.jpg" width="636" height="480" border="0" />

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

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105736913.jpg" width="298" height="97" border="0" />

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

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_ioa6k__20080713105736926.jpg" width="300" height="114" border="0" />

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

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_hcawv__20080713105736496.jpg" width="636" height="480" border="0" />

Diskgen繼續向下搜尋,速度很快,如果Diskgen找到了一些分割槽,但都離1025柱面較遠,很有可能是以前分割槽遺留下來的,我們通通選擇“跳過”。直到如下圖所示,Diskgen找到了1020柱面的擴充套件分割槽,這是我們需要的,點選“保留”。這樣,Diskgen在重建分割槽表時就會為這個擴充套件分割槽自動建立一個分割槽項。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_m0cmx__20080713105737938.jpg" width="636" height="480" border="0" />

擴充套件分割槽之前的8G空間還沒有分割槽,我們點選硬碟的前8G未分割槽空間,在“分割槽”選單中選擇“新建分割槽”,如下圖所示。

600)makesmallpic(this,600,1800);' src="http://windows.chinaitlab.com/UploadFiles_3263/200807/20080713105738683.jpg" width="636" height="480" border="0" />

Diskman詢問是否將擴充套件分割槽之前的空間都劃給此分割槽,點選“確定”。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_3ucam__20080713105739415.jpg" width="261" height="72" border="0" />

Diskgen詢問是否將分割槽型別設為FAT,由於我們用還原時分割槽的檔案系統應該是NTFS,因此選擇“否”。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_ywcpp__20080713105739714.jpg" width="299" heigh

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

如下圖所示,Diskgen要求手工輸入分割槽型別,我們輸入NTFS的程式碼07。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_nl9vc__20080713105739331.jpg" width="637" height="480" border="0" /> 如下圖所示,分割槽重建完畢,新建了一個分割槽,找回了原來的擴充套件分割槽,存檔退出後重啟計算機。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_wu9y9__20080713105740455.jpg" width="637" height="480" border="0" />

如下圖所示,重啟計算機後分區恢復了正常,第二個和第三個分割槽的資料都被恢復了。

600)makesmallpic(this,600,1800);' src="/upload_files/article/58/201003/1_llzsk__20080713105741841.jpg" width="633" height="446" border="0" />

總結:誤形成的分割槽錯誤還是比較好處理的,只要將分割槽表正確重建,基本上C分割槽之後的資料都可以100%恢復。如果大家熟悉分割槽表引數,使用Winhex就可以完成任務,否則使用Diskgen輔助處理也是不錯的。千萬不要用Easyrecovery等工具掃描恢復,一是要花很長時間,另外掃描恢復的效果並不理想,至少不是100%恢復。恢復誤只涉及分割槽,一般不涉及檔案系統,除非你C盤有資料被覆蓋了,那樣的話可以用Easyrecovery碰碰運氣。

TAGS:ghost 硬碟