第4章 數(shù)據(jù)恢復(fù)
4.1硬盤數(shù)據(jù)丟失的原因及數(shù)據(jù)恢復(fù)原則
4.1.1造成硬盤數(shù)據(jù)丟失的原因
數(shù)據(jù)丟失的可能原因如下:
(1)惡意程序的破壞;
(2)誤操作;
(3)操作系統(tǒng)或應(yīng)用軟件的錯誤;
(4)硬件失效;
(5)加密和權(quán)限;
(6)斷電。
數(shù)據(jù)丟失的主要表現(xiàn)如下:
(1)不能進入系統(tǒng);
(2)出現(xiàn)壞道;
(3)分區(qū)丟失;
(4)文件丟失;
(5)密碼丟失;
(6)文檔打不開或出現(xiàn)亂碼。
現(xiàn)有的數(shù)據(jù)恢復(fù)實踐和經(jīng)驗表明:大多數(shù)情況下,用戶找不到的數(shù)據(jù)往往并沒有真正丟失和被破壞,80%的數(shù)據(jù)都是可以恢復(fù)的。下面介紹常見的幾種數(shù)據(jù)丟失的原因及恢復(fù)。
1.病毒破壞
破壞硬盤數(shù)據(jù)信息是計算機病毒主要的設(shè)計目的與破壞手段。有些病毒可以篡改、刪除用戶文件數(shù)據(jù),導致文件無法打開,或文件丟失;有些更具破壞力的病毒則修改系統(tǒng)數(shù)據(jù),導致計算機無法正常啟動和運行。針對病毒導致的硬盤數(shù)據(jù)丟失,國內(nèi)各大殺毒軟件廠商都有了相當成熟的恢復(fù)經(jīng)驗,例如,江民科技的KV系列殺毒軟件就曾將恢復(fù)這類數(shù)據(jù)的過程在軟件中設(shè)計成了一個模塊,即使是初級的用戶也只需經(jīng)過簡單的幾個步驟就可恢復(fù)85%~100%的數(shù)據(jù)。
2.軟件破壞
軟件破壞通常包括誤刪除、誤格式化、誤分區(qū)、誤克隆等。目前的硬盤數(shù)據(jù)恢復(fù)技術(shù)對于軟件破壞而導致的數(shù)據(jù)丟失恢復(fù)成功率相當高。此類數(shù)據(jù)恢復(fù)技術(shù)已經(jīng)可以對FAT12、FAT16、FAT32、NTFS4. 0、NTFS5. 0等分區(qū)格式,DOS、Windows NT/2000/XP、UNIX、Linux等操作系統(tǒng)完全兼容。
3.硬件破壞
如果是介質(zhì)設(shè)備硬件損壞,電路板有明顯的燒毀痕跡或設(shè)備(如硬盤)有異響或BIOS不識別硬盤參數(shù)。對于這類故障,通常要首先排除硬件故障,使介質(zhì)在特殊的工作平臺上能正確地工作;其次是要確認所發(fā)生的硬件故障沒有破壞存儲數(shù)據(jù)的介質(zhì)本身,這種情況下數(shù)據(jù)恢復(fù)的概率就相對要低多了。
4.1.2恢復(fù)數(shù)據(jù)的原則
數(shù)據(jù)修復(fù)就是把遭受破壞或誤操作導致丟失的數(shù)據(jù)找回來的方法,包括硬盤、軟盤、可移動磁盤的數(shù)據(jù)恢復(fù)等。數(shù)據(jù)恢復(fù)可以針對不同操作系統(tǒng)(DOS、Windows NT/2000、UNIX、NOVELL等)的數(shù)據(jù)進行恢復(fù)。對于一些比較特殊的數(shù)據(jù)丟失,如數(shù)據(jù)被覆蓋、低級格式化、磁盤盤片嚴重損傷等,數(shù)據(jù)恢復(fù)可能會出現(xiàn)完全不能恢復(fù)或只能恢復(fù)部分數(shù)據(jù)。
如果希望在數(shù)據(jù)恢復(fù)時保持最大程度的恢復(fù)率,應(yīng)遵循以下幾項原則。
(1)發(fā)現(xiàn)問題時,如果可能,應(yīng)立即停止所有的寫操作,并進行必要的數(shù)據(jù)備份,出現(xiàn)明顯的硬件故障時,不要嘗試修復(fù)。
(2)恢復(fù)數(shù)據(jù)時。如果可能,則應(yīng)立即進行必要的數(shù)據(jù)備份,并優(yōu)先搶救最關(guān)鍵的數(shù)據(jù),在恢復(fù)分區(qū)時則應(yīng)優(yōu)先修復(fù)擴展分區(qū),再修復(fù)C區(qū)(主分區(qū))。
4.2數(shù)據(jù)恢復(fù)類型及數(shù)據(jù)恢復(fù)軟件
4. 2. 1數(shù)據(jù)恢復(fù)類型及數(shù)據(jù)可恢復(fù)的前提
1.軟件恢復(fù)和硬件恢復(fù)
(1)軟件恢復(fù):又稱為邏輯恢復(fù),軟件造成的數(shù)據(jù)丟失現(xiàn)象一般表現(xiàn)為無操作系統(tǒng)、讀盤錯誤、找不到文件、打不開文件、亂碼、報告無分區(qū)、無格式化等。
造成數(shù)據(jù)丟失的軟件原因分為病毒破壞、誤格式化、誤分區(qū)、誤克隆、誤操作、網(wǎng)絡(luò)刪除幾。磁道損壞、硬盤邏輯鎖、操作時斷電。其中,病毒感染(分區(qū)表被損壞)、誤格式化、誤刪除、誤分區(qū)是發(fā)生最多的四種情況,造成的影響也是很嚴重的,往往是整個硬盤的數(shù)據(jù)全部丟失。碰到這樣的情況,千萬不要再用該存儲器進行操作,也不要在該硬盤上寫任何數(shù)據(jù),因為這會直接影響到數(shù)據(jù)的恢復(fù)率。尤其是Windows操作系統(tǒng),因為每次系統(tǒng)啟動都會產(chǎn)生大量的臨時文件,這些臨時文件很可能把其他寶貴的數(shù)據(jù)徹底沖掉。
(2)硬件恢復(fù):又被稱為物理恢復(fù),硬件故障往往有盤面劃傷、磁組撞毀、芯片及其他原器件燒壞等。
硬件故障一般表現(xiàn)為系統(tǒng)不認硬盤,或者有“咔嚓咔嚓”的磁組撞擊聲或電機不轉(zhuǎn),通電后無任何聲音,讀寫出錯。因硬件原因的丟失數(shù)據(jù)更要注意數(shù)據(jù)丟失后的保護工作,不應(yīng)繼續(xù)對該存儲器反復(fù)測試,否則,將造成永久的損壞。
2.數(shù)據(jù)可恢復(fù)的前提
數(shù)據(jù)恢復(fù)作為一個數(shù)據(jù)再現(xiàn)的過程,一定要解決兩個問題,第一是從哪里恢復(fù)的問題,第二是怎么恢復(fù)的問題。實際應(yīng)用恢復(fù)實際有效性的判定是關(guān)鍵,硬盤無法自舉、文件找不到、文件打不開等現(xiàn)象,其實并不一定是數(shù)據(jù)丟失。因為此時的數(shù)據(jù)丟失從操作系統(tǒng)的角度看只是一種邏輯丟失,而從物理扇區(qū)意義上講,它仍然存在或部分存在。最明顯的就是文件刪除的例子,事實上,這只是把文件首字節(jié)改為0E而已。而此時文件體依然存在。
1)數(shù)據(jù)丟失可恢復(fù)性分析
(1)數(shù)據(jù)損壞過程的可逆性分析:對數(shù)據(jù)的改變無非兩種:取代和變換,前者是不可逆的,而后者則是可逆的。以殺毒為例,對于大多文件性病毒來說,那些以附加而非代換方式感染的文件型病毒,理想的殺毒過程就是感染的逆過程。
(2)數(shù)據(jù)本身是否是標準信息:有些信息實際是通用或局部通用的,無須考慮如何從本機搶救。只要相同或相近的系統(tǒng)版本就可以了,如BOOT區(qū)、隱含扇區(qū)、Windows的DLL文件等。例如,分區(qū)表的代碼區(qū),這是一段標準代碼,事實
上,它就放在Fdisk程序里面,可以用Debug程序把它提取出來。
(3)數(shù)據(jù)本身是否可以由其他信息統(tǒng)計再生:有些信息盡管丟失了,也沒有備份,但它實際可以從其他數(shù)據(jù)中間接求得。最典型的就是主分區(qū)表中的分區(qū)信息,即使把它清零也沒關(guān)系,因為可以從幾個分區(qū)中計算再生。事實上,F(xiàn)disk、格式化都不會徹底破壞數(shù)據(jù),一般只有低級格式化和扇區(qū)覆蓋操作才會徹底破壞數(shù)據(jù)。但有時破壞過程或者誤操作過程會因人工終止、死機等原因不能完成。最明顯的就是CIH病毒的例子,由于CIH是以1024B為單位覆蓋扇區(qū),這當然是不可逆過程,于是最初都認為,破壞是很難恢復(fù)的,除非人工終止。事實上,當病毒覆蓋某些扇區(qū)時會與Windows XP系統(tǒng)發(fā)生沖突,從而造成死機,使數(shù)據(jù)得到了保護。
數(shù)據(jù)恢復(fù)的本質(zhì)是數(shù)據(jù)的冗余,在眾多的冗余手段中,日志也許是最常使用的技術(shù)(盡管還有許多其他的選擇,如影子頁面等)。在對數(shù)據(jù)庫進行修改之前,系統(tǒng)會將數(shù)據(jù)修改前的影像(前項)和要修改的數(shù)據(jù)影像(后項)保存在日志當中。在這個過程中,有兩點需要保證:一是日志必須先于它對應(yīng)的修改被寫入數(shù)據(jù)庫,這稱為先寫日志(WAL)協(xié)議。這很容易理解,想象一下,如果修改被先寫入數(shù)據(jù)庫,而系統(tǒng)在日志被寫入之前崩潰了,那么它將無法把該事務(wù)數(shù)據(jù)恢復(fù)到開始的狀態(tài)。二是在事務(wù)提交之前,必須將它的日志寫入靈敏據(jù)庫,否則,系統(tǒng)無法保證后續(xù)的故障不會丟失該事務(wù)的修改。
2)數(shù)據(jù)丟失的幾種原因及處理方法
(1)應(yīng)用故障:例如,用戶不小心錯刪了一張表,或者應(yīng)用破壞了完整性約束。這種故障的數(shù)據(jù)恢復(fù)非常簡單,對于前者,可以顯示滾回事務(wù)(常用日志前項)。如果不小心提交了事務(wù),數(shù)據(jù)就不好再恢復(fù)了,系統(tǒng)也許只能把它當作介質(zhì)故障(利用備份)來恢復(fù)數(shù)據(jù)了。對于后者,系統(tǒng)會強迫把該事務(wù)滾回。只要數(shù)據(jù)庫還在運行,在系統(tǒng)看來,事務(wù)的滾回與其他正常操作并沒有什么區(qū)別。
(2)進程故障:假如在系統(tǒng)運行時,一個相關(guān)終端崩潰或者網(wǎng)絡(luò)斷了(通常服務(wù)器無法區(qū)別這兩種狀態(tài)),或者服務(wù)器端的某個進程死了。這時應(yīng)為系統(tǒng)配置一個監(jiān)視進程,由它來定期地檢查系統(tǒng)狀態(tài)、數(shù)據(jù)恢復(fù)或清除失敗的進程(連接),同時把對應(yīng)的事務(wù)滾回。
(3)系統(tǒng)故障:假如系統(tǒng)因為內(nèi)部錯誤,(例如,數(shù)據(jù)庫或操作系統(tǒng)含有漏洞),或者發(fā)生斷電。這時緩沖區(qū)里的數(shù)據(jù)全部丟失,但磁盤上的數(shù)據(jù)還在,因此系統(tǒng)在重新啟動后,首先重做所有事務(wù)的修改(利用日志的后項),以便讓數(shù)據(jù)庫回到了發(fā)生故障時的狀態(tài),這時再將所有在這一點上未提交的事務(wù)滾回就可以了:注意:此過程是自動完成的。
(4)介質(zhì)故障:假如磁盤出現(xiàn)了壞磁道,或者整個磁盤損壞,這時上面的數(shù)據(jù)肯定已經(jīng)丟失了。由于介質(zhì)故障只能在試圖再次存取磁盤時被發(fā)現(xiàn),而這時故障可能早已發(fā)生,因此對介質(zhì)故障的數(shù)據(jù)恢復(fù)需要定期地備份數(shù)據(jù)庫。這樣,當介質(zhì)故障發(fā)生時,可以先用備份重新覆蓋整個數(shù)據(jù)庫(RESTORE過程),然后利用日志重做從備份那點到當前的數(shù)據(jù)庫的更新(ROLL - FOGWARD過程)。
(5)災(zāi)難故障:若遇到火災(zāi)、被黑客攻擊的,這時整個系統(tǒng)可能被完全破壞,此時可以對數(shù)據(jù)庫進行備份,但備份以后數(shù)據(jù)庫所做的修改可能就永久丟失了。一個更為穩(wěn)妥的辦法是在遠程建立一個備份系統(tǒng),所有在本地產(chǎn)生的日志同時也送往這個遠程系統(tǒng)。為了防止網(wǎng)絡(luò)發(fā)生故障,本地與遠程系統(tǒng)之間應(yīng)該同時建立幾條相互獨立的網(wǎng)絡(luò)連接。
應(yīng)該說明的是,數(shù)據(jù)恢復(fù)畢竟是一種非常耗時間的工作,特別是進行后三種故障的恢復(fù)時,數(shù)據(jù)庫對用戶不可用。而這對像銀行這樣的部門來說,損失實在太大了。因此在很多情況下,只把數(shù)據(jù)恢復(fù)看作是最后的道防線,因此就出來了各種各樣的容錯設(shè)備,像RAID、雙機系統(tǒng),它們會把故障發(fā)生的概率降到最低。
4.2.2數(shù)據(jù)恢復(fù)軟件
很多數(shù)據(jù)恢復(fù)軟件都各有特點,數(shù)據(jù)恢復(fù)率也有所差異。這里就介紹一些典型的數(shù)據(jù)恢復(fù)軟件,供讀者參考。
1. WinHex
WinHex是使用最多的一款在Windows下運行的十六進制編輯軟件,此軟件功能非常強大,有完善的分區(qū)管理功能和文件管理功能,能自動分析分區(qū)鏈和文件簇鏈,能對硬盤進行不同方式不同程度的備份,甚至克隆整個硬盤;它能夠編輯任何一種文件類型的二進制內(nèi)容(用十六進制顯示),其磁盤編輯器可以編輯物理磁盤或邏輯磁盤的任意扇區(qū),是手工恢復(fù)數(shù)據(jù)的首選工具軟件。下面通過一個實例介紹WinHex的使用方法。
(1)雙擊桌面上的圖標打開“WinHex”窗口,如圖4-1所示。
聯(lián)系客服