KV3000修復(fù)硬盤數(shù)據(jù)
2007年11月30日 星期五 上午 08:32
KV3000修復(fù)硬盤數(shù)據(jù)
修復(fù)方法如下:
一、將出問題的硬盤掛在一臺正常的計算機(jī)上。開機(jī)進(jìn)入CMOS設(shè)置,檢測硬盤,若能檢測到,可以進(jìn)行下步操作;若檢測不到,說明硬盤的電路板有問題,這時就需要換一塊與該硬盤同型號的電路板再進(jìn)行下步操作,否則,該硬盤便無法恢復(fù)。
二、用干凈的引導(dǎo)盤(軟盤)啟動計算機(jī),此時會在DOS下,用DOS命令檢查硬盤狀態(tài)(關(guān)于DOS命令可參考相關(guān)書籍)。如果的確出現(xiàn)本文例子中出現(xiàn)的"現(xiàn)象",則可采用手動方法恢復(fù)。
手動恢復(fù)工具:KV3000F6功能-硬盤急救箱。
三、進(jìn)入KV3000的F6急救箱后可看到第0扇區(qū)的情況。此扇區(qū)就是平常所說的"硬盤分區(qū)表"。此表中從"80"到"55AA"之間的參數(shù)記錄了硬盤的基本情況;再按下F2可查看BOOT區(qū)。
本文例子如下:(表一為硬盤分區(qū)表;表二為BOOT區(qū)I/0表)
表一:
8001 0100BFE 7F7E3F00
000080E2 5D000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 000055AA
表二:(標(biāo)準(zhǔn)表的第13字節(jié)開始)
02102000 02000000 00F80000 3F00FF00 3F000000
62A9B400 142D0000 00000000 02000000 01000600
(注:數(shù)"字節(jié)"以表中的兩個數(shù)為一個"字節(jié)",表中開始的字節(jié)為第"0字節(jié)",以后以此類推,如表一中的"80"為第"0字節(jié)","5D"為第"14字節(jié)"。)
由表一可以看出,"80"和"55AA"都存在,從第12到第15字節(jié)表示了C盤的扇區(qū)數(shù)(也稱作C盤大?。?。把這個數(shù)換算成十進(jìn)制以備后用;
80E25D00 高低換位→ 005DE280 換算為十進(jìn)制(用F7)→ 6152832
四:用F6(搜索硬盤分區(qū)表),再按下F2=search logical Hard,Disk partition (搜索邏輯硬盤分區(qū)表),可檢測到該硬盤的邏輯分區(qū)的情況:
Hard Disk Total Sector Total Bytes Partition Table Sector
D:19.008G 37126152 19008589824 6152895
E:19.008G 37126152 19008589824 43279110
(表三)
可以看到,此表中與D相對應(yīng)的Partition Table Sector:6152895。用這個數(shù)減掉63:6152895-63=6152832,與換算出的C盤扇區(qū)數(shù)相同(第三步中算出的)。這說明0扇區(qū)中表示C盤扇區(qū)數(shù)正確,而且D盤的分區(qū)表位置也正確。將6152895換算成十六進(jìn)制數(shù)以備后用:
6152895 換算為十六進(jìn)制(用F7)→ 005DE2BF 高低換位→ BFE25D00
五、核實邏輯分區(qū)表正確性:
1、查找邏輯分區(qū):按表三中的Partition Table Sector 找到6152895(D盤分區(qū)表所在扇區(qū))和43279110(E盤分區(qū)表所在扇區(qū)),并記下兩扇區(qū)的數(shù)據(jù),如下:
D:
0001 417F0BFE BF853F00 0000088036020000 81860FFE
FF120663 9402478036020000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 000055AA
(表四)
E:
0001 81860BFE FF123F00 0000088036020000 00000000
00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 000055AA
(表五)
可以看到,D盤分區(qū)表中表示的E盤起始位置(第18-19字節(jié))和結(jié)束位置(第21-23字節(jié)):"8186";"FEFF12"與E盤分區(qū)表的起始位置(第2-3字節(jié))"8186"和結(jié)束位置"FEFF12"(第6-8字節(jié))相同。
2、計算:此步中需要計算核對部分?jǐn)?shù)據(jù):
表四:
①第12-15字節(jié):表示了D盤扇區(qū)數(shù):"08803602" 高低換位→ "02368008" 換算為十進(jìn)制(用F7)→ 37126152,此數(shù)與表三中D:Total Sector37126152相同,說明12-15字節(jié)正確。
②第24-27字節(jié):表示E盤分區(qū)表所在扇區(qū):"06639402" 高低換位→ "02946306" 換算為十進(jìn)制(用F7)→ 43279110,此數(shù)與表三中E:Partition Table Sector:4327110相同,說明24-27字節(jié)正確。
③第28-31字節(jié)(表示D盤之后所有邏輯分區(qū)的總扇區(qū)數(shù)。本例中D盤之后僅有E盤,因此這里表示的是E盤的扇區(qū)總數(shù)):
"47803602" 高低換位→ "02368047" 換算為十進(jìn)制(用F7)37126215。再看表三中E:Table Sector 37126152;該數(shù)加63為37126215??梢钥吹奖硭闹袚Q算出的數(shù)與表三中計算出來的數(shù)相同。說明表四的28-31字節(jié)也正確。
(注:63是DOS在分區(qū)時,在每個分區(qū)之前保留了63個扇區(qū),這個數(shù)較固定)
表五:第12-15字節(jié),表示E扇區(qū)數(shù):"08803602" 高低換位→ "02368008" 換算為十進(jìn)制(用F7)→ 37126152。此數(shù)與表三中E:Total Sector:37126152相同。說明表五中的第12-15字節(jié)正確。
至此,由計算可得出如下結(jié)論:查看到的D、E分區(qū)表是正確的。所以之后,可以根據(jù)D、E的分區(qū)表信息,手動寫到C盤分區(qū)表的相應(yīng)位置,便可恢復(fù)邏輯分區(qū)的數(shù)據(jù)。
六、手動修改C盤的硬盤分區(qū)表:
工具:KV3000中硬盤急救箱(F6)里的F5=Edit(編輯功能)。
現(xiàn)在,再回到表一,從第16字節(jié)開始到第31字節(jié)均為零。這就是為什么只有C盤而找不到D、E的原因。現(xiàn)在只要將正確的參數(shù)寫到相應(yīng)的位置即可恢復(fù)D、E。
從表四記下必要參數(shù);
①第2-3字節(jié):D盤起始位置,寫到表一中第18-19字節(jié)處;
②第5-7字節(jié):D盤結(jié)束位置,寫到表一中第21-23字節(jié)處;
③將第四步所得的D盤分區(qū)表位置:BFE25D00寫入表一第24-27字節(jié);
④D+E總扇區(qū)數(shù)=37126152+371261852+63×2=74252430 換算為十六進(jìn)制(用F7)→ 046D008E 高低換位→ 8E006D04
⑤在表一的第20字節(jié)處寫入"0F",表示邏輯分區(qū)的分區(qū)格式。"0F"表示FAT32。
這樣,填寫后表一第16至第31字節(jié)處,結(jié)果如下:
0000 417F0FFE BF85BFE2 5D8E006D 04000000
這時,重新啟動計算機(jī)后,D、E的數(shù)據(jù)全部恢復(fù)。
七、恢復(fù)C盤數(shù)據(jù):
1、看表二中第20-23字節(jié)"62A9B400"表示了C盤的扇區(qū)數(shù),比較與表一中第12-15字節(jié)"80E25D00"不符,因表一中的數(shù)已證明是正確的,因此,表二中的數(shù)據(jù)是錯誤的,可按表一中的數(shù)據(jù)改過來:即把"62A9B400"改為"80E25D00"。
2、查找目錄區(qū):用F4=Search功能,在ASCII Value:欄中輸入"command",回車后,光標(biāo)會移到Starting Sector,輸入"1"回車,開始查找。找到后,出現(xiàn)"Found"字樣。按下回車查看該頁是否為目錄區(qū)。若是則記下該頁扇區(qū)數(shù),若不是則繼續(xù)查找。目錄區(qū)最明顯的特征是可看到原來C盤中的所有目錄名,漢字為亂碼。本文例子的目錄區(qū)在第19625扇區(qū)。需做如下計算:(扇區(qū)數(shù)-63-32)/2=(19625-63-32)/2=9765 換算為十六進(jìn)制(用F7)→ 2625 高低換位→ 2526。將所得到的"2526"與表二中第24-25字節(jié)"142D"比較,發(fā)現(xiàn)表二中該數(shù)錯誤。此時將"142D"改為"2526"。(FAT32如上計算,F(xiàn)AT16有所不同。)
3、重寫FAT表:(用正常的FAT2表重寫被破壞的FAT1表),按下F4=Search,用TAB鍵切換到Hex Codes,鍵入0000F8FFFF0F(FAT表前幾個字節(jié))回車,輸入"1"回車。找到后記下扇區(qū)數(shù)。查看該頁,在該頁的左上方開始處可看到"F8FFFF0F"幾個字節(jié),否則,要繼續(xù)查找。本文例子:FAT2位于第9860處。退出該"查找"界面,用F3功能翻到第9860扇區(qū)。再用Ctrl+F10(寫扇區(qū)功能)。在To Write Sector 0-[ ]輸入"95"回車;跳至Write Sector Count 輸入"1500"回車,再按兩次"N",一次"Y"。
在完成以上步驟后,重新用軟盤啟動計算機(jī),此時C、D、E盤被認(rèn)可,數(shù)據(jù)安全恢復(fù)。再用SYS C:傳上系統(tǒng),硬盤完全恢復(fù)。
下面,我們總結(jié)一下修復(fù)步驟:
檢測硬盤→查看硬盤狀態(tài)→分析可能原因→檢查各分區(qū)分區(qū)表及I/O表參數(shù)是否正確→檢測邏輯分區(qū)→修改出錯的部分→修改I/0表中錯的目錄區(qū)指針→用正確的FAT2表覆蓋FAT1表→重啟,數(shù)據(jù)恢復(fù)→傳系統(tǒng)→殺毒→備份數(shù)據(jù)(注:第一二步中若檢測不到硬盤或無法查看硬盤信息,則說明硬件有問題或硬盤已物理損壞)
幾點說明:
1、硬盤分區(qū)表、I/0表、目錄區(qū)、FAT表均記錄了硬盤的許多信息,如果該表中的參數(shù)出現(xiàn)錯誤,可能造成各式各樣的情況。因此若對硬盤邏輯和物理結(jié)構(gòu)或表中的數(shù)據(jù)不熟悉的情況下,千萬不要隨意改動。
2、在操作過程中,若沒有確實的把握,請將被改動的地方記錄下來,以備隨時恢復(fù)。
3、硬盤出現(xiàn)的問題因原因不同,萬不可一概而論,本文中所提到的方法有所限制,切不可隨意模仿。
4、本文中提到的數(shù)據(jù)和參數(shù)有很大的不確定性(每塊硬盤不盡相同),所以在得到一個數(shù)后,一定要反復(fù)確認(rèn)后方可更改。
5、本文雖然以40G硬盤為例,其他大硬盤也可按文中的思路進(jìn)行恢復(fù)。