国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

數據恢復與軟故障處理基本指南
2008-05-14   51CTO.com

第一篇、廣義的數據恢復

長期以來計算機領域數據恢復似乎缺乏一個把握全貌的,如果說給出一個比較能把握全貌的說法,我們首先應當給計算機數據一個廣義的概念,某些人覺得只有類似文本文件、數據庫中的記錄或表這樣的東西才是數據,其實從廣義上說,任何位于計算機存儲介質上的信息都是數據,無論是哪種介質,也無論是具體作用,他們都是數據。與這種概念對應,任何使這些信息發生非主觀意愿之外的變化都可視為破壞。那么數據恢復是就是一個把異常數據還原為正常數據的過程。

一、對數據的潛在威脅

1、惡意的程序:大家最熟悉的惡意程序就是病毒,很多人認為病毒對數據的影響僅僅是病毒的破壞性,這是不正確的,實際上病毒的感染本身就是一種破壞,一個病毒無論他借助修改你的引導區、可執行程序還是OFFICE文檔,他都把你正常的數據做了改變,當然,你可能舉良性伴隨性病毒這種極端的例子。但毫無疑問,他同樣對數據構成了破壞,至少他減少了你的硬盤的可用空間。同時,惡意的程序還包括特洛伊木馬,邏輯炸彈等等。惡意的程序造成的破壞可能是最難恢復的。

2、其他惡意的破壞,即使不借助病毒或者其他的工具,只要擁有足夠的權限,任何系統都有一定的“自毀”能力。比如依靠系統正常的刪除、移動、格式化等操作也可以達到破壞數據的目的。隨著網絡技術的發展,威脅已經不僅僅限于本機,

3、誤操作:很多數據丟失源于使用者的操作失誤,比如誤刪除,誤格式化等等。

4、操作系統或應用軟件的錯誤:隨著操作系統和應用程序的代碼量的成倍增加,BUG也在不斷增加。我們最常用的桌面系統WIN9X就是一個BUG大王。操作系統和應用軟件的錯誤,往往會給人的工作帶來一些不可預期的影響。比如前階段,發現FRONTPAGE98的一個BUG,觸發后會把你目錄下的文件全部刪除,另外,象著名的游戲神話II,出現了如不安裝在默認目錄中可能會使你丟失擴展分區這樣嚴重的問題。

5、加密和權限:盡管加密和權限設置是你保護數據的有效手段,但遺忘密碼也會帶來很大的問題。

6、掉電:機器突然掉電的后果可能不僅僅是內存數據的丟失,也可能造成磁盤數據的丟失,或導致系統無法正常啟動。

7、內存溢出:導致內存溢出或者進程非法終止等低層錯誤的原因很多,他就象掉電一樣,會使你損失當前的工作。

8、升級:軟件系統升級有時會帶來一些問題,后面我們將舉相應例子。

9、硬件損壞和失竊:這可能是最嚴重的威脅之一。有時這把你恢復數據的可能降低為零。

二、數據丟失的各種邏輯現象

對數據的恢復,基本上是一種邏輯處理。只有對情況有一個準確的判定,才能做出準確的應對。一般的來說,問題可以歸納為以下幾種情況。

1、 硬盤無法完成正確引導:因物理故障造成的邏輯損壞、引導區故障、重要扇區崩潰等等,都會使系統不能完成正常的自舉過程。

2、 文件丟失:由于有意破壞,誤刪除等等都會造成數據的丟失。另外,這種歸類不僅僅包括某個或某幾個文件,也適用于目錄,分區或卷的丟失。

3、 文件無法正常打開:由于病毒感染,加密,文件頭損壞等情況,會使文件無法正常打開。

4、 數據紊亂:由于各種因素的影響,數據庫中的信息,文本文件等,可能面目全非。

三、保護數據的建議

這個專題是探討數據恢復的,而不是信息保護的,因此點到為止,一句話,那就是防患于未然,我們列舉了對數據的威脅,如果我們最大程度的減弱了這些威脅,對每一種可預知的潛在威脅都有相應的預防和對策,我們的數據安全才會有最大的保障。這些對策主要包括選擇良好的反病毒和系統維護產品、加強保安全措施、采用UPS掉電保護、提高用戶操作水平和安全意識、形成系統的信息管理和備份制度等等。都可以有效的保證數據的安全,總之,我對數據恢復的認識與病毒是相同的——與其亡羊補牢,不如防患未然。

#p#副標題#e#

第二篇、數據恢復的準備知識

 

1、系統工作機理的簡單介紹(本節由lowpower縮寫)這一部分在原作中是最重要的一章,考慮到篇幅關系,進行了大量的刪節。

①、 DOS(DOS兼容系統)硬盤數據的構成

DOS磁盤系統,可以按照邏輯分區的概念管理物理空間,不同分區可以裝載不同的OS系統。示意如下:

硬盤空間
第一扇區 | 分區1 | 分區2| 分區3 |分區4 |
主引導扇區|引導扇區|引導扇區|引導扇區|引導扇區|
各分區公用|各個分區相對獨立,可安裝不同操作系統。

對FAT結構的分區每一分區都有獨立的引導記錄,FDT表,FAT表等。同時,系統還有一個最為重要的主引導記錄。在0柱0面1扇區,今后我們用CYL代表柱、SIDE代表面,SEC代表扇區。以下一個FAT結構分區的簡圖。

保留區--磁盤參數表、DOS引導記錄
控制區--FAT表1、FAT表2根目錄區
數據區--數據區

以下簡單介紹一下重要的部分:

主引導記錄又稱主分區表、MBR等等:MBR占一個扇區,在CYL 0、SIDE 0 、SEC 1,由代碼區和數據區構成。其中代碼區是一端標準的程序,完成 BIOS自舉到OS BOOT之間的工作,為OS啟動做最后的準備。標準代碼區可以由FDISK/MBR重建,但對于多系統引導的不標準MBR,將被這一操作破壞。MBR的數據區記錄了分區情況。
系統扇區:CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62個扇區引導區又稱BOOT區:CYL 0、SIDE 1 、SEC 1 這是我們過去稱的DOS引導區。也占一個扇區。

文件分配表又稱FAT:是記錄文件占用簇的情況和連接關系的地方。一般有兩個FAT表,起到備份的作用。FAT12、FAT16的第一FAT表一般均在0-1-2,FAT32的第一FAT表在0-1-33。由于FAT表記錄文件占用扇區連接的地方,如果兩個FAT表都壞了,后果不堪設想。

由于FAT表的長度與當前分區的大小有關所以FAT2的地址是需要計算的。

根目錄區(ROOT、FDT):這里記錄了根目錄里的目錄文件項等,ROOT區跟在FAT2后面。

數據區:跟在ROOT區后面,這才是數據內容。

其實, MBR、隱含扇區、BOOT區,重建都比較容易。數據恢復的關鍵在于恢復數據文件。由于FAT表記錄了文件在硬盤上占用扇區的鏈表,如果2個FAT表都完全損壞了。那么恢復文件,特別是占用多個不連續扇區文件就相當困難了。

②、 主引導記錄簡單說明:

主引導記錄是硬盤引導的起點,關于代碼區不多說了,其數據區,比較重要的是2個標志,80H和55AA,80H一般在偏移1BE處,80是分區激活的標志的標記表示系統可引導,且整個分區表只能有一個80標記。另一個就是結尾的55AA標記,用來表示主引導記錄是一個有效的記錄。另外,各個分區自身的引導記錄,也是以55AA結束,這是我們查找分區的標志。我們后面在介紹如何主引導記錄中,給出了一個完整的分區表的例子,大家可對照查看。數據區中,用10H字節表示一個分區,最多可表示4個分區,分別從1BE、1CE、1DE、1EE開始,我們后面給出了分區表項對應地址的含義。大家可以對應分析一下以下分區的情況。

80 01 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00
① ② ③ ④ ⑤ ⑥

①:激活標記,80表示可引導分區
②:分區開始的磁頭號為01、開始的扇區號為01、開始的柱面號為00,由于開始的扇區號為2進制6位,而開始的柱面號為2進制10位,因此扇區號所用字節的高兩位要加在柱面號高兩位。
③:分區的系統類型FAT32(0B),01是FAT12,04為FAT16,06為BIGDOS,07為NTFS,其他參見分區類型表。
④:分區結束磁頭號254、分區結束扇區號63、分區結束柱面號764
⑤:首扇區的相對扇區號63
⑥:總扇區數12289622

2、常見手工處理工具與DOS外部命令介紹

DEBUG:古老和最為常見的調試跟蹤軟件,始終捆綁在微軟的DOS/WIN9X操作系統中。有19個子命令。有編寫執行匯編指令,直接讀寫絕對扇區和內存單元等功能,可以在最艱苦的條件下工作。DOS6.22以下的系統,DEBUG.EXE在DOS目錄下,WIN9X系統中它在WINDOWSCOMMAND目錄下,它也出現在WIN9X所生成的應急盤中。

DISKEDIT:常見16進制編輯軟件,字符界面,可以以文件方式和扇區方式讀寫邏輯內容,可以讀寫絕對扇區,可以方便的查找編輯分區表、FAT表、ROOT區等重要扇區。這一點要比DEBUG更方便。但在一些重要扇區損壞的情況下,DISKEDIT可能無法啟動。DISKEDIT軟件可以在著名的Norton Utilities軟件包中找到。最新的DISKEDIT出現在NU4中。

NDD:常見的FAT文件結構磁盤修復工具,就是著名的NORTON磁盤醫生,可以自動修復分區丟失等情況,可以搶救軟盤壞區中的數據,強制讀出后搬移到其他空白扇區。希望大家不要再使用NORTON FOR DOS7或8的NDD,這個版本由于不支持大分區、FAT32、長文件名等技術,會給你帶來大量的麻煩。建議大家使用Norton Utilities4或更高版本中的NDD.EXE,這是純DOS下的工具。在硬盤崩潰或異常的情況下,他可能可以帶給用戶以希望。WIN9X下的磁盤醫生調用的并不是這個程序,而是NDD32.EXE.

FDISK:FDISK當然是個危險的命令,很多人非常恐懼,事實上,FDISK命令的運行并不影響任何分區內的硬盤數據,他對分區的設置操作,只改變主分區表的數據區。而特別是FDISK異常重要的隱含參數/MBR,可以重建主分區表的代碼區,清除主引導型病毒等。這是非常有用的操作。DOS6.22以下的系統,FDISK.EXE在DOS目錄下,WIN9X系統中它在WINDOWSCOMMAND目錄下,它也出現在WIN9X所生成的應急盤中。

FORMAT:在一些人眼中,FORMAT是最可怕的命令,但他并不是對硬盤清零,特別值得注意的是,很多文件恢復工具都建議你恢復前先FORMAT該分區起到保護的餓作用。DOS6.22以下的系統,FORMAT.COM在DOS目錄下,WIN9X系統中它在WINDOWSCOMMAND目錄下,它也出現在WIN9X所生成的應急盤中。

HD-COPY:傳統的軟盤COPY工具,2.0版本以后加入了強制讀的功能,可以讀出一些損壞扇區的內容。

SYS:SYS命令是重建BOOT區的最簡潔的手段,也可以殺除BOOT區病毒。DOS6.22以下的系統,sys.COM在DOS目錄下,WIN9X系統中它在WINDOWSCOMMAND目錄下,它也出現在WIN9X所生成的應急盤中。

令我非常遺憾的是,至今我沒有發現比較出色的扇區級備份鏡象工具,我曾寫過一個HD-MIRROR,但由于錯誤較多,我提供下載的第二天就停止了發布,另外fixc的作者noz寫過一個clone.exe,但可惜只適合相同的硬盤。我也曾以為GHOST可以做到這點,事實上,你目前還不能指望他為你備份一塊深度破損的硬盤。。如果有一個有效的能以按扇區機制(而不是文件機制)壓縮備份一塊硬盤將之做成一個鏡象文件的話,那么我們的恢復工作就擁有了更多的保證和余地。我們可以更大膽的做恢復的嘗試。

3、一些自動處理工具或軟件包

首先介紹國內的一些免費修復工具

FIXMBR:何公道先生寫的一個修復MBR的工具,適合處理邏輯分區丟失的情況, 有一些可選參數,支持FAT32、FAT16,不支持NTFS、LINUX等分區,支持8.4G以上硬盤。可修復CIH發作后的擴展邏輯分區。

VRVFIX:北信源公司的推出的修復硬盤共享工具,適合處理邏輯分區丟失的情況,處理的基本比較準確。支持FAT32、FAT16,不支持NTFS、LINUX等分區。也不支持8.4G以上硬盤。

FIXC:國內最早出現的可以修復部分被CIH破壞的C盤的工具,作者是NOZ,新版本也加入了修復分區信息的功能,支持FAT32、FAT16,有限支持NTFS,不支持8.4G以上硬盤。目前的版本已經比較完善。

FIXHDPT:TBSOFT工作室的分區信息修復工具。支持FAT32、FAT16,不支持NTFS和LINUX,不支持8.4G以上硬盤,是歷史比較長的工具之一。

RE(ReapirEasy):本人早期寫的分區表修復工具,支持FAT32、FAT16,有限支持NTFS,不支持8.4G 以上硬盤,和某些BIOS不兼容。其整體水準低于前面列舉的工具。國外一些系統維護的工具目前已經達到了非常強大的程度。

Norton Utilities:歷史最悠久的系統維護工具。不僅可以數據恢復,還可以系統加速和修補內存錯誤。目前最新的版本是NU4.5 FOR 9X、NU2 FOR NT等。

Tiramint:最為出色的災難恢復工具之一,有NTFS、FAT32、FAT16、NOVELL4種版本。生成急救軟盤,可以對深度破壞的磁盤進行交叉恢復。

4、常用的基本操作

① 讀出主引導記錄:這是系統級數據恢復可能涉及最多的程序之一。例:
DEBUG
-a100 ;從此處開始匯編
126C:0100 mov ax,201; 讀操作一個扇區
126C:0103 mov bx,300; 送入地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H為硬盤,頭為0
126C:010C int 13
126C:010E int 3
126C:010F
-g=100 ;

執行
AX=0050 BX=0300 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000 DS=126C ES=126C SS=126C CS=126C IP=010E NV UP EI PL NZ NA PO NC

這里用了I/O中斷13,涉及的寄存器含義為ah,操作方式,02H為讀,03H為寫,al送扇區數,bx送準備裝入扇區的內存偏移地址,cx送從哪一道哪一扇區開始,我們一般依靠改換CX來讀寫不同邏輯盤某個邏輯扇區。dx送盤符和頭數INT 3是斷點中斷,使程序運行到此停止。

② 顯示引導區內容:我們把扇區讀到某個內存地址并不是目的。而是為了看到他的內容,在DEBUG中D命令可以方便的查看內存單元的內容。續前例,如果我們要看到主引導區的內容的話,既然裝載到300。-d300 l200就可以查看了,一個引導區的映象類似如下,可以直觀的看 到我們前面所提到的代碼區和數據區。是否正常請大家自行分析一下
126C:0300 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P....|
126C:0310 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04 ...PW...........
126C:0320 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B 8,|.u...........
126C:0330 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC ....It.8,t....N.
126C:0340 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25 <.t...........F%
126C:0350 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05 ..F...<.t...<.t.
126C:0360 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4 :.u+@.F%.u$..UP.
126C:0370 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74 A..Xr...U.u....t
126C:0380 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF ....V$.......f..
126C:0390 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E .......3.......N
126C:03A0 25 03 4E 02 CD 13 72 29-BE 46 07 81 3E FE 7D 55 %.N...r).F..>.}U
126C:03B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 27 07 EB .tZ.......u..'..
126C:03C0 8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB ...R..F..V....Z.
126C:03D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 00 00 00 00 .Ot.3...........
126C:03E0 56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4 V3.VVRP.SQ...V..
126C:03F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D 64 10 72 PR..B.V$..ZX.d.r
126C:0400 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 49 .@u.B......^..tI
126C:0410 6E 76 61 6C 69 64 20 70-61 72 74 69 74 69 6F 6E nvalid partition
126C:0420 20 74 61 62 6C 65 00 45-72 72 6F 72 20 6C 6F 61 table.Error loa
126C:0430 64 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 ding operating s
126C:0440 79 73 74 65 6D 00 4D 69-73 73 69 6E 67 20 6F 70 ystem.Missing op
126C:0450 65 72 61 74 69 6E 67 20-73 79 73 74 65 6D 00 00 erating system..
126C:0460 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:0470 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:0480 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00 ......W.........
126C:0490 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 ................
126C:04C0 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00 00 00 ......?...~.....
126C:04D0 81 FD 0F FE FF FF BD 86-BB 00 E0 A9 75 00 00 00 ............u...
126C:04E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.

③ 反匯編主引導區內容:判定MBR的代碼區是否正常,對于數據區的基本情況,我們可以通過直觀觀察得出,但對于存在引導型病毒,或者引導區出現異常代碼的情況,我們可能需要分析MBR中代碼區的指令。這一般要對已經讀入內存的引導區進行反匯編。反匯編用指令U,續前例:
-u300 l15D ;反匯編主引導扇區代碼區內容
126C:0300 33C0 XOR AX,AX
126C:0302 8ED0 MOV SS,AX
…………
126C:045C 65 DB 65
126C:045D 6D DB 6D

④ 寫內存單元,在我們的前例中,主分區類型是0B是FAT32的,假定這個類型實際是NTFS的,我們該如何修改呢?由于主分區類型的偏移是4C3H,我們可以用E命令寫到內存單元中,從附表中查得NTFS的類型為07。因此-e4c3 7再比如說,假定我們想把無效的分區表清零,那么,我們應當用另一個命令F,這個命令可以用填充一個內存地址范圍。清零分區表的操作就是-f4be 4ff 00,以下兩個操作也比較常見。
重置80標記,-e4be 80
重置55AA標記,-f4ff 4fe 55 aa
不要忘記了,此時僅僅是改動了內存中的數據,并未寫到硬盤上。因此需要用int 13中斷把改寫的結果,寫回硬盤。續前例,
-a100
126C:0100 mov ax,301 ; 寫操作一個扇區
-g=100 ;執行
其實,我們相當于修改了剛才輸入的讀主引導扇區程序,使程序變為。
126C:0100 mov ax,301 ; 寫操作一個扇區
126C:0103 mov bx,300 ;從內存地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H為硬盤,頭為0
126C:010C int 13
126C:010E int 3 ;斷點

⑤ 絕對磁盤內容的讀出與寫入

類似操作在FAT32結構硬盤被CIH破壞的修復中比較常見,我們后面將講到恢復的基本思路就是用第二FAT表覆蓋第一FAT表。那么無疑要讀出第二FAT表的內容,再回寫到第一FAT表的位置上。一般的來說,大量連續扇區的讀出寫入DISKEDIT進行非常方便,如果用DEBUG做則要寫一段子程序,不過程序的主要技巧就是利用int 25絕對磁盤讀中斷讀出的內容,而用int 26絕對磁盤寫做內容寫入。

5、數據可恢復的前提

有人覺得這個題目說法比較奇特,但數據恢復,作為一個數據再現的過程,一定要解決兩個問題,第一是從哪里恢復的問題,第二是怎么恢復的問題。解決了這兩個問題,我們事實上就把握了數據恢復的全部思想脈絡。而這一部分就是從哪里恢復的問題。

①、 有效而及時的備份中是數據恢復最可靠的來源,在許多人倡導備份到秒的今天,恐怕不會有人懷疑這點。而有些備份機制則是系統內建的,比如兩份FAT表。

②、 數據的實際有效性的判定是關鍵,對我們來說,硬盤無法自舉、文件找不到、文件打不開等現象,其實并不與數據丟失畫等號。因為此時往往數據只是從操作系統的角度是一種邏輯丟失,而從物理扇區意義上,它仍然存在或部分存在。最明顯的就是文件刪除的例子,事實上,這只是把文件首字節,改為0E而已。而此時文件體依然存在。

③、 數據損壞過程的可逆性分析:對數據的改變無非兩種,取代和變換,前者是不可逆的,而后者則是可逆的。我們以殺毒為例,對于大多文件性病毒來說,那些以附加而非代換方式感染的文件型病毒,理想的殺毒過程就是感染的逆過程。這種分析也常見與重要信息被隱藏搬移或者被加密的情況,但分析將比較復雜。

④、 數據本身是否是標準信息:有些信息實際是通用或局部通用的,你無須考慮如何從本機搶救。只要相同或相近的系統版本就可以了,比如BOOT區、隱含扇區、WINDOWS的DLL文件等等。典型的例子如分區表的代碼區,這是一段標準代碼,事實上,它就放在你的FDISK程序里面,你可以用DEBUG把他提取出來。

⑤、 數據本身是否可以由其他信息統計再生:有些信息盡管丟失了,也沒有備份。但它實際可以從其他數據中間接求得。最典型的就是主分區表中的分區信息,即使你把他清零也不必害怕,因為你可以從你幾個分區中計算再生。

⑥、 破壞的完成程度:事實上,FDISK、FORMAT都不會徹底破壞數據,一般只有低格和扇區覆蓋操作才會徹底破壞數據。但有時,破壞過程或者誤操作過程會因人工終止、死機等原因不能完成。最明顯的就是CIH病毒的例子,由于CIH是以1024字節為單位覆蓋扇區,這當然是不可逆過程,于是我們最初都認為,破壞是很難恢復的,除非人工終止。事實上,當病毒覆蓋某些扇區時會與9X系統發生沖突,從而造成死機,使數據得到了保護。

#p#副標題#e#

第三章、數據恢復基本攻略

 

1、 硬件或介質問題的情況

①、硬盤壞:硬盤自檢不到的情況一般是硬件故障,又可分為主版的硬盤控制器(包括IDE口)故障和硬盤本身的故障。如果問題在主板上,那么數據應當沒有影響。如果出在硬盤上,也不是一定不能修復。硬盤可能的故障又可能在控制電路、電機和磁頭以及盤片。如果是控制電路的問題,一般修好它,就可以讀出數據。但如果電機、磁頭和盤片故障,即使修理也要返回原廠,數據恢復基本沒有可操作性。

②、軟盤壞:當軟盤數據損壞時,可以有幾種處理,一種是用NDD修復,他會強制讀出你壞區中的東西,MOVE到空白扇區中,這就意味著如果你的磁盤很滿操作是沒法進行的。你也可以用HDCOPY2.0以上版本READ軟盤,他也會進行強讀,使讀入緩沖區的數據是完好的,你再寫入一張好磁盤就可以了。當然這些方式,要看盤壞的程度。如果0磁道壞,數據也并非無法搶救,早先可以通過扇區讀的方式,把后面的數據讀出,不過一般來說,你依然可以HDCOPY來實驗。

2、系統問題的情況

①、在硬盤崩潰的情況下,我們經常要和一些提示信息打交道。我們要了解他典型提示信息的含義,注意這些原因僅僅分析邏輯損壞而不是硬盤物理壞道的情況。
提示信息
可能原因
參考處理

Invalid Partition Table
分區信息中1BE、1CE、1DE處不符合只有一個80而其他兩處為0
用工具設定,操作在前面已經講了。

Error Loading Operating System
主引導程序讀BOOT區5次沒成功。
重建BOOT區

Missing Operating System
DOS 引導區的55AA標記丟失
用工具設定,把前面讀寫主引導區程序的DX=80改為180即可

Non-System Disk or Disk Error
BOOT區中的系統文件名與根目錄中的前兩個文件不同
SYS命令重新傳遞系統,

Disk Boot Failure
讀系統文件錯誤
SYS命令重新傳遞系統,

Invalid Driver Specifcationg
如果試圖切換到一個確實存在的邏輯分區出現以下信息,說明主分區表的分區記錄被破壞了。
根據各分區情況重建分區表,或者用自動修復工具修復。注意分區丟失是最常見的故障之一,此時不要緊張,一般的說此時數據并沒有問題,如果你不了解處理的方法。你可以選擇我前面介紹的自動修復分區工具進行處理,他們大多只改寫主分區表的數據區,不會影響你的其他數據。特別提醒大家,這些工具有的不支持8.4G硬盤,有的與BIOS對硬盤的識別有關系。如果你在一臺機器上不行,可以換臺BIOS不同的機器實驗一下。

Bad or missing command interpreter
這是說找不到COMMAND.com,或者COMMAND文件壞了。
如果你COPY過去COMMAND文件還是如此,一般來說是感染了某種病毒。

Invalid media type reading drive
X ,Abort,Retry,Fail?
該盤沒有高級格式化,或BOOT區中I/O參數表被破壞。
這里情況較多,手工處理比較復雜,特別指出,此時DISKEDIT可能無法運行,建議用工具修復。

Incorrect DOS Version
可能是文件版本不統一,對9X來說,有95,95osr/2,98,98 oem/2等版本,重新SYS時,不要弄錯了。

用正確版本的啟動盤重新SYS系統。

另外說明一下,對于比較老的機器還有1071和not found rom basic、ROM BASIC OK等提示,在目前機器中以消失。另外,當代碼區完全被破壞的情況下,系統關于無系統的提示是來自BIOS的,這條提示與BIOS的種類有關。另外,FDISK/MBR對代碼區的重建是我們經常采用的。再介紹一種比較極端的情況,就是硬盤自檢正常,而用軟盤和硬盤都無法正常啟動的情況,這可能是,病毒或惡意程序利用,DOS3以上版本啟動中都要檢索分區表這一特點,把分區表置為死循環。造成啟動中死機。網上曾經流傳過DOS6.22k修改方案,其實是修改西文MS-DOS6.22的 IO.SYS,把C2 03 06 E8 0A 00 07 72 03替換為:C2 03 90 E8 0A 00 72 80 90就可以啟動被類似情況鎖住的硬盤。

②、WIN9X無法正常進入或工作:以下僅僅是對可能的軟故障分析,沒有考慮硬件故障.

進入圖形界面前死機情況比較復雜,可能與加載的某些驅動有關可以在START MS WINDOWS時,用F8激活菜單,設置為step by step,看是哪項使系統死機。而后從CONFIG或者SYSTEM。INI中刪除

進入圖形界面后死機: 一般這與開機加載的程序有關進入安全模式(此時自動運行的程序將不能加載),對注冊表中的HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun*中的鍵值和啟動組中加載的程序進行分析。必要的予以刪除。

顯示IEXPLORE.EXE錯誤,不能進行任何操作可能有某個系統的動態連接庫損壞覆蓋安裝WIN9X,或從其他機器上COPY損壞的連接庫。(確定哪個庫損壞一般比較困難)

頻繁出現出錯各種信息:一般是虛擬內存不足造成的看C盤是否剩余空間過少,或者打開的應用程序和窗口太多。

2、全盤崩潰和分區丟失

首先重建MBR代碼區,再根據情況修正分區表。修正分區表的基本思路是查找以55AA為結束的扇區,再根據扇區結構和后面是否有FAT等情況判定是否為分區表,最后計算填回,主分區表,由于需要計算,過程比較煩瑣,就不仔細介紹了,希望大家用前面介紹的工具,比如NDD處理。如果文件仍然無法讀取,要考慮用TIRAMINT等工具進行修復。如果在FAT表徹底崩潰的情況下,恢復某個指定文件,可以用DISKEDIT或DEBUG查找已知信息。比如文件為文本,文件中包含“軟件狗”,那么我我們就要把他們轉換為內碼C8 ED BC FE B9 B7進行查找。

3、文件丟失、誤格式化的情況

一般的來說,文件刪除僅僅是把文件的首字節,改為E5H,而并不破壞本身,因此可以恢復。但由于對不連續文件要恢復文件鏈,由于手工交叉恢復對一般計算機用戶來說并不容易,在這篇縮略版中就不講了,建議用工具處理,如果已經安裝了Norton Utilities,可以用他來查找。另外,RECOVERNT 等工具,都是恢復的利器。特別注意的是,千萬不要在發現文件丟失后,在本機安裝什么恢復工具,你可能恰恰把文件覆蓋掉了。特別是你的文件在C盤的情況下,如果你發現主要文件被你失手清掉了
,(比如你按SHIFT刪除),你應該馬上直接關閉電源,用軟盤啟動進行恢復或把硬盤串接到其他有恢復工具的機器處理。誤格式化的情況可以用工具處理。

4、文件損壞的情況

一般的說,恢復文件損壞需要清楚的了解文件的結構,并不是很容易的事情,而這方面的工具也不多。不過一般的說,文件如果字節正常,不能正常打開往往是文件頭損壞。就文件恢復舉幾個簡單例子。

類型
特征
處理

ZIP、TGZ等壓縮包無法解壓
ZIP文件損壞的情況下可以用一個名為ZIPFIX的工具處理。不過如果你的文件是從FTP站點上下載的,那么有可能是你沒有定義下載模式為BIN。

自解壓文件無法解壓
可能是可執行文件頭損壞,可以用對應壓縮工具按一般壓縮文件解壓。

DBF文件死機后無法打開
典型的文件頭中的記錄數與實際不匹配了,把文件頭中的記錄數向下調整,遺憾的是公式我找不到了。

5、硬盤被加密或變換

此時千萬不要FDISK/MBR,SYS等處理,否則可能數據再也無法找回,一定要反解加密算法,或找到被移走的重要扇區。對于那些加密硬盤數據的病毒,清除時一定要選擇能恢復加密數據的可靠殺毒軟件。

6、文件加密后密碼遺忘

對于很多字處理軟件的文件加密和ZIP等壓縮包的加密,你是不能靠加密逆過程來完成的,因為那從理論上是異常困難的。目前有一些相關的軟件,他們的思想一般都是用一個大字典集中的數據循環用相同算法加密后與密碼的密文匹配,直到一致時則說明找到了密碼。你可以去尋找這些軟件,當然,有些軟件是有后門的,比如DOS下的WPS,Ctrl+qiubojun就是通用密碼。Undiskp的作者馮志宏是解文件密碼的個中高手,大家不妨去他的主頁看看。

7、系統用戶密碼遺忘的處理:最簡單的方法就是用軟盤啟動(NT的你也可以把盤掛接在其他NT上),找到支持該文件系統結構的軟件(比如針對NT的NTFSDOS),利用他把密碼文件清掉、或者是COPY出密碼檔案,用破解軟件套字典來處理。前者時間短但所有用戶信息丟失,后者時間長,但保全了所有用戶信息。對UNIX系統,我建議你一定先做一張應急盤。

#p#副標題#e#

第四章、恢復實例

 

下面舉一些數據恢復或者軟故障處理的例子,這些事例是從我參與大量的故障處理中選取的一些典型事例。在選取典型事例中,遵循了以下原則。
①、 處理過程能夠表現一定思想,而不是純粹的技術手段。
②、 處理過程本身并不算復雜,基本不出現匯編程序,一般讀者能夠理解。
③、 處理過程本身并不完美,中間可能犯了一些錯誤,有的甚至局部失敗。可以使大家引為借鑒。
④、 處理過程本身并不僅僅是純粹的邏輯思維,有人的心理活動對技術的干擾。以使大家能更好的避免這些。

1、 被CIH破壞硬盤恢復一例
委托恢復人:某銀行
硬盤情況:CIH發作,藍屏死機。該單位電腦人員曾用KV300 F10進行修復,但沒有成功,又恢復了保存的MBR。

修復工具:
準備好軟盤3張:
DISK1 -WIN98啟動盤(帶DEBUG)
DISK2-DISKEDIT等工具(此盤不要寫保護)
DISK3-DOS下殺CIH的工具

基本思想:
1、FAT2沒有損壞的情況,用FAT2覆蓋FAT1。
2、FAT2也已經損壞的情況,我一般是只期待找回其中某些關鍵的文件了。
我們最期待的是這些文件是連續的。如果不連續的話,也并非沒有可能,但這往往還要知道文件的一些細節,包括對一些文件本身的連接結構有了解。如果FAT2沒有完全破壞,是有一定用處的,另外,一般來說,FAT16的硬盤因為FAT表靠前破壞的比較嚴重,一般兩個FAT表都壞了,小硬盤也很難恢復了。

修復過程:
把我的硬盤摘下,掛上待恢復的的硬盤,開機,進入SETUP,檢測硬盤,把參數記下——CLY 620 HEAD 128 PRECOMP 0 LANDZ 4959 SECTOR 63 MODE LBA。 用準備好的軟盤啟動:
A:>C:
顯示Invalid drive specification
FDISK/MBR重建主引導記錄。(這是個習慣),重新軟盤引導:(可能沒有必要)。
此時已經看的見C:硬盤。
啟動DISKEDIT,啟動過程中顯示Invalid media type reading DRIVER C,哎呀,算了,還是先用DEBUG清空分區表,,并置80和55aa標志。
重新啟動,再運行DISKEDIT,顯示設定為READ ONLY,沒關系,把TOOLS/CONFIGURATION中的只讀選項去掉,存盤,好了,可以編輯了。由于當時接的硬盤有多塊,我把這塊當成了是一塊只有C分區,所以沒看別的東西,我們期待FAT2沒有損壞,以用FAT2覆蓋FAT1,在這個時候DISKEDIT要比DEBUG容易的多,在FIND OBJECT中選擇FAT,查一下起始扇區,好的,在CYL 0 SIDE68 SEC 14,0000H,F8 FF FF 0F(FAT32的),好的,FAT2沒壞。其實如果不用DISKEDIT的可以用一端小程序查,偏移0000的F8 FF FF。

由于以為只有C分區,所以,上來就在FIND中查找IOSYS(IO和SYS中要有空格)以查找ROOT區。找到后觀察,是否有C:下常見文件。好的,ROOT區沒被破壞。記下了該扇區的CYL 0、SIDE 68、SEC 14,備用。FAT1一般前面已經被破壞了,但后面應該還在,這可以作為檢查。因為是32位的,FAT1一般在CYL 0 SIDE1 SEC 33。因為有了ROOT區然后應該計算FAT表的長度了,因為FAT2到ROOT前一扇區為止,所以非常簡單。

然后可以用FAT2覆蓋FAT1,這里用DEBUG還是DISKEDIT都可以,如果用DEBUG一般是用INT 25讀絕對扇區,再用INT 26寫入,用DISKEDIT則比較簡單。程序:(略)

然后可以恢復主引導記錄、隱含扇區和BOOT區,可以先用NDD修復分區表,其他可以考慮可以考慮用標準覆蓋法,如果你希望下一步由NORTO NUtilities來接手,這些都可以不做。我從另一臺FAT32的機器上取來了相應的部分,寫了進去。我這時發現好象有一個D盤。先看一下在說吧。

好了,關機串上我的硬盤,用NORTON Utilities 4掃描C盤,文件基本恢復,對C盤殺毒,WHY,沒有發現病毒,換了2種殺毒軟件還是沒有病毒,現在顯示C盤是948M,有一個D盤,但是95下無法瀏覽,DOS下亂碼。于是打電話核實當時的情況,原來是26日那天,放進一張光盤,光驅燈亮了一會,就硬盤狂響,藍屏死機了。應該證實我的推斷一樣,是光盤的AUTORUN程序有CIH病毒。所以說沒有實時防御能力的軟件是沒有意義的。另外,他們的硬盤確實分兩個區,而且重要文件在D區。然后在修復D盤吧,再回到DOS,用DEBUG查找結束標志為55AA的扇區,然后根據后面是否有FAT判定是否為擴展分區。此時可算出大小來返回修訂主分區表。當然,許多工具也可以很好的完成這一工作。如果你沒有把握,就用他們完成好了。其實我就是用自己的RE做的,否則手工做確實太麻煩。

經驗總結

①、你不要聽信或者憑記憶想一塊硬盤該是怎么樣的,一定要自己去看,我就是犯了這個錯誤。
②、某些軟件的修復功能確實如一些網友所講可能有一定隱患,如果銀行的電腦人員在用KV300 F10處理之前沒有備份,可能要給我找些麻煩。

我們應當看到,恢復數據要本著幾項原則。
①、 最好先備份,這也是而后我寫HD-MIRROR的原因
②、 優先搶救最關鍵的數據
③、 在穩妥的情況下先把最穩定的雞蛋撈出來,(理應先修復擴展分區,再修復C),最好修復一部分備份一部分。
④、 要先作好準備,不要忙中出錯,此間,由于我的機器沒有裝過NORTON,先解壓,習慣的敲了一個D:TEMP,這才想起來D盤已經是人家的硬盤,文件險些解在沒有完全修好的C盤上。這種錯誤有時會經常發生。

2、 LINUX錯誤安裝帶來問題一例

委托恢復人:某信息港
硬盤情況:4.3G硬盤,分三個區,D、E中有很多重要數據。原來裝95系統,做主盤。在試圖向從盤上裝LINUX的時,誤將安裝盤符選為C,而后發現終止,此時硬盤無法自舉。軟盤啟動無法看到任何有效分區。
工具準備:
DISK1 - WIN98啟動盤(帶DEBUG)
DISK2 - DISKEDIT等工具(此盤不要寫保護)

修復思想:

修復分區表中的擴展分區,重置主分區的分區類型。

修復過程:

用軟盤啟動,FDISK/MBR清除LILO,重建代碼,用DISKEDIT調入MBR觀察,已經沒有了擴展邏輯分區的信息。80激活分區的類型已經變成83(LINUX)這時我犯了與前面類似的錯誤,本應先修復分區信息,但我卻依然去先試圖C。而且修復C的時是否我又犯了一個致命的錯誤,那就是我算錯了C盤的大小。本來C盤是650M左右的一個分區,應當把分區類型置為06H(大DOS),而我誤算C為340M,因此我置為了04H(普通FAT16),這時我想對C做進一步修復,就把硬盤串到我的機器上,開機后C盤可見,文件似乎完好。此時我選擇用NU來自動修復它的C盤。最后的結果是,由于我選錯了分區類型,修復使C盤徹底崩潰。我重新起機后,再試圖用NU檢測C時,我的98馬上藍屏,另一個惡果就是我決定從軟盤啟動,用DISKEDIT查看時,發現可能由于I/O參數表的損壞,DISKEDIT無法啟動了。而后,我用RE恢復分區表,但在我的方正上,RE竟然溢出,后來,我找到一臺兼容機,在上面運行RE,這才恢復了D、E兩個分區。此時,委托我恢復的朋友打來電話,說只找到D、E就可以。我這才放心。

經驗總結:分區類型只是一個字節,卻會帶來如此嚴重的后果。可見,修復數據必須異常慎重。

3、 NT SERVER硬盤崩潰一例

相應情況:

這是單位里的一臺NT服務器。三個NTFS分區,有重要數據在內。硬盤崩潰,不能啟動,軟盤啟動后,用NTFSDOS 不能映射任何邏輯分區。

工具準備:

DISK1 - WIN98啟動盤(帶DEBUG)
DISK2 - DISKEDIT等工具(此盤不要寫保護)

修復過程:

用DEBUG讀取主分區表,發現完全混亂。反匯編后發現為一段有邏輯意義的代碼,我當時十分緊張,以為硬盤被加密了。只好向一個高手HIT-007求援,不料他用DEBUG看了兩下,馬上退出來,做了FDISK/MBR。我大驚失色。但重起后,硬盤竟能啟動進入NT,當然只剩下C一個分區。而后我很容易的恢復了另外兩個分區。他對我說,你一看MBR中的內容就被嚇住了,我向后看后面的一些系統扇區情況都是正常的。這就說明只是MBR不正常而已。
經驗總結:數據恢復中情緒的因素很重要,無論什么情況不能慌張,因為這可能影響到你 是否能全面冷靜的思考。

4、 NOVELL服務器掉電問題一例:

相應情況:

這是兩年前處理過的一個問題,我當時在某證券營業部兼職做網管,開市時,一臺NOVELL服務器因UPS故障突然掉電重起。當時的交易系統還是DBF數據庫,按照規程,應該運行一個全部數據庫重建索引例程。但索引中,卻有7個庫無法重建,檢查發現,是庫無法打開。

修復情況:

我恍惚記得深圳一個證券界電腦工程師對我說過,DBF文件頭在突然死機中可能會損壞。但不知細節如何。我初步判定,由于庫寫入時,先修改文件頭中的記錄總數,再寫入記錄。可能是掉電時文件頭已經修改但記錄沒有成功寫入,因此,應該是記錄數不符。但文件頭中記錄數在哪里呢。我于是這樣處理,把這些損壞的數據庫和一個完好的數據庫COPY到本地,用FOXPRO打開看到記錄數,換算成16進制。然后查找這個HEX串,判定找到記錄數地址,(這個庫記錄數應當比較多,減少混淆的可能,否則容易找錯)。由于我不知道處理DBF的公式,只好把損壞數據庫的記錄數每次減一,然后再用FOXPRO打開實驗。其中5個數據庫減一后就可以打開,只有一個數據庫直到減4后才正常。全處理過程從掉電開始只有20分鐘,基本沒有影響交易進行。

經驗總結:當出現問題,但你不知道確切的處理方法時,要充分進行分析。

5、 某財務系統數據處理一例:

相應情況:

也是我在證券公司處理的情況,某單機版財務系統,基于Clipper,當時是年初安裝,使用正常至6月份底,突然發現該月數據紊亂,與實際出入巨大。出品公司的人來看過后,聲稱需要1周處理時間和近萬元的處理費,我聽說后,建議財務部拒絕其“訛詐”,由我來處理。

分析處理過程:

由于我對財務一竅不通,我請財務經理講明了情況和一些概念,又分析了系統的大致結構。我發現本月每一筆數據都是正常的,只是因為多了上千筆沒有發生的收支,才使匯總表發生了變化。那么這些數據是哪里來的,就成了問題的關鍵。在看了該軟件的初始狀態后,我似有所悟,問財務軟件初裝后并沒有的上百個“科目”是從哪里建立的。財務經理回憶是上年底從某營業部發來的,我當時就明白了,那個營業部是上一年6月成立的,問題顯然出在該營業部提供的初始科目不為空,由于上年1-5月該營業部尚不存在,所以數據為空,而該營業部6月以后的數據則隨科目轉入了我所在營業部的財務系統。經過對當初轉入初始科目的對照,證實了我的判斷。于是,我做了一段程序,按照對應關系把相關數據從系統庫中摘除。從分析問題到問題的解決,只用了三個小時。

經驗總結:

①、 當出現數據紊亂時,很重要一點就是找到干擾源。
②、 數據處理絕非僅僅就是一個技術問題,特別是金融系統,一定要得到這方面的專業人士的配合。我想如果沒有那位財務經理的信任鼓勵和讓我對會計知識的速成,問題處理就不會如此順利.

這只是一些簡單恢復的例子,類似的,大家可以將在完整版的文章中看到更多。想說明一點,有一些朋友建議過我把一些復雜的災難恢復和數據搶救的細節寫出來,但因為這些涉及到相關單位一些系統信息等等,就對不起大家了。最后,如果相關問題的話,大家可以到我們主持的169電腦醫院查找更多資料,我們的虛擬域名是usafe.yeah.net

#p#副標題#e#

--附表
1、 磁盤分區表
地址|說明|字節數
1BEH|分區信息1|10H
1CEH|分區信息2|10H
1DEH|分區信息3|10H
1EFH|分區信息4|10H
1FFH|結束標志55AA|2H

 

2、 分區信息說明

偏移長度含義
0|字節| 激活狀態,80H:活動分區(可引導區),0H:非活動分區
1|字節|分區起始的磁頭
2|字 |分區起始的扇區和柱面
4|字節|分區類型
5|字節|分區終止的磁頭
6|字|分區終止的扇區和柱面
8|雙字|分區起始決對扇區
0CH|雙字|分區扇區數

3、 分區類型表(這是一個比較全的分區類型表了)
0 Empty
1 FAT12
2 XENIX root
3 XENIX usr
4 FAT16 <32M
5 Extended
6 FAT16
7 HPFS/NTFS
8 AIX
9 AIX bootable
a OS/2 Boot Manag
b Win95 FAT32
c Win95 FAT32 (LB
e Win95 FAT16 (LB
f Win95 Ext'd (LB
10 OPUS
11 Hidden FAT12
12 Compaq diagnost
16 Hidden FAT16
14 Hidden FAT16 <3
17 Hidden HPFS/NTF
18 AST Windows swa
24 NEC DOS
3c PartitionMagic
40 Venix 80286
41 PPC PReP Boot
42 SFS
4d QNX4.x
4e QNX4.x 2nd part
4f QNX4.x 3rd part
50 OnTrack DM
51 OnTrack DM6 Aux
52 CP/M
53 OnTrack DM6 Aux
54 OnTrackDM6
55 EZ-Drive
56 Golden Bow
5c Priam Edisk
61 SpeedStor
63 GNU HURD or Sys
64 Novell Netware
65 Novell Netware
70 DiskSecure Mult
75 PC/IX
80 Old Minix
81 Minix / old Lin
82 Linux swap
83 Linux
84 OS/2 hidden C:
85 Linux extended
86 NTFS volume set
87 NTFS volume set
93 Amoeba
94 Amoeba BBT
a0 IBM Thinkpad hi
a5 BSD/386
a6 OpenBSD
a7 NeXTSTEP
b7 BSDI fs
b8 BSDI swap
c1 DRDOS/sec (FAT-
c4 DRDOS/sec (FAT-
c6 DRDOS/sec (FAT-
c7 Syrinx
db CP/M / CTOS / .
e1 DOS access
e3 DOS R/O
e4 SpeedStor
eb BeOS fs
f1 SpeedStor
f4 SpeedStor
f2 DOS secondary
fe LANstep
ff BBT

4、 DOS8+3結構磁盤目錄項
偏移|說明 |長度(10進制)
00H |文件名 |8
08H |擴展名 |3
0BH |屬性 |1
0CH |保留區 |10
16H |生成/最后修改時間|2
18H |生成/最后修改日期|2
1AH |起始簇 |4
1CH |字節長度 |4

熱詞搜索:

上一篇:面對數據泄漏 企業該如何著手
下一篇:數據恢復的原理

分享到: 收藏
主站蜘蛛池模板: 吴江市| 茌平县| 微山县| 随州市| 宜黄县| 汽车| 枞阳县| 鞍山市| 大港区| 榆树市| 康平县| 黎平县| 通江县| 建瓯市| 东宁县| 井研县| 长岛县| 大丰市| 行唐县| 夹江县| 林周县| 津南区| 芜湖市| 习水县| 额敏县| 南江县| 鱼台县| 崇阳县| 屏南县| 青田县| 德州市| 漳州市| 六盘水市| 南开区| 来宾市| 青冈县| 宁强县| 永安市| 乡宁县| 新宁县| 京山县|