昨天中午一個(gè)朋友拿著一個(gè)硬盤來(lái)找我,說(shuō)起動(dòng)后看不到分區(qū),但是里面有一個(gè)程序里面有關(guān)于公司的一些比較重要的數(shù)據(jù),dbf格式的數(shù)據(jù)庫(kù),公司比較小,沒(méi)有多少人懂電腦,也沒(méi)有備份。我?guī)椭业搅舜蟛糠謹(jǐn)?shù)據(jù),還是有一份數(shù)據(jù)丟失了?,F(xiàn)在我把這一次的體會(huì)寫出來(lái),給其他朋友增加一點(diǎn)經(jīng)驗(yàn),由于當(dāng)時(shí)沒(méi)有截圖,我現(xiàn)在寫的時(shí)候是憑著記憶寫的,而且那塊硬盤已經(jīng)拿走,不可能重現(xiàn)當(dāng)時(shí)的情況了,所以我就多說(shuō)幾句來(lái)彌補(bǔ)這一點(diǎn),圖都是事例性質(zhì)的,不是當(dāng)時(shí)修復(fù)的抓圖。
上午的時(shí)候他打電話問(wèn)我如何恢復(fù)數(shù)據(jù),我就和他簡(jiǎn)單說(shuō)了幾句,說(shuō)用easy recovery 試一試,中午他拿著硬盤找上門來(lái),要我?guī)退?。他告訴我說(shuō)用easy recovery 6只找到一些古怪的文件,如.mpg等等沒(méi)有用處的東西。
首先我把他的硬盤接到我的機(jī)器上,然后我是這么做的:
1 大概了解硬盤的情況,詢問(wèn)硬盤損壞的原因。
他告訴我說(shuō)打開(kāi)機(jī)器,發(fā)現(xiàn)無(wú)法啟動(dòng),主板似乎沒(méi)有自檢,懷疑主板壞了,換了一塊主板,發(fā)現(xiàn)只能在bios里面找到硬盤,而不能進(jìn)入系統(tǒng),接到別的機(jī)器上,也看不到分區(qū)。我說(shuō)可能就是分區(qū)表丟了,如果僅僅是分區(qū)表丟了的話比較簡(jiǎn)單。
2 粗略查看硬盤數(shù)據(jù)。運(yùn)行winhex或者RunTimes的磁盤工具diskexplorer,(其他的可以進(jìn)行磁盤編輯的軟件也可以),如圖winhex_edit.png,選中需要的物理硬盤,申明一點(diǎn),貼圖時(shí)候那塊硬盤不在了,所以這里僅僅是作個(gè)例子說(shuō)一說(shuō)。然后拖動(dòng)滾動(dòng)條,瀏覽一遍整個(gè)硬盤,可以看到一些有意義的字符串,還可以見(jiàn)到大批的零數(shù)據(jù),當(dāng)然更多的是看不懂的內(nèi)容。這個(gè)沒(méi)有關(guān)系,至少目前說(shuō)明硬盤沒(méi)有什么明顯的物理?yè)p壞,或者邏輯壞道。
3 自動(dòng)尋找。用Easy recovery 6里面的工具試圖自動(dòng)找到分區(qū),失敗了。
4 試圖重建分區(qū)表。查看第一個(gè)扇區(qū)也就是MBR的內(nèi)容,發(fā)現(xiàn)一塌糊涂,分區(qū)表完全損壞。如果僅僅是分區(qū)表?yè)p壞,完全可以通過(guò)搜索分區(qū),然后根據(jù)分區(qū)的偏移重建分區(qū)表。
5 了解分區(qū)情況,如硬盤分幾個(gè)區(qū),每個(gè)分區(qū)大概多大,分區(qū)格式是什么。繼續(xù)詢問(wèn),了解到機(jī)器大概是99年左右買的,裝的是win98,不知道幾個(gè)分區(qū),不知道分區(qū)格式是fat16還是fat32,不知道那個(gè)關(guān)鍵程序裝在那個(gè)分區(qū),不知道那個(gè)關(guān)鍵程序的目錄名字,頭暈,一問(wèn)三不知阿,不過(guò)至少知道是fat格式,不是ntfs格式,而且很可能是fat32的分區(qū)格式(純屬猜測(cè))。根據(jù)經(jīng)驗(yàn),一般第一個(gè)分區(qū)從第64個(gè)扇區(qū)開(kāi)始,這個(gè)扇區(qū)是分區(qū)的第一個(gè)扇區(qū),對(duì)于fat來(lái)說(shuō),是引導(dǎo)扇區(qū),里面存儲(chǔ)著BPB數(shù)據(jù)。從起始扇區(qū)一直瀏覽到第64個(gè)扇區(qū),前面的扇區(qū)數(shù)據(jù)都很混亂,不像是空白的樣子,懷疑被病毒改寫了,看這樣的癥狀,猜測(cè)是類似CIH的病毒,損壞bios,導(dǎo)致主板不能啟動(dòng),同時(shí)搞亂C盤的數(shù)據(jù)。一直到遠(yuǎn)遠(yuǎn)超過(guò)了64個(gè)扇區(qū)的時(shí)候,也沒(méi)有看到看起來(lái)可能是fat的引導(dǎo)扇區(qū)的扇區(qū)。直接搜索扇區(qū)尾部的55AA(引導(dǎo)扇區(qū)的標(biāo)志數(shù)據(jù)),搜索了一會(huì),似乎沒(méi)有找到引導(dǎo)扇區(qū)。
6 尋找根目錄。找不到引導(dǎo)扇區(qū),無(wú)法定位分區(qū)的開(kāi)始,從而無(wú)法定位fat文件分配表的位置。換個(gè)思路,根路徑就在fat后面,挨著fat阿,所以決定搜索根路徑??纯次业膚in98的根目錄,有MSDOS這個(gè)文件名字,于是搜索MSDOS這個(gè)字符串,很幸運(yùn),找到了,在大約第16700個(gè)扇區(qū)里面,然后倒退幾個(gè)扇區(qū),發(fā)現(xiàn)了fat表,fat表一般是排列很整齊的數(shù)據(jù),你打開(kāi)你自己的硬盤,看看fat的16進(jìn)制表示,就知道這個(gè)很整齊大概是什么樣子了。這樣看來(lái),第一個(gè)分區(qū)大概在硬盤的8M左右的位置開(kāi)始的。找一個(gè)磁盤編輯工具,如RunTimes的磁盤工具diskexplorer,從根路徑扇區(qū)的開(kāi)始位置用根路徑的模式查看,熟悉的文件名字出現(xiàn)了,說(shuō)明這里確實(shí)是根路徑所在的扇區(qū)。查看fat表,似乎前面部分的fat損壞了一部分,而后面的比較完好,同時(shí)還是沒(méi)有找到引導(dǎo)扇區(qū),看來(lái)引導(dǎo)扇區(qū)被破壞了。
7 再一次自動(dòng)尋找。根據(jù)前面的信息,已經(jīng)可以推算出大部分的信息了,但是手工勞工比較辛苦,還是試一試自動(dòng)化的工具哦。
再一次運(yùn)行Easy recovery 6,使用Data recovery 里面的AdvancedRecovery工具,如圖advanced_recovery.png所示,當(dāng)硬盤上沒(méi)有分區(qū)信息時(shí)候,紅色箭頭所指的Advanced Options按鈕是可以選擇設(shè)定的。第一次自動(dòng)尋找的時(shí)候,就是使用了缺省的設(shè)置,所以搜索失敗,根據(jù)前面的分析,設(shè)定搜索范圍從16000個(gè)扇區(qū)開(kāi)始,分區(qū)類型選擇fat32,fat的匹配模式選擇忽略fat表(缺省時(shí)候是最佳匹配),然后就可以看到Easy recovery 6不斷的顯示出查找的文件。
8 導(dǎo)出重要數(shù)據(jù)。 可以說(shuō)Easy recovery 6得恢復(fù)還是比較成功的,恢復(fù)出了相當(dāng)多的目錄結(jié)構(gòu),關(guān)鍵是我看到了lock2000目錄,這就是我們要尋找的重要數(shù)據(jù)目錄。其他沒(méi)有關(guān)系的數(shù)據(jù)就不要了。存儲(chǔ)lock2000目錄后,打開(kāi)dbf數(shù)據(jù)庫(kù),發(fā)現(xiàn)大部分?jǐn)?shù)據(jù)庫(kù)完全恢復(fù),少部分在最后面出現(xiàn)了亂碼,也就是最后面的數(shù)據(jù)不太對(duì)。
最后,總共歷時(shí)1個(gè)小時(shí)。基本上,數(shù)據(jù)恢復(fù)是成功的,不能恢復(fù)的部分估計(jì)是因?yàn)閒at表的損壞導(dǎo)致Easy recovery 6接錯(cuò)了文件的尾部。得到的教訓(xùn)是,充分利用自動(dòng)化工具,但是,隨著大硬盤的增多,自動(dòng)化工具掃描一次非常費(fèi)時(shí)間,當(dāng)然4g的硬盤很小,也是比較慢的。所以要注意收集信息,信息收集越充分,提供給自動(dòng)化工具的信息越多,數(shù)據(jù)恢復(fù)的可能也越大。