一、基礎(chǔ)知識
1、DOS(DOS兼容系統(tǒng)硬盤數(shù)據(jù))的構(gòu)成 
 
主分區(qū)和擴(kuò)展分區(qū)結(jié)構(gòu)基本相似,以下以主分區(qū)為例。 
 
主引導(dǎo)記錄(MBR):MBR占一個扇區(qū),在CYL 0、SIDE 0 、SEC 1,由代碼區(qū)和分區(qū)表構(gòu)成。其中代碼區(qū)可以由FDISK/MBR重建。 
 
系統(tǒng)扇區(qū):CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62個扇區(qū)。 
 
引導(dǎo)區(qū)(BOOT):CYL 0、SIDE 1 、SEC 1 這是我們過去稱的DOS引導(dǎo)區(qū)。也占一個扇區(qū)。 
 
隱藏扇區(qū):CYL 0、SIDE 0 、SEC 1,如果是FAT16那么占一個扇區(qū),如果是FAT32則由此占32個扇區(qū)。 
 
文件分配表:一般有兩個FAT表,F(xiàn)AT12、FAT16的*FAT表一般均在0-1-2,F(xiàn)AT32的*FAT表在0-1-33。FAT表是記錄文件占用扇區(qū)連接的地方,如果兩個FAT表都壞了,后果不堪設(shè)想。由于FAT表的長度與當(dāng)前分區(qū)的大小有關(guān)所以FAT2 的地址是需要計(jì)算的。 
 
根目錄區(qū):(ROOT)這里記錄了根目錄里的目錄文件項(xiàng)等,ROOT區(qū)跟在FAT2后面。 
 
數(shù)據(jù)區(qū):跟在ROOT區(qū)后面,這才是數(shù)據(jù)內(nèi)容。 
 
2、主引導(dǎo)記錄簡單說明
 
主引導(dǎo)記錄是硬盤引導(dǎo)的起點(diǎn),關(guān)于代碼區(qū)不多說了,其分區(qū)表,比較重要的是2個標(biāo)志,在偏移1BE,處的80 的標(biāo)記表示系統(tǒng)可引導(dǎo),且整個分區(qū)表只能有一個80標(biāo)記。 另一個就是結(jié)尾的55 AA標(biāo)記。用來表示主引導(dǎo)記錄是一個有效的記錄。 
 
其實(shí),無論MBR還是隱含扇區(qū)還是BOOT區(qū),都不重要,這些重建都比較容易。對數(shù)據(jù)恢復(fù)來說,能否成功的找回數(shù)據(jù)文件是重要的。另外,由于FAT表記錄了文件在硬盤上占用扇區(qū)的鏈表,如果2個FAT表都完全損壞了。那么恢復(fù)文件,特別是占用多個不連續(xù)扇區(qū)文件就相當(dāng)困難了。 
基本思路是: 
 
1、FAT2沒有損壞的情況,用FAT2覆蓋FAT1。 
 
2、FAT2也已經(jīng)損壞的情況,我一般是只期待找回其中某些關(guān)鍵的文件了。我們最期待的是這些文件是連續(xù)的。如果不連續(xù)的話,也并非沒有可能,但這往往還要知道文件的一些細(xì)節(jié),包括對一些文件本身的連接結(jié)構(gòu)有了解。如果FAT2沒有完全破壞,是有一定用處的,另外,一般來說,F(xiàn)AT16的硬盤因?yàn)镕AT表靠前破壞的比較嚴(yán)重,一般兩個FAT表都壞了,小硬盤也很難恢復(fù)了。 
 
二、一個基本恢復(fù)被CIH破壞硬盤數(shù)據(jù)的例子 
 
一直有朋友問手工恢復(fù)的技巧,近來恢復(fù)了多塊被CIH破壞的硬盤,之所以選取這一次,是因?yàn)楸M管恢復(fù)成功,但其中犯了一些錯誤,值得注意。 
 
委托恢復(fù)用戶:某銀行系統(tǒng) 
 
硬盤情況:CIH發(fā)作有該單位電腦人員曾用KV300 F10進(jìn)行修復(fù),但沒有成功,又恢復(fù)了保存的MBR。 
 
準(zhǔn)備好軟盤3張: 
DISK1 :WIN98啟動盤(帶DEBUG) 
 
DISK2:DISKEDIT等工具(此盤不要寫保護(hù)) 
 
DISK3:DOS下殺CIH的工具 
 
把我的硬盤摘下,掛上待恢復(fù)的的硬盤,開機(jī),進(jìn)入SETUP,檢測硬盤,把參數(shù)記下。 
 
CLY 620 HEAD 128 PRECOMP 0 LANDZ 4959 SECTOR 63 MODE LBA。 
 
用準(zhǔn)備好的軟盤啟動: 
 
A:>C: 
 
顯示Invalid drive specification 
FDISK/MBR重建主引導(dǎo)記錄(這是個習(xí)慣),重新軟盤引導(dǎo)(可能沒有必要):此時已經(jīng)看的見C:硬盤。啟動DISKEDIT,啟動過程中顯示Invalid media type reading DRIVER C,哎呀,算了,還是先用DEBUG 清空分區(qū)表, 并置80和55aa標(biāo)志。重新啟動,再運(yùn)行DISKEDIT,顯示設(shè)定為READ ONLY, 沒關(guān)系,把CONFIGURATION中的只讀選項(xiàng)去掉,存盤,好了,可以編輯了。 
 
由于當(dāng)時接的硬盤有多塊,我把這塊當(dāng)成了是一塊只有C分區(qū)(這是等待修復(fù)的另一塊硬盤),所以沒看別的東西,我們期待FAT2沒有損壞,以用FAT2覆蓋FAT1,在這個時候DISKEDIT要比DEBUG容易的多,在FIND OBJECT中選擇 FAT,查一下起始扇區(qū),好的,在CYL 0 SIDE68 SEC 14,0000H,F(xiàn)8 FF FF 0F (FAT32的),好的,F(xiàn)AT2沒壞。其實(shí)如果不用DISKEDIT的可以用DEBUG查,偏移0000的F8 FF FF。 
 
由于以為只有C分區(qū),所以,上來就在FIND中查找IOSYS(IO 和SYS中要有空格)以查找ROOT區(qū)。找到后觀察,是否有C: 下常見文件。好的,ROOT區(qū)沒被破壞。記下了該扇區(qū):CYL 0 、SIDE 68 、SEC 14,備用。 
 
FAT1一般前面已經(jīng)被破壞了,但后面應(yīng)該還在,這可以作為檢查。因?yàn)槭?2位的,F(xiàn)AT1 一般在CYL 0 SIDE1 SEC 33。 因?yàn)橛辛薘OOT 區(qū)然后應(yīng)該計(jì)算FAT表的長度了,因?yàn)镕AT2到ROOT前一扇區(qū)為止,所以非常簡單。然后可以用FAT2覆蓋FAT1,這里用DEBUG還是DISKEDIT都可以,如果用DEBUG一般是用INT 25讀絕對扇區(qū),再用INT 26寫入,不過一般要分幾次。記得保留斷點(diǎn)呀:-)用DISKEDIT可以MARK FAT2的內(nèi)容COPY下來,在WRITE到FAT1。 
 
然后可以恢復(fù)主引導(dǎo)記錄、隱含扇區(qū)和BOOT區(qū),可以先用NDD修復(fù)分區(qū)表,然后可以考慮用標(biāo)準(zhǔn)覆蓋法,如果你希望下一步由NORTON Utilities ,來接手這些都可以不做。我從另一臺FAT32上取來了,相應(yīng)的部分,寫了進(jìn)去。我這是發(fā)現(xiàn)好象有一個D盤。先看一下在說吧。好了,關(guān)機(jī)串上我的硬盤,用NORTON Utilities掃描C盤,文件基本恢復(fù),對C盤殺毒,WHY,沒有發(fā)現(xiàn)病毒,換了2種殺毒軟件還是沒有病毒,更糟糕的是,顯示C盤是948M,有一個D盤,但是95下無法瀏覽,DOS 下亂碼。于是打電話核實(shí)當(dāng)時的情況,原來是26日那天,放進(jìn)一張光盤,光驅(qū)燈亮了一會,就硬盤狂響,藍(lán)屏死機(jī)了。應(yīng)該證實(shí)我的推斷一樣,是光盤的AUTORUN程序有CIH病毒。所以說沒有實(shí)時防御能力的軟件是沒有意義的。另外,他們的硬盤確實(shí)分兩個區(qū),而且重要文件在D區(qū)。(氣死我了?。?nbsp
 
然后在修復(fù)D盤吧,再回到DOS,用DEBUG查找結(jié)束標(biāo)志為55AA 的扇區(qū),由結(jié)構(gòu)判定是否為擴(kuò)展分區(qū)。此時可算出大小來返主分區(qū)表。當(dāng)然,許多工具也可以很好的完成這一工作。如果你沒有把握,就用他們完成好了。 
經(jīng)驗(yàn)總結(jié)
 
1、你不要聽信或者憑記憶想一塊硬盤該是怎么樣的,一定要自己去看,我就是犯了這個錯誤。 
 
2、KV300 F10確實(shí)如一些網(wǎng)友所講,有一定隱患,如果銀行的電腦人員在用KV300 F10處理之前沒有備份,可能要給我找些麻煩。 
 
3、恢復(fù)數(shù)據(jù)要本著幾項(xiàng)原則: 
a、先備份,這也是而后我寫HD-MIRROR的原因;
b、優(yōu)先搶救最關(guān)鍵的數(shù)據(jù);
c、在穩(wěn)妥的情況下先把最穩(wěn)定的雞蛋撈出來(理應(yīng)先修復(fù)擴(kuò)展分區(qū),再修復(fù)C),*修復(fù)一部分備份一部分;
d、要先作好準(zhǔn)備,不要忙中出錯,由于我的機(jī)器沒有裝過NORTON,先解壓,習(xí)慣的敲了一個D:TEMP,這才想起來文件險些解在沒有完全修好的C盤上。 
 
其實(shí)看來,如果FAT2沒有損壞的情況下,恢復(fù)C盤數(shù)據(jù)是非常容易的,可以編程實(shí)現(xiàn)。如果FAT2損壞了,最容易恢復(fù)的當(dāng)然是只占用一個扇區(qū)的文件和連續(xù)的文件。 
1、DOS(DOS兼容系統(tǒng)硬盤數(shù)據(jù))的構(gòu)成 
 
主分區(qū)和擴(kuò)展分區(qū)結(jié)構(gòu)基本相似,以下以主分區(qū)為例。 
 
主引導(dǎo)記錄(MBR):MBR占一個扇區(qū),在CYL 0、SIDE 0 、SEC 1,由代碼區(qū)和分區(qū)表構(gòu)成。其中代碼區(qū)可以由FDISK/MBR重建。 
 
系統(tǒng)扇區(qū):CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62個扇區(qū)。 
 
引導(dǎo)區(qū)(BOOT):CYL 0、SIDE 1 、SEC 1 這是我們過去稱的DOS引導(dǎo)區(qū)。也占一個扇區(qū)。 
 
隱藏扇區(qū):CYL 0、SIDE 0 、SEC 1,如果是FAT16那么占一個扇區(qū),如果是FAT32則由此占32個扇區(qū)。 
 
文件分配表:一般有兩個FAT表,F(xiàn)AT12、FAT16的*FAT表一般均在0-1-2,F(xiàn)AT32的*FAT表在0-1-33。FAT表是記錄文件占用扇區(qū)連接的地方,如果兩個FAT表都壞了,后果不堪設(shè)想。由于FAT表的長度與當(dāng)前分區(qū)的大小有關(guān)所以FAT2 的地址是需要計(jì)算的。 
 
根目錄區(qū):(ROOT)這里記錄了根目錄里的目錄文件項(xiàng)等,ROOT區(qū)跟在FAT2后面。 
 
數(shù)據(jù)區(qū):跟在ROOT區(qū)后面,這才是數(shù)據(jù)內(nèi)容。 
 
2、主引導(dǎo)記錄簡單說明
 
主引導(dǎo)記錄是硬盤引導(dǎo)的起點(diǎn),關(guān)于代碼區(qū)不多說了,其分區(qū)表,比較重要的是2個標(biāo)志,在偏移1BE,處的80 的標(biāo)記表示系統(tǒng)可引導(dǎo),且整個分區(qū)表只能有一個80標(biāo)記。 另一個就是結(jié)尾的55 AA標(biāo)記。用來表示主引導(dǎo)記錄是一個有效的記錄。 
 
其實(shí),無論MBR還是隱含扇區(qū)還是BOOT區(qū),都不重要,這些重建都比較容易。對數(shù)據(jù)恢復(fù)來說,能否成功的找回數(shù)據(jù)文件是重要的。另外,由于FAT表記錄了文件在硬盤上占用扇區(qū)的鏈表,如果2個FAT表都完全損壞了。那么恢復(fù)文件,特別是占用多個不連續(xù)扇區(qū)文件就相當(dāng)困難了。 
基本思路是: 
 
1、FAT2沒有損壞的情況,用FAT2覆蓋FAT1。 
 
2、FAT2也已經(jīng)損壞的情況,我一般是只期待找回其中某些關(guān)鍵的文件了。我們最期待的是這些文件是連續(xù)的。如果不連續(xù)的話,也并非沒有可能,但這往往還要知道文件的一些細(xì)節(jié),包括對一些文件本身的連接結(jié)構(gòu)有了解。如果FAT2沒有完全破壞,是有一定用處的,另外,一般來說,F(xiàn)AT16的硬盤因?yàn)镕AT表靠前破壞的比較嚴(yán)重,一般兩個FAT表都壞了,小硬盤也很難恢復(fù)了。 
 
二、一個基本恢復(fù)被CIH破壞硬盤數(shù)據(jù)的例子 
 
一直有朋友問手工恢復(fù)的技巧,近來恢復(fù)了多塊被CIH破壞的硬盤,之所以選取這一次,是因?yàn)楸M管恢復(fù)成功,但其中犯了一些錯誤,值得注意。 
 
委托恢復(fù)用戶:某銀行系統(tǒng) 
 
硬盤情況:CIH發(fā)作有該單位電腦人員曾用KV300 F10進(jìn)行修復(fù),但沒有成功,又恢復(fù)了保存的MBR。 
 
準(zhǔn)備好軟盤3張: 
DISK1 :WIN98啟動盤(帶DEBUG) 
 
DISK2:DISKEDIT等工具(此盤不要寫保護(hù)) 
 
DISK3:DOS下殺CIH的工具 
 
把我的硬盤摘下,掛上待恢復(fù)的的硬盤,開機(jī),進(jìn)入SETUP,檢測硬盤,把參數(shù)記下。 
 
CLY 620 HEAD 128 PRECOMP 0 LANDZ 4959 SECTOR 63 MODE LBA。 
 
用準(zhǔn)備好的軟盤啟動: 
 
A:>C: 
 
顯示Invalid drive specification 
FDISK/MBR重建主引導(dǎo)記錄(這是個習(xí)慣),重新軟盤引導(dǎo)(可能沒有必要):此時已經(jīng)看的見C:硬盤。啟動DISKEDIT,啟動過程中顯示Invalid media type reading DRIVER C,哎呀,算了,還是先用DEBUG 清空分區(qū)表, 并置80和55aa標(biāo)志。重新啟動,再運(yùn)行DISKEDIT,顯示設(shè)定為READ ONLY, 沒關(guān)系,把CONFIGURATION中的只讀選項(xiàng)去掉,存盤,好了,可以編輯了。 
 
由于當(dāng)時接的硬盤有多塊,我把這塊當(dāng)成了是一塊只有C分區(qū)(這是等待修復(fù)的另一塊硬盤),所以沒看別的東西,我們期待FAT2沒有損壞,以用FAT2覆蓋FAT1,在這個時候DISKEDIT要比DEBUG容易的多,在FIND OBJECT中選擇 FAT,查一下起始扇區(qū),好的,在CYL 0 SIDE68 SEC 14,0000H,F(xiàn)8 FF FF 0F (FAT32的),好的,F(xiàn)AT2沒壞。其實(shí)如果不用DISKEDIT的可以用DEBUG查,偏移0000的F8 FF FF。 
 
由于以為只有C分區(qū),所以,上來就在FIND中查找IOSYS(IO 和SYS中要有空格)以查找ROOT區(qū)。找到后觀察,是否有C: 下常見文件。好的,ROOT區(qū)沒被破壞。記下了該扇區(qū):CYL 0 、SIDE 68 、SEC 14,備用。 
 
FAT1一般前面已經(jīng)被破壞了,但后面應(yīng)該還在,這可以作為檢查。因?yàn)槭?2位的,F(xiàn)AT1 一般在CYL 0 SIDE1 SEC 33。 因?yàn)橛辛薘OOT 區(qū)然后應(yīng)該計(jì)算FAT表的長度了,因?yàn)镕AT2到ROOT前一扇區(qū)為止,所以非常簡單。然后可以用FAT2覆蓋FAT1,這里用DEBUG還是DISKEDIT都可以,如果用DEBUG一般是用INT 25讀絕對扇區(qū),再用INT 26寫入,不過一般要分幾次。記得保留斷點(diǎn)呀:-)用DISKEDIT可以MARK FAT2的內(nèi)容COPY下來,在WRITE到FAT1。 
 
然后可以恢復(fù)主引導(dǎo)記錄、隱含扇區(qū)和BOOT區(qū),可以先用NDD修復(fù)分區(qū)表,然后可以考慮用標(biāo)準(zhǔn)覆蓋法,如果你希望下一步由NORTON Utilities ,來接手這些都可以不做。我從另一臺FAT32上取來了,相應(yīng)的部分,寫了進(jìn)去。我這是發(fā)現(xiàn)好象有一個D盤。先看一下在說吧。好了,關(guān)機(jī)串上我的硬盤,用NORTON Utilities掃描C盤,文件基本恢復(fù),對C盤殺毒,WHY,沒有發(fā)現(xiàn)病毒,換了2種殺毒軟件還是沒有病毒,更糟糕的是,顯示C盤是948M,有一個D盤,但是95下無法瀏覽,DOS 下亂碼。于是打電話核實(shí)當(dāng)時的情況,原來是26日那天,放進(jìn)一張光盤,光驅(qū)燈亮了一會,就硬盤狂響,藍(lán)屏死機(jī)了。應(yīng)該證實(shí)我的推斷一樣,是光盤的AUTORUN程序有CIH病毒。所以說沒有實(shí)時防御能力的軟件是沒有意義的。另外,他們的硬盤確實(shí)分兩個區(qū),而且重要文件在D區(qū)。(氣死我了?。?nbsp
 
然后在修復(fù)D盤吧,再回到DOS,用DEBUG查找結(jié)束標(biāo)志為55AA 的扇區(qū),由結(jié)構(gòu)判定是否為擴(kuò)展分區(qū)。此時可算出大小來返主分區(qū)表。當(dāng)然,許多工具也可以很好的完成這一工作。如果你沒有把握,就用他們完成好了。 
經(jīng)驗(yàn)總結(jié)
 
1、你不要聽信或者憑記憶想一塊硬盤該是怎么樣的,一定要自己去看,我就是犯了這個錯誤。 
 
2、KV300 F10確實(shí)如一些網(wǎng)友所講,有一定隱患,如果銀行的電腦人員在用KV300 F10處理之前沒有備份,可能要給我找些麻煩。 
 
3、恢復(fù)數(shù)據(jù)要本著幾項(xiàng)原則: 
a、先備份,這也是而后我寫HD-MIRROR的原因;
b、優(yōu)先搶救最關(guān)鍵的數(shù)據(jù);
c、在穩(wěn)妥的情況下先把最穩(wěn)定的雞蛋撈出來(理應(yīng)先修復(fù)擴(kuò)展分區(qū),再修復(fù)C),*修復(fù)一部分備份一部分;
d、要先作好準(zhǔn)備,不要忙中出錯,由于我的機(jī)器沒有裝過NORTON,先解壓,習(xí)慣的敲了一個D:TEMP,這才想起來文件險些解在沒有完全修好的C盤上。 
 
其實(shí)看來,如果FAT2沒有損壞的情況下,恢復(fù)C盤數(shù)據(jù)是非常容易的,可以編程實(shí)現(xiàn)。如果FAT2損壞了,最容易恢復(fù)的當(dāng)然是只占用一個扇區(qū)的文件和連續(xù)的文件。