摘要: 計算機中數(shù)據(jù)是最關(guān)鍵的,數(shù)據(jù)的丟失是最大的損失。論文在深入研究Windows文件系統(tǒng)的結(jié)構(gòu)和文件的存儲方式的基礎(chǔ)上,給出了一種數(shù)據(jù)恢復的方法。此方法通過分析文件存儲信息,可重建丟失的分區(qū)表,達到手動恢復被破壞數(shù)據(jù)的目的。
關(guān)鍵詞: 硬盤; 文件; 數(shù)據(jù)恢復; 數(shù)據(jù)恢復的方法
中圖分類號: TP309.3 文獻標識碼:A文章編號:1002-2422(2011)02-0001-03
Summary on Principle of Disk Data Recovery and Implementation
Zhang Weiting
AbstractComputer data is the most critical and data loss is the biggest loss. Based on in-depth study on structure of Wind-
ows file system and file storage the paper gives a method of data recovery. By analyzing the file storage information
the method can realize the reconstruction of the lost partition table for the purpose of manually restoring the damaged
data.
Key words
隨著科技的發(fā)展,大容量硬盤在普通用戶中已經(jīng)屢見不鮮了。但是,在長時間使用硬盤過程中,也在承受著硬盤隨時會出錯的風險,輕則硬盤的數(shù)據(jù)丟失,重則整個硬盤報廢,造成不可預料的嚴重后果。采用什么辦法,才能解決常見的硬盤數(shù)據(jù)丟失故障,成為用戶十分關(guān)注的問題。許多優(yōu)秀的數(shù)據(jù)恢復軟件已在市面應(yīng)用,如何掌握和使用數(shù)據(jù)恢復技術(shù),達到事半功倍的效果才是最為重要的。多數(shù)人對于數(shù)據(jù)恢復技術(shù)的原理,并不是十分清楚和理解,而數(shù)據(jù)恢復技術(shù)原理已有眾多學者進行研究,且成果堪盛,論文將在此基礎(chǔ)上進行系統(tǒng)分析、概括,總結(jié)出實用于大眾化的方法為廣大人士加以介紹。
1 硬盤數(shù)據(jù)存儲區(qū)簡介
要使用新硬盤,需要將其分區(qū)、格式化,然后再安裝上操作系統(tǒng)才可以使用。一般硬盤分成主引導扇區(qū)(MBR)、操作系統(tǒng)引導扇區(qū)(OBR)、文件分配表(FAT)、目錄區(qū)(DIR)和數(shù)據(jù)區(qū)(DATA)等五部分。通常所說的主引導扇區(qū)MBR在一個硬盤中是唯一的,MBR區(qū)只有在硬盤啟動時才讀取其內(nèi)容,然后駐留內(nèi)存。
(1)主引導扇區(qū)(MBR)。位于整個硬盤的零磁道零柱面一扇區(qū),包括硬盤主引導記錄MBR和分區(qū)表DPT。主引導記錄的作用就是檢查分區(qū)表是否正確以及判別哪個分區(qū)為可引導分區(qū),并在程序結(jié)束時把此分區(qū)的啟動程序調(diào)入內(nèi)存加以執(zhí)行。分區(qū)表以80H或00H為開始標志,每個分區(qū)占用16個字節(jié),一個硬盤最多只能分成四個主分區(qū),擴展分區(qū)也是一個主分區(qū)。主分區(qū)是一個比較單純的分區(qū),通常位于硬盤的最前面一塊區(qū)域中,構(gòu)成邏輯C磁盤。
所謂擴展分區(qū),僅僅是一個指向下一個分區(qū)的指針,這種指針結(jié)構(gòu)將形成一個單向鏈表。這樣在主引導扇區(qū)中除了主分區(qū)外,僅需要存儲一個被稱為擴展分區(qū)的分區(qū)數(shù)據(jù),通過這個擴展分區(qū)的數(shù)據(jù)可以找到下一個分區(qū)的起始位置,以此起始位置類推可以找到所有的分區(qū)。無論系統(tǒng)中建立多少個邏輯磁盤,在主引導扇區(qū)中通過一個擴展分區(qū)的參數(shù)就可以逐個找到每一個邏輯磁盤。
(2)操作系統(tǒng)引導扇區(qū)(OBR)。通常位于硬盤的零磁道一柱面一扇區(qū),是操作系統(tǒng)可直接訪問的第一個扇區(qū),包括一個引導程序和一個被稱為BPB的本分區(qū)參數(shù)記錄表。其實每個邏輯分區(qū)都有一個OBR,其參數(shù)視分區(qū)的大小、操作系統(tǒng)的類別而有所不同。
(3)文件分配表(FAT)。是DOS/Win9x系統(tǒng)的文件尋址系統(tǒng)。為了防止意外損壞,FAT一般做兩個,第二FAT為第一FAT的備份, FAT區(qū)緊接在OBR之后,其大小由這個分區(qū)的空間大小及文件分配單元的大小決定。
(4)目錄區(qū)(DIR)。Directory即根目錄區(qū)的簡寫,在FAT12和FAT16格式中,DIR緊接在第二FAT表之后,而在FAT32格式中,根目錄區(qū)的位置可以在分區(qū)中的任意位置,其起始位置是由引導扇區(qū)給出的。單有FAT表還不能確定文件在磁盤中的具體位置,只有FAT表和DIR區(qū)配合使用,才能準確定位文件的確切位置。
(5)數(shù)據(jù)區(qū)(DATA)。在DIR區(qū)之后,才是真正意義上的數(shù)據(jù)存儲區(qū),即DATA區(qū)。 DATA雖然占據(jù)了硬盤的絕大部分空間,但沒有了前面的各部分,對于我們來說,沒有任何意義。
2 數(shù)據(jù)恢復技術(shù)的原理
文件之所以能被恢復,須從文件在硬盤上的數(shù)據(jù)結(jié)構(gòu)和文件的儲存原理談起。
在文件刪除與恢復中,起重要作用的是“文件分配表”和“目錄區(qū)”,為安全起見,系統(tǒng)通常會存放兩份相同的FAT;而目錄區(qū)中的信息則定位了文件數(shù)據(jù)在磁盤中的具體保存位置—記錄了文件的起始單元(這是最重要的)、文件屬性、文件大小等。
在定位文件時,操作系統(tǒng)會根據(jù)目錄區(qū)中記錄的起始單元,并結(jié)合文件分配表區(qū)知曉文件在磁盤中的具體位置和大小。
人們平常所做的刪除,只是讓系統(tǒng)修改了文件分配表中的前兩個代碼(相當于作了“已刪除”標記),同時將文件所占簇號在文件分配表中的記錄清零,以釋放該文件所占空間。因此,文件被刪除后硬盤剩余空間就增加了;而文件的真實內(nèi)容仍保存在數(shù)據(jù)區(qū),須等寫入新數(shù)據(jù)時才被新內(nèi)容覆蓋,在覆蓋之前原數(shù)據(jù)是不會消失的。那樣,在VC環(huán)境下,根據(jù)早已經(jīng)知道的文件的起始簇和文件占用簇的大小,再根據(jù)簇鏈表就可以完成文件數(shù)據(jù)的恢復了。
3 硬盤的數(shù)據(jù)恢復
數(shù)據(jù)恢復可以分為純軟件的恢復和軟硬件結(jié)合的恢復。軟硬件結(jié)合的方法需要一定的硬件支持,對于大多數(shù)管理員來說是不現(xiàn)實的。故本文主要討論純軟件恢復。
3.1 誤格式化硬盤數(shù)據(jù)的恢復
在DOS高版本狀態(tài)下,格式化操作format在缺省狀態(tài)下都建立了用于恢復格式化的磁盤信息,實際上是把磁盤的DOS引導扇區(qū),FAT分區(qū)表及目錄表的所有內(nèi)容復制到了磁盤的最后幾個扇區(qū)中(因為后面的扇區(qū)很少使用),而數(shù)據(jù)區(qū)中的內(nèi)容根本沒有改變。在DOS時代有一個非常不錯的工具UnFormat,可以恢復由Format命令清除的磁盤。如果用戶是在DOS下使用Format命令誤格式化了某個分區(qū)的話,可以使用此命令試試。不過UnFormat只能恢復本地硬盤和軟件驅(qū)動器,而不能恢復網(wǎng)絡(luò)驅(qū)動器。UnFormat命令除了上面的反格式化功能,還能重新修復和建立硬盤驅(qū)動器上的損壞分區(qū)表。
但目前,再使用UnFormat來恢復格式化后分區(qū)的方法已經(jīng)有點過時了,可以使用多種恢復軟件來進行數(shù)據(jù)恢復,比如使用Easyrecovery 6.0和Finaldata2.0等恢復軟件均可以方便地進行數(shù)據(jù)恢復工作。另外DOS還提供了一個miror命令用于記錄當前的磁盤的信息,供格式化或刪除之后的恢復使用,此方法也比較有效。
3.2 零磁道損壞時的數(shù)據(jù)恢復
硬盤的主引導記錄區(qū)(MBR)在零磁道上。MBR位于硬盤的零磁道零柱面一扇區(qū),其中存放著硬盤主引導程序和硬盤分區(qū)表。在總共512字節(jié)的硬盤主引導記錄扇區(qū)中,446字節(jié)屬于硬盤主引導程序,64字節(jié)屬于硬盤分區(qū)表(DPT),兩個字節(jié)(55 AA)屬于分區(qū)結(jié)束標志。零磁道一旦受損,將使硬盤的主引導程序和分區(qū)表信息遭到嚴重破壞,從而導致硬盤無法引導。零磁道損壞判斷:系統(tǒng)自檢能通過,但啟動時,分區(qū)丟失或者C盤目錄丟失,硬盤出現(xiàn)有規(guī)律的“咯吱……咯吱”的尋道聲,運行SCANDISK掃描C盤,在第一簇出現(xiàn)一個紅色的“B”,或者Fdisk找不到硬盤、DM死在零磁道上,此種情況即為零磁道損壞。
零磁道損壞屬于硬盤壞道之一,只不過其位置相當重要,因而一旦遭到破壞,就會產(chǎn)生嚴重的后果。如果零磁道損壞,按照目前的普通方法是無法使數(shù)據(jù)完整恢復的,通常零磁道損壞的硬盤,可以通過PCTOOLS的DE磁盤編輯器(或者Disk Genius)來使零磁道偏轉(zhuǎn)一個扇區(qū),使用一磁道來作為零磁道進行使用。而數(shù)據(jù)可以通過Easyrecovery來按照簇進行恢復,但數(shù)據(jù)無法保證得到完全恢復。
3.3 分區(qū)表損壞時的數(shù)據(jù)修復
硬盤主引導記錄(MBR)所在的扇區(qū)也是病毒重點攻擊的地方,通過破壞主引導扇區(qū)中的DPT(分區(qū)表),就可以輕易地損毀硬盤分區(qū)信息,達到對資料的破壞目的。分區(qū)表的損壞是分區(qū)數(shù)據(jù)被破壞而使記錄被破壞的。所以,可以使用軟件來進行修復。
一般情況下,硬盤分區(qū)之后,要備份一份分區(qū)表至軟盤、光盤或者移動存儲活動盤上。在這方面,國內(nèi)著名的殺毒軟件KV3000系列和瑞星都提供了完整的解決方案。但是,對于沒有備份分區(qū)表的硬盤來說,雖然KV3000也提供了相應(yīng)的修復方法,不過成功率相對低很多。在恢復分區(qū)上,諾頓磁盤醫(yī)生NDD是絕對強勁的工具,可以自動修復分區(qū)丟失等情況,可以搶救軟盤壞區(qū)中的數(shù)據(jù),強制讀出后搬移到其它空白扇區(qū)。在硬盤崩潰或異常的情況下,可能帶給用戶一線希望。在出現(xiàn)問題后,用啟動盤啟動,運行NDD,選擇Diagnose進行診斷。NDD會對硬盤進行全面掃描,如果有錯誤的話,會向你提示,然后只要根據(jù)軟件的提示選擇修復項目即可,而且這些問題其都能輕輕松松地解決。
另外,大家非常熟悉的中文磁盤工具Disk Genius,在重建分區(qū)表方面具有非常實用的功能,用于修復分區(qū)表的損壞是最合適不過了。如果硬盤分區(qū)表被分區(qū)調(diào)整軟件(或病毒)嚴重破壞,必將引起硬盤和系統(tǒng)癱瘓的嚴重后果,而Disk Genius可通過未被破壞的分區(qū)引導記錄信息重新建立分區(qū)表。只要在菜單的工具欄中選擇“重建分表”,Disk Genius即開始搜索并重建分區(qū)。使用過程之中,Disk Genius將首先搜索零柱面零磁頭從二扇區(qū)開始的隱含扇區(qū),尋找被病毒挪動過的分區(qū)表。緊接著要搜索每個磁頭的第一個扇區(qū)。整個搜索過程是采用“自動”或“交互”兩種方式進行。自動方式保留發(fā)現(xiàn)的每一個分區(qū),適用于大多數(shù)情況。交互方式對發(fā)現(xiàn)的每一個分區(qū)都會給出提示,由用戶選擇是否保留。當采用自動方式重建的分區(qū)表一旦出現(xiàn)不正確的故障時,可以采用交互方式重新進行搜索。
但是,重建分區(qū)表功能也不能保證做到百分之百的修復好硬盤分區(qū)表。所以要記住“求誰也不如求自己”還是保護好自己的硬盤吧。盡量避免硬件損傷以及病毒的侵擾,一定要做好分區(qū)表的備份工作;如果沒有做備份的話,請下載一個DISKGEN軟件,然后在工具選項中,選備份分區(qū)表,然后應(yīng)該把這個備份文件刻錄到光盤或者是拷貝到U盤里,千萬不要放到硬盤里,那樣就與沒有備份的效果一個樣了。
3.4 誤刪除之后的數(shù)據(jù)恢復
在計算機使用過程中最常見的數(shù)據(jù)恢復就是誤刪除之后的數(shù)據(jù)恢復了,但是在這個時候一定要記住,千萬不要再向該分區(qū)或者磁盤寫入信息,因為剛被刪除的文件被恢復的可能性最大。實際上當用fdisk刪除了硬盤分區(qū)之后,表面現(xiàn)象是硬盤中的數(shù)據(jù)已經(jīng)完全消失,在未格式化時進入硬盤會顯示無效驅(qū)動器。如果了解fdisk的工作原理,就會知道, fdisk只是重新改寫了硬盤的主引導扇區(qū)(零面零道一扇區(qū))中的內(nèi)容 。具體說就是刪除了硬盤分區(qū)表信息,而硬盤中的任何分區(qū)的數(shù)據(jù)均沒有改變。由于刪除與格式化操作對于文件的數(shù)據(jù)部分實質(zhì)上絲毫未動,這樣,就給文件恢復提供了可能性。只要利用一些反刪除軟件(其工作原理是通過對照分區(qū)表來恢復文件的),用戶可以輕松地實現(xiàn)文件恢復的目的。同時誤格式化同誤刪除的恢復方法在使用上基本上沒有大的區(qū)別,只要沒有用Fdisk命令打亂分區(qū)的硬盤(利用FDISK命令對于 40G以內(nèi)的硬盤進行分區(qū),還是很方便實用的,所有啟動盤上都有,主板支持也沒有任何問題),要恢復的文件所占用的簇不被其他文件占用,這樣,格式化前的大部分數(shù)據(jù)仍是可以被恢復的。而且如果你的Windows系統(tǒng)還可以正常使用的話,那么最簡單的恢復方法就是用Windows版EasyRecovery軟件,其恢復硬盤數(shù)據(jù)的功能十分強大,不僅能恢復被從回收站清除的文件,而且還能恢復被格式化的FAT16、FAT32或NTFS分區(qū)中的文件。
該軟件的使用方法十分簡單,解壓縮安裝以后,運行EasyRecovery,出現(xiàn)主界面。左側(cè)4個功能的按鈕以及2個軟件支持按鈕,磁盤診斷可以幫助測試潛在硬件故障、監(jiān)視并報告潛在驅(qū)動器故障、查看驅(qū)動器空間使用詳細資料、IDE硬盤跳線設(shè)置、以及分析文件結(jié)構(gòu)和創(chuàng)建可引導的診斷磁盤。而且6個功能按鈕提供的數(shù)據(jù)恢復選項功能,對于需要的硬盤資料恢復來說至關(guān)重要,EasyRecovery Professional提供了多種數(shù)據(jù)恢復選項。其中包括:使用高級選項自定義數(shù)據(jù)恢復功能、查找并恢復已刪除文件、從一個已格式化的卷中恢復文件、不以任何文件系統(tǒng)結(jié)構(gòu)信息進行恢復此軟件,還可以保存恢復數(shù)據(jù)進度以及創(chuàng)建可引導的緊急引導軟盤。
實際操作中,將選擇高級選項自定義數(shù)據(jù)恢復功能來進行數(shù)據(jù)恢復操作,經(jīng)過掃描系統(tǒng)會顯示磁盤驅(qū)動器信息,在這里選擇了恢復資料的硬盤分區(qū)C盤,按照提示要求,點擊“下一步”后軟件EasyRecovery Professional將自動掃描分區(qū),之后會把所有詳細文件信息顯示出來,其中包括目前還存在的和已經(jīng)被刪除的文件。緊接著要選中你想恢復的文件,選擇“下一步”進入到選擇目標位置屏幕,過一會后EasyRecovery成功的找回了丟失的文件,這時選擇“取消”退出該工具即可。
另一款《易我數(shù)據(jù)恢復向?qū)А罚菫榛謴头菤缧詳?shù)據(jù)的軟件,適用于硬盤和其他存儲設(shè)備。使用該軟件,會發(fā)現(xiàn)其盡管結(jié)構(gòu)復雜,但操作非常簡單。向?qū)J揭龑?shù)據(jù)恢復,將一步步的指引你輕松簡單的完成數(shù)據(jù)恢復,智能化的分區(qū)分析和文件搜索。依個人的經(jīng)驗,《易我數(shù)據(jù)恢復向?qū)А肥且豢詈懿诲e的數(shù)據(jù)恢復軟件,操作簡單,適合于那些對數(shù)據(jù)恢復技術(shù)不了解的朋友們。
4 結(jié)束語
綜上所述的問題在實際的生活中并不能做到十全十美,任何一種數(shù)據(jù)恢復方法也不能保證所有數(shù)據(jù)能百分之一百的恢復,而要真正做到數(shù)據(jù)的萬無一失,最重要的工作就是防患于未然,做好數(shù)據(jù)備份;數(shù)據(jù)恢復軟件為數(shù)據(jù)恢復工作提供了便捷,因此要使用好數(shù)據(jù)恢復軟件,提高數(shù)據(jù)恢復的成功率。
參考文獻
[1] 鄭平泰. 磁盤數(shù)據(jù)安全技術(shù)與編程實例[M]. 北京:中國水利水 電出版社,2007.
[2] 王偉偉. 硬盤維修技能實訓[M]. 北京:科學出版社,2008.
[3] 宋群生,宋亞瓊. 硬盤扇區(qū)讀寫技術(shù)—修復硬盤與恢復文件 [M]. 北京:機械工業(yè)出版社,2004-01.
[4] 汪中夏. 數(shù)據(jù)恢復高級技術(shù)[M]. 北京:電子工業(yè)出版社,2007.
[5] 陳渝生,封滟彥. 數(shù)據(jù)備份恢復與急救[M]. 重慶:重慶出版社, 2004-01.
[6] 文光斌. 數(shù)據(jù)恢復技術(shù)的發(fā)展前景、技術(shù)層次及常用方法[J].北京:網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005(5).
[7] 崔崧. 基于WINDOWS FAT的數(shù)據(jù)恢復系統(tǒng)的設(shè)計與實現(xiàn)[D]. 成都:四川大學,2005.