資料:數(shù)據(jù)恢復(fù)知識(shí)基礎(chǔ)
更新時(shí)間:2007年01月08日 00:00:00 作者:
計(jì)算機(jī)上只有數(shù)據(jù)是最關(guān)鍵的,數(shù)據(jù)的丟失才是最大的損失。下面我來(lái)講解一些數(shù)據(jù)恢復(fù)的基本知識(shí)。
首先申明一點(diǎn),對(duì)于重要數(shù)據(jù),備份數(shù)據(jù)才是防止數(shù)據(jù)丟失的根本方法,而數(shù)據(jù)恢復(fù)依賴(lài)于很多因素,很難完全恢復(fù)數(shù)據(jù),一般是僅僅可以恢復(fù)部分?jǐn)?shù)據(jù)。
數(shù)據(jù)恢復(fù)就是找回丟失的數(shù)據(jù),例如徹底刪除某個(gè)文件或文件夾,重新格式化磁盤(pán),重新分區(qū)磁盤(pán)等等都會(huì)造成數(shù)據(jù)的丟失。更嚴(yán)重的數(shù)據(jù)丟失是存儲(chǔ)介質(zhì)硬件損壞,例如,硬盤(pán)不小心摔壞了、硬盤(pán)根本就不認(rèn)了、硬盤(pán)有大量壞道等等。最值得注意的一點(diǎn)是,一旦意識(shí)到數(shù)據(jù)丟失了,立刻停止一些不必要的*作,誤刪、誤格后,不要再往磁盤(pán)里寫(xiě)數(shù)據(jù)了!磁盤(pán)摔壞后,不要再加電了!磁盤(pán)出現(xiàn)壞道讀不出來(lái),不要反復(fù)讀盤(pán)了等等。
硬盤(pán)故障大致可分為硬故障和軟故障兩大類(lèi)。硬故障即PCBA板損壞、盤(pán)片劃傷、芯片及其它原器件燒壞、斷針斷線(xiàn)、磁頭音圈電機(jī)損壞等,是由于硬盤(pán)自身的機(jī)械零件或電子元器件損壞而引起。劇烈的震動(dòng)、頻繁開(kāi)關(guān)機(jī)、電路短路、供電電壓不穩(wěn)定等比較容易引發(fā)硬盤(pán)物理性故障,硬件故障一般表現(xiàn)為CMOS不認(rèn)硬盤(pán),常有一種“咔嚓咔嚓”的磁組撞擊聲或電機(jī)不轉(zhuǎn)、通電后無(wú)任何聲音、磁頭不對(duì)造成讀寫(xiě)錯(cuò)誤等現(xiàn)象,對(duì)上面描述的大部分情況,一般都要送到專(zhuān)門(mén)的數(shù)據(jù)恢復(fù)中心檢測(cè)和恢復(fù)數(shù)據(jù)。
硬盤(pán)軟故障即硬盤(pán)數(shù)據(jù)結(jié)構(gòu)由于某種原因,比如說(shuō)病毒導(dǎo)致硬盤(pán)數(shù)據(jù)結(jié)構(gòu)混亂甚至不可被識(shí)別而形成的故障。一般來(lái)說(shuō),主板BIOS硬盤(pán)自動(dòng)檢測(cè)(IDE HDD AUTO DETECTION)功能能夠檢測(cè)到硬盤(pán)參數(shù),均為軟故障。一般情況下,硬盤(pán)在發(fā)生故障時(shí)系統(tǒng)會(huì)在屏幕上顯示一些提示信息,所以我們可以按照屏幕顯示的提示信息找到故障原因,有針對(duì)性地實(shí)施解決方案。軟故障包括誤分區(qū)、誤格式化、誤刪除、誤克隆、MBR丟失、BOOT扇區(qū)丟失、病毒破壞、黑客攻擊、分區(qū)信息丟失、RAID0磁盤(pán)陣列、RAID1磁盤(pán)陣列、RAID5磁盤(pán)陣列失效等因素造成的數(shù)據(jù)丟失。硬盤(pán)軟故障相對(duì)于物理故障來(lái)說(shuō),更容易修復(fù)些,而它對(duì)數(shù)據(jù)的損壞程序也比硬盤(pán)物理故障來(lái)得輕些。
下面主要說(shuō)明一下硬盤(pán)發(fā)生軟故障后數(shù)據(jù)恢復(fù)的大概方法,部分原理可以用于優(yōu)盤(pán),光盤(pán)等的數(shù)據(jù)恢復(fù)。
基礎(chǔ)知識(shí)-硬盤(pán), 分區(qū)和文件系統(tǒng)的介紹
硬盤(pán)內(nèi)部結(jié)構(gòu)
關(guān)于硬盤(pán)結(jié)構(gòu)的文章已經(jīng)非常多了,不過(guò)真正要說(shuō)清楚的話(huà),就算專(zhuān)門(mén)出一本書(shū)也說(shuō)不完,因此這里就不再?gòu)念^細(xì)細(xì)講述了。
硬盤(pán)最基本的組成部分是由堅(jiān)硬金屬材料制成的涂以磁性介質(zhì)的盤(pán)片,不同容量硬盤(pán)的盤(pán)片數(shù)不等。每個(gè)盤(pán)片有兩面,都可記錄信息。盤(pán)片被分成許多扇形的區(qū)域,每個(gè)區(qū)域叫一個(gè)扇區(qū),每個(gè)扇區(qū)可存儲(chǔ)128×2的N次方(N=0.1.2.3)字節(jié)信息。在DOS中每扇區(qū)是128×2的2次方=512字節(jié),盤(pán)片表面上以盤(pán)片中心為圓心,不同半徑的同心圓稱(chēng)為磁道。硬盤(pán)中,不同盤(pán)片相同半徑的磁道所組成的圓柱稱(chēng)為柱面。磁道與柱面都是表示不同半徑的圓,在許多場(chǎng)合,磁道和柱面可以互換使用,我們知道,每個(gè)磁盤(pán)有兩個(gè)面,每個(gè)面都有一個(gè)磁頭,習(xí)慣用磁頭號(hào)來(lái)區(qū)分。扇區(qū),磁道(或柱面)和磁頭數(shù)構(gòu)成了硬盤(pán)結(jié)構(gòu)的基本參數(shù)。在老式硬盤(pán)中,采用的都是這種比較古老的CHS(Cylinder/Head/Sector)結(jié)構(gòu)體系。因?yàn)楹芫靡郧?,在硬盤(pán)的容量還非常小的時(shí)候,人們采用與軟盤(pán)類(lèi)似的結(jié)構(gòu)生產(chǎn)硬盤(pán)。也就是硬盤(pán)盤(pán)片的每一條磁道都具有相同的扇區(qū)數(shù),由此產(chǎn)生了所謂的3D參數(shù)(Disk Geometry),即是磁頭數(shù)(Heads)、柱面數(shù)(Cylinders)、扇區(qū)數(shù)(Sectors)以及相應(yīng)的3D尋址方式。對(duì)于現(xiàn)在的新硬盤(pán)來(lái)說(shuō),都已經(jīng)全部不采用這樣的結(jié)構(gòu),而是采用了更加科學(xué)的結(jié)構(gòu)方式,目前的硬盤(pán)都是線(xiàn)性尋址也就是直接使用扇區(qū)號(hào)來(lái)訪問(wèn)硬盤(pán),137G以下的硬盤(pán)使用32位整數(shù)作為扇區(qū)號(hào),而137G以上的硬盤(pán)使用48位整數(shù)作為扇區(qū)號(hào)。
CHS結(jié)構(gòu)體系
其中:磁頭數(shù)表示硬盤(pán)總共有幾個(gè)磁頭,也就是有幾面盤(pán)片,最大為255(用8個(gè)二進(jìn)制位存儲(chǔ));柱面數(shù)表示硬盤(pán)每一面盤(pán)片上有幾條磁道,最大為1023(用10個(gè)二進(jìn)制位存儲(chǔ));扇區(qū)數(shù)表示每一條磁道上有幾個(gè)扇區(qū),最大為63(用6個(gè)二進(jìn)制位存儲(chǔ));每個(gè)扇區(qū)一般是512個(gè)字節(jié),理論上講你可以取任何一個(gè)你喜歡的數(shù)值,但好像至今還沒(méi)有發(fā)現(xiàn)取別的值的。所以磁盤(pán)最大容量為:
255×1023×63×512/1048576=8024MB(1M=1048576Bytes)
或硬盤(pán)廠商常用的單位:
255×1023×63×512/1000000=8414MB(1M=1000000Bytes)
由于在老式硬盤(pán)的CHS結(jié)構(gòu)體系中,每個(gè)磁道的扇區(qū)數(shù)相等,所以外道的記錄密度要遠(yuǎn)低于內(nèi)道,因此會(huì)浪費(fèi)很多磁盤(pán)空間(軟盤(pán)也是一樣)。為了進(jìn)一步提高硬盤(pán)容量,現(xiàn)在硬盤(pán)廠商都改用等密度結(jié)構(gòu)生產(chǎn)硬盤(pán)。這也就是說(shuō),每個(gè)扇區(qū)的磁道長(zhǎng)度相等,外圈磁道的扇區(qū)比內(nèi)圈磁道多。采用這種結(jié)構(gòu)后,硬盤(pán)不再具有實(shí)際的3D參數(shù),尋址方式也改為線(xiàn)性尋址,即以扇區(qū)為單位進(jìn)行尋址。而為了與使用3D尋址的老軟件兼容(如使用BIOSInt13H接口的軟件),廠商通常在硬盤(pán)控制器內(nèi)部安裝了一個(gè)地址翻譯器,由它負(fù)責(zé)將老式3D參數(shù)翻譯成新的線(xiàn)性參數(shù)。這也是為什么現(xiàn)在硬盤(pán)的3D參數(shù)可以有多種選擇的原因(不同的工作模式可以對(duì)應(yīng)不同的3D參數(shù),如LBA、LARGE、NORMAL)。而隨著磁盤(pán)密度的增加、機(jī)構(gòu)的進(jìn)一步復(fù)雜、功能和速度上的提高,如今的硬盤(pán)都會(huì)在磁盤(pán)里面劃分出一個(gè)容量比較大的,稱(chēng)為“系統(tǒng)保留區(qū)”的區(qū)域,用于儲(chǔ)存硬盤(pán)的各種信息、參數(shù)和控制程序,有的甚至把硬盤(pán)的Fireware也做到了系統(tǒng)保留區(qū)里面(原來(lái)這些信息都是儲(chǔ)存在硬盤(pán)控制電路板的芯片上的)。這樣雖然可以進(jìn)一步簡(jiǎn)化生產(chǎn)的流程,加快生產(chǎn)速度和降低生產(chǎn)成本,但是從另一方面,卻又大大增加了硬盤(pán)出現(xiàn)致命性損壞的幾率和縮短了硬盤(pán)的使用壽命。
恢復(fù)數(shù)據(jù)的原理和方法
發(fā)覺(jué)硬盤(pán)故障,需要恢復(fù)數(shù)據(jù)的時(shí)候,第一步所要做的就是檢測(cè),判斷磁盤(pán)的故障原因和數(shù)據(jù)損壞程度
只有明確磁盤(pán)的損壞程度和故障原因,才能采取正確的步驟恢復(fù)數(shù)據(jù):
硬盤(pán)內(nèi)部故障,表現(xiàn)形式一般是CMOS不能識(shí)別硬盤(pán),硬盤(pán)異響,那么可能的故障原因物理磁道損壞、內(nèi)電路芯片擊穿、磁頭損壞等等,可以采用的修復(fù)手段有:內(nèi)電路檢修、在超凈間內(nèi)打開(kāi)盤(pán)腔修復(fù),這種情況只能送到專(zhuān)業(yè)的數(shù)據(jù)恢復(fù)公司。
硬盤(pán)外電路故障,如果CMOS不能識(shí)別硬盤(pán),硬盤(pán)無(wú)異響,那么可能的故障原因是外電路板損壞、芯片擊穿、電壓不穩(wěn)燒毀等等,可以采取的手段是外電路檢修,或者更換相同型號(hào)的硬盤(pán)的電路板,一般需要送到專(zhuān)業(yè)的數(shù)據(jù)恢復(fù)公司。
軟故障,如果CMOS能識(shí)別硬盤(pán),一般是硬盤(pán)軟故障,破壞原因一般是系統(tǒng)錯(cuò)誤造成數(shù)據(jù)丟失,誤分區(qū)、誤刪除、誤克隆、軟件沖突、病毒破壞等等,可以采用的方法有專(zhuān)用數(shù)據(jù)恢復(fù)軟件或者人工方式。
下面具體講解軟故障的數(shù)據(jù)恢復(fù)方法
1. 確認(rèn)數(shù)據(jù)丟失的故障原因
1. 硬盤(pán)數(shù)據(jù)丟失,故障原因包括:
病毒破壞,誤克隆,硬盤(pán)誤格式化,分區(qū)表失丟,誤刪除文件,移動(dòng)硬盤(pán)盤(pán)符認(rèn)不出來(lái)(無(wú)法讀取其中數(shù)據(jù),硬盤(pán)零磁道損壞),硬盤(pán)誤分區(qū),盤(pán)片邏輯壞區(qū),硬盤(pán)存在物理壞區(qū)。
2. 文檔數(shù)據(jù)損壞,如Office 系列數(shù)據(jù)文件損壞,Zip、MPEG、asf、RM 等文件數(shù)據(jù)損壞。
2. 根據(jù)故障原因,采用相應(yīng)的手段和步驟
1. 備份數(shù)據(jù),根據(jù)數(shù)據(jù)的重要程度,決定是否需要備份數(shù)據(jù),備份數(shù)據(jù)的一般步驟是
1. 卸下?lián)p壞硬盤(pán),接到另外一臺(tái)完好的機(jī)器,注意新機(jī)器上有足夠的硬盤(pán)空間備份
2. 使用ghost的原始模式(raw),一個(gè)扇區(qū)一個(gè)扇區(qū)的把損壞磁盤(pán)備份到一個(gè)鏡像文件中。如果硬盤(pán)上有物理壞道,最好是采用ghost的方式制作一個(gè)磁盤(pán)鏡像,然后所有的*作都在磁盤(pán)鏡像上進(jìn)行,這樣可以最大限度的保護(hù)原始磁盤(pán)不被進(jìn)一步損壞,可以最大限度的恢復(fù)數(shù)據(jù)。 ——我猜想作者是說(shuō)把磁盤(pán)內(nèi)容克龍到另一塊磁盤(pán)上做恢復(fù)的做作,以避免在原磁盤(pán)的寫(xiě)*作。
3. 修復(fù)硬盤(pán)數(shù)據(jù)。修復(fù)硬盤(pán)數(shù)據(jù)有2種類(lèi)型,一種直接在原始硬盤(pán)修改,一種是把讀出數(shù)據(jù)存儲(chǔ)到其他的硬盤(pán)上。基本思路就是就是根據(jù)磁盤(pán)現(xiàn)有的信息最大限度的推斷出丟失的分區(qū)和文件系統(tǒng)系統(tǒng)的信息,把受損的文件和系統(tǒng)還原,所以如果信息損失太多,那么是不可能恢復(fù)數(shù)據(jù)的。比如錯(cuò)誤刪除一個(gè)文件后,隨即又拷貝了較大的文件過(guò)來(lái),那么多半是被刪除的文件被新拷貝過(guò)來(lái)的文件所覆蓋,幾乎是無(wú)法恢復(fù)了。
一個(gè)常識(shí)就是,如果想要恢復(fù)數(shù)據(jù),那么不要在出問(wèn)題的磁盤(pán)上運(yùn)行scandisk或者Norton Disk Doctor等直接修復(fù)文件系統(tǒng)錯(cuò)誤的軟件,切記。
零磁道,MBR和分區(qū)表DPT:
零磁道處于硬盤(pán)上一個(gè)非常重要的位置,硬盤(pán)的主引導(dǎo)記錄區(qū)(MBR)就在這個(gè)位置上。零磁道一旦受損,將使硬盤(pán)的主引導(dǎo)程序和分區(qū)表信息遭到嚴(yán)重破壞,從而導(dǎo)致硬盤(pán)無(wú)法自舉。
MBR:
當(dāng)通過(guò)Fdisk或其他分區(qū)工具對(duì)硬盤(pán)進(jìn)行分區(qū)時(shí),分區(qū)軟件會(huì)在硬盤(pán)0柱面0磁頭1扇區(qū)建立MBR(Main Boot Record),即為主引導(dǎo)記錄區(qū),位于整個(gè)硬盤(pán)的第一個(gè)扇區(qū),在總共512字節(jié)的主引導(dǎo)扇區(qū)中,主引導(dǎo)程序只占用了其中的446個(gè)字節(jié),64個(gè)字節(jié)交給了DPT(Disk Partition Table硬盤(pán)分區(qū)表),最后兩個(gè)字節(jié)(55 AA)屬于分區(qū)結(jié)束標(biāo)志。主引導(dǎo)程序的作用就是檢查分區(qū)表是否正確以及確定哪個(gè)分區(qū)為引導(dǎo)分區(qū),并在程序結(jié)束時(shí)把該分區(qū)的啟動(dòng)程序調(diào)入內(nèi)存加以執(zhí)行。
DPT:
分區(qū)表DPT(Disk Partition Table),把硬盤(pán)空間劃分為幾個(gè)獨(dú)立的連續(xù)的存儲(chǔ)空間,也就是分區(qū)。分區(qū)表DPT則以80H或00H為開(kāi)始標(biāo)志,以55AAH為結(jié)束標(biāo)志。分區(qū)表決定了硬盤(pán)中的分區(qū)數(shù)量,每個(gè)分區(qū)的起始及終止扇區(qū)、大小以及是否為活動(dòng)分區(qū)等。
通過(guò)破壞DPT,即可輕易地?fù)p毀硬盤(pán)分區(qū)信息。分區(qū)表分為主分區(qū)表和擴(kuò)展分區(qū)表。
主分區(qū)表位于硬盤(pán)MBR的后部。從1BEH字節(jié)開(kāi)始,共占用64個(gè)字節(jié),包含四個(gè)分區(qū)表項(xiàng),這也就是為什么一個(gè)磁盤(pán)的主分區(qū)和擴(kuò)展分區(qū)之和總共只能有四個(gè)的原因。每個(gè)分區(qū)表項(xiàng)的長(zhǎng)度為16個(gè)字節(jié),它包含一個(gè)分區(qū)的引導(dǎo)標(biāo)志、系統(tǒng)標(biāo)志、起始和結(jié)尾的柱面號(hào)、扇區(qū)號(hào)、磁頭號(hào)以及本分區(qū)前面的扇區(qū)數(shù)和本分區(qū)所占用的扇區(qū)數(shù)。其中”引導(dǎo)標(biāo)志”表明此分區(qū)是否可引導(dǎo),即是否活動(dòng)分區(qū)。當(dāng)引導(dǎo)標(biāo)志為”80″時(shí),此分區(qū)為活動(dòng)分區(qū);”系統(tǒng)標(biāo)志”決定了該分區(qū)的類(lèi)型,如”06″為DOS FAT16分區(qū),”0b”為DOS FAT32分,”63″為UNIX分區(qū)等;起始和結(jié)尾的柱面號(hào)、扇區(qū)號(hào)、磁頭號(hào)指明了該分區(qū)的起始和終止位置。
分區(qū)表項(xiàng)的16個(gè)字節(jié)分配如下:
第1字節(jié): 引導(dǎo)標(biāo)志
第2字節(jié): 起始磁頭
第3字節(jié): 低6位為起始扇區(qū), 高2位與第4字節(jié)為起始柱面
第4字節(jié): 起始柱面的低8位
第5字節(jié): 系統(tǒng)標(biāo)志
第6字節(jié): 終止磁頭
第7字節(jié): 低6位為終止扇區(qū), 高2位與第8字節(jié)為終止柱面
第8字節(jié): 終止柱面的低8位
第9-12字節(jié): 該分區(qū)前的扇區(qū)數(shù)目
第13-16字節(jié): 該分區(qū)占用的扇區(qū)數(shù)目
擴(kuò)展分區(qū)作為一個(gè)主分區(qū)占用了主分區(qū)表的一個(gè)表項(xiàng)。在擴(kuò)展分區(qū)起始位置所指示的扇區(qū)(即該分區(qū)的第一個(gè)扇區(qū))中,包含有第一個(gè)邏輯分區(qū)表,同樣從1BEH字節(jié)開(kāi)始,每個(gè)分區(qū)表項(xiàng)占用16個(gè)字節(jié)。邏輯分區(qū)表一般包含兩個(gè)分區(qū)表項(xiàng),一個(gè)指向當(dāng)前的邏輯分區(qū),另一個(gè)則指向下一個(gè)擴(kuò)展分區(qū)。下一個(gè)擴(kuò)展分區(qū)的首扇區(qū)又包含了一個(gè)邏輯分區(qū)表,這樣以此類(lèi)推,擴(kuò)展分區(qū)中就可以包含多個(gè)邏輯分區(qū)。為方便說(shuō)明,我們把這一系列擴(kuò)展分區(qū)和邏輯分區(qū)分別編號(hào),主擴(kuò)展分區(qū)為 1號(hào)擴(kuò)展分區(qū),第一個(gè)邏輯分區(qū)表所包含的兩個(gè)分區(qū)分別標(biāo)為 1號(hào)邏輯分區(qū)和 2號(hào)擴(kuò)展分區(qū),依次類(lèi)推。
主分區(qū)表中的分區(qū)是主分區(qū),而擴(kuò)展分區(qū)表中的是邏輯分區(qū),并且只能存在一個(gè)擴(kuò)展分區(qū)。
FS即文件系統(tǒng),位于分區(qū)之內(nèi),用于管理分區(qū)中文件的存儲(chǔ)以及各種信息,包括文件名字,大小,時(shí)間,實(shí)際占用的磁盤(pán)空間等。windows 目前常用的文件系統(tǒng)包括FAT12,F(xiàn)AT16,F(xiàn)AT32和NTFS系統(tǒng)。
DBR(Dos Boot Record)是*作系統(tǒng)引導(dǎo)記錄區(qū)。它位于硬盤(pán)的每個(gè)分區(qū)的第一個(gè)扇區(qū),是*作系統(tǒng)可以直接訪問(wèn)的第一個(gè)扇區(qū),它一般包括一個(gè)位于該分區(qū)的*作系統(tǒng)的引導(dǎo)程序和相關(guān)的分區(qū)參數(shù)記錄表。
簇,是文件系統(tǒng)中最小的數(shù)據(jù)存儲(chǔ)單元,由若干個(gè)連續(xù)的扇區(qū)組成,硬盤(pán)的扇區(qū)的大小是512字節(jié)(幾乎是用于所有的硬盤(pán)),也就是既是一個(gè)字節(jié)的文件也要分配給它1個(gè)簇的空間,剩余的空間都被浪費(fèi)了,簇越小,那么對(duì)小文件的存儲(chǔ)的效率越高,簇越大,文件訪問(wèn)的效率高,但是浪費(fèi)空間比較嚴(yán)重。
FAT(file allocation table)即文件分配表,記錄了分區(qū)中簇的的使用情況,F(xiàn)AT表的大小與硬盤(pán)的分區(qū)的大小有關(guān),為了數(shù)據(jù)安全起見(jiàn),F(xiàn)AT一般做兩個(gè), 二FAT為第一FAT的備份,用于FAT12,F(xiàn)AT16,和FAT32文件系統(tǒng)。
DIR是DIRECTORY即根目錄區(qū)的簡(jiǎn)寫(xiě),根目錄區(qū)存儲(chǔ)了文件系統(tǒng)的根目錄中的文件或者目錄的信息(包括文件的名字,大小,所在的磁盤(pán)空間等等),F(xiàn)AT12,F(xiàn)AT16的DIR緊接在第二FAT表之后,而FAT32的根目錄區(qū)可以在分區(qū)的任何一個(gè)簇。
MFT(Master File Table)是NTFS中存儲(chǔ)有關(guān)文件的各種信息的數(shù)據(jù)結(jié)構(gòu),包括文件的大小,時(shí)間,所占據(jù)的數(shù)據(jù)空間等等。
以FAT32為例,F(xiàn)AT32分區(qū)的的0-2扇區(qū)為FAT32文件系統(tǒng)的DBR即引導(dǎo)扇區(qū),3-5扇區(qū)為0-2扇區(qū)的備份。6-31扇區(qū)為空,32扇區(qū)開(kāi)始為第一個(gè)FAT表,F(xiàn)AT表的大小與硬盤(pán)的分區(qū)的大小有關(guān)。隨后是第2個(gè)FAT表,剩余的空間都是實(shí)際的文件所占用的,包括目錄和文件。FAT32文件系統(tǒng)的根目錄并不一定是數(shù)據(jù)區(qū)的第一個(gè)簇,它可以位于數(shù)據(jù)區(qū)的任何一個(gè)簇,這也是FAT32的根目錄大小不在受255個(gè)文件限制的原因,這也是FAT32的文件名可以支持長(zhǎng)文件名的原因之一。
分區(qū)表丟失,表現(xiàn)為硬盤(pán)原先所有分區(qū)或者部分分區(qū)沒(méi)了,在磁盤(pán)管理器(winxp win2000 win2003)看到未分區(qū)的硬盤(pán)或者未分區(qū)的空間。有多種可能:
病毒,當(dāng)年的cih病毒會(huì)用無(wú)效的數(shù)據(jù)填充分區(qū)表和第一個(gè)分區(qū)的數(shù)據(jù),這種情況下,從前面介紹的分區(qū)的性質(zhì)來(lái)看,c盤(pán)的數(shù)據(jù)很難恢復(fù),而隨后d盤(pán)和e盤(pán)等分區(qū)的實(shí)際數(shù)據(jù)并沒(méi)有被破壞,而僅僅是分區(qū)表丟失而已,所以只要找到D盤(pán)和E盤(pán)等分區(qū)的正確的起始和結(jié)束位置,很容易恢復(fù)。
重新分區(qū),使用fdisk對(duì)磁盤(pán)重新劃分空間分布,那么原來(lái)的分區(qū)表被新的分區(qū)表取代,這個(gè)時(shí)候,同樣是原來(lái)分區(qū)的數(shù)據(jù)沒(méi)有損壞,僅僅是分區(qū)表指向了不正確的位置。
誤刪除文件的恢復(fù)
誤刪除文件的恢復(fù)的原理是什么呢?為什么刪除文件后,又可以恢復(fù)回來(lái)?是不是所有的刪除的文件都可以恢復(fù)?
當(dāng)我們存儲(chǔ)一個(gè)文件的時(shí)候,*作系統(tǒng)首先在一個(gè)記錄所有空間使用情況的表格中,找到足夠容納我們的新文件的空間,然后把文件內(nèi)容寫(xiě)到相對(duì)應(yīng)的硬盤(pán)扇區(qū)上,最后在表格中標(biāo)出該空間被占用了。
當(dāng)我們刪除一個(gè)文件的時(shí)候,一般并不對(duì)實(shí)際文件所占用的扇區(qū)進(jìn)行*作,而是僅僅在該表格中指明那些空間是空白的了,可以分配給別的文件使用。在這個(gè)時(shí)候,被刪除的文件的實(shí)際內(nèi)容并沒(méi)有受到破壞,可以恢復(fù)回來(lái)。如果我們刪除一個(gè)文件后,又重新創(chuàng)建了一個(gè)文件,那么被刪除文件所占用的扇區(qū)就有可能被新創(chuàng)建的文件所使用,這時(shí)候就無(wú)法恢復(fù)原來(lái)被刪除的文件了。所以一旦錯(cuò)誤的刪除了文件,必須注意的就是不要對(duì)該文件所在的分區(qū)進(jìn)行寫(xiě)*作了,否則有可能覆蓋原來(lái)刪除的文件,從而導(dǎo)致數(shù)據(jù)無(wú)法恢復(fù)。
對(duì)于誤刪除的文件,我們有很多選擇,如finaldata,recover4all,easyrecovery,這些軟件使用很簡(jiǎn)單,直接按照向?qū)У闹甘揪涂梢粤恕?
下面介紹一種手工恢復(fù)被刪除數(shù)據(jù)的方法,特別是使用這種自動(dòng)化的方法恢復(fù)無(wú)效的時(shí)候,這種方法適合恢復(fù)有明顯特征的結(jié)構(gòu)簡(jiǎn)單的文件,如文本文件,如果格式復(fù)雜,就需要寫(xiě)一個(gè)類(lèi)似的程序來(lái)恢復(fù)了。原理就是直接在分區(qū)中尋找被刪除的文件的內(nèi)容。
一個(gè)實(shí)例就是微軟公司的vc6,vc6的ide有一個(gè)bug,一直沒(méi)有修復(fù),就是存儲(chǔ)寫(xiě)好的程序代碼的時(shí)候,偶然會(huì)彈出一個(gè)對(duì)話(huà)框說(shuō)無(wú)法存儲(chǔ)文件,這個(gè)時(shí)候必須再存一次才可以,如果你直接關(guān)閉vc6,就會(huì)發(fā)現(xiàn)剛才那個(gè)文件被刪除了(這個(gè)bug是微軟確認(rèn)的,一直到vc6的sp5補(bǔ)丁也沒(méi)有修復(fù))。
我的一個(gè)朋友使用vc6的時(shí)候遇到了這個(gè)bug,而且他以為vc6出了問(wèn)題,直接關(guān)閉了vc6,結(jié)果很費(fèi)勁才調(diào)試好的很長(zhǎng)的一的文件就失蹤了。
我首先試用了finaldata和easyrecovery,結(jié)果找出很多以前刪除的文件,就是沒(méi)有需要的。沒(méi)有辦法的情況下,只好使用強(qiáng)行搜索的方法了
1. 運(yùn)行winhex,選擇tools菜單中的opendisk,選擇誤刪除的文件所在的邏輯盤(pán)c盤(pán),
2. 選擇search菜單,使用find text命令,在打開(kāi)的c盤(pán)上直接搜索程序代碼中的特征串“增加了處理Reg_Expand_SZ”,
3. 經(jīng)過(guò)一段時(shí)間后,把找到的代碼所在扇區(qū)的前后幾個(gè)扇區(qū)全部復(fù)制下來(lái),拷貝到一個(gè)新的文件中,這樣就找回了原來(lái)的代碼。
對(duì)于恢復(fù)結(jié)構(gòu)性很強(qiáng)的文檔,如果自動(dòng)化的方式不起作用,可以寫(xiě)一個(gè)小程序來(lái)搜索的同時(shí)加以判斷,或者直接利用winhex提供的接口寫(xiě)一個(gè)腳本,如果數(shù)據(jù)很重要,這樣的手段也是很需要的。如果文件分散在分區(qū)的多個(gè)位置,還需要根據(jù)文檔的內(nèi)部結(jié)構(gòu)來(lái)重新組織文檔,才能徹底恢復(fù)數(shù)據(jù)。
誤格式化的原理也是非常類(lèi)似,僅僅是快速格式化的時(shí)候,并沒(méi)有覆蓋原來(lái)的數(shù)據(jù),所以可以恢復(fù)。
首先申明一點(diǎn),對(duì)于重要數(shù)據(jù),備份數(shù)據(jù)才是防止數(shù)據(jù)丟失的根本方法,而數(shù)據(jù)恢復(fù)依賴(lài)于很多因素,很難完全恢復(fù)數(shù)據(jù),一般是僅僅可以恢復(fù)部分?jǐn)?shù)據(jù)。
數(shù)據(jù)恢復(fù)就是找回丟失的數(shù)據(jù),例如徹底刪除某個(gè)文件或文件夾,重新格式化磁盤(pán),重新分區(qū)磁盤(pán)等等都會(huì)造成數(shù)據(jù)的丟失。更嚴(yán)重的數(shù)據(jù)丟失是存儲(chǔ)介質(zhì)硬件損壞,例如,硬盤(pán)不小心摔壞了、硬盤(pán)根本就不認(rèn)了、硬盤(pán)有大量壞道等等。最值得注意的一點(diǎn)是,一旦意識(shí)到數(shù)據(jù)丟失了,立刻停止一些不必要的*作,誤刪、誤格后,不要再往磁盤(pán)里寫(xiě)數(shù)據(jù)了!磁盤(pán)摔壞后,不要再加電了!磁盤(pán)出現(xiàn)壞道讀不出來(lái),不要反復(fù)讀盤(pán)了等等。
硬盤(pán)故障大致可分為硬故障和軟故障兩大類(lèi)。硬故障即PCBA板損壞、盤(pán)片劃傷、芯片及其它原器件燒壞、斷針斷線(xiàn)、磁頭音圈電機(jī)損壞等,是由于硬盤(pán)自身的機(jī)械零件或電子元器件損壞而引起。劇烈的震動(dòng)、頻繁開(kāi)關(guān)機(jī)、電路短路、供電電壓不穩(wěn)定等比較容易引發(fā)硬盤(pán)物理性故障,硬件故障一般表現(xiàn)為CMOS不認(rèn)硬盤(pán),常有一種“咔嚓咔嚓”的磁組撞擊聲或電機(jī)不轉(zhuǎn)、通電后無(wú)任何聲音、磁頭不對(duì)造成讀寫(xiě)錯(cuò)誤等現(xiàn)象,對(duì)上面描述的大部分情況,一般都要送到專(zhuān)門(mén)的數(shù)據(jù)恢復(fù)中心檢測(cè)和恢復(fù)數(shù)據(jù)。
硬盤(pán)軟故障即硬盤(pán)數(shù)據(jù)結(jié)構(gòu)由于某種原因,比如說(shuō)病毒導(dǎo)致硬盤(pán)數(shù)據(jù)結(jié)構(gòu)混亂甚至不可被識(shí)別而形成的故障。一般來(lái)說(shuō),主板BIOS硬盤(pán)自動(dòng)檢測(cè)(IDE HDD AUTO DETECTION)功能能夠檢測(cè)到硬盤(pán)參數(shù),均為軟故障。一般情況下,硬盤(pán)在發(fā)生故障時(shí)系統(tǒng)會(huì)在屏幕上顯示一些提示信息,所以我們可以按照屏幕顯示的提示信息找到故障原因,有針對(duì)性地實(shí)施解決方案。軟故障包括誤分區(qū)、誤格式化、誤刪除、誤克隆、MBR丟失、BOOT扇區(qū)丟失、病毒破壞、黑客攻擊、分區(qū)信息丟失、RAID0磁盤(pán)陣列、RAID1磁盤(pán)陣列、RAID5磁盤(pán)陣列失效等因素造成的數(shù)據(jù)丟失。硬盤(pán)軟故障相對(duì)于物理故障來(lái)說(shuō),更容易修復(fù)些,而它對(duì)數(shù)據(jù)的損壞程序也比硬盤(pán)物理故障來(lái)得輕些。
下面主要說(shuō)明一下硬盤(pán)發(fā)生軟故障后數(shù)據(jù)恢復(fù)的大概方法,部分原理可以用于優(yōu)盤(pán),光盤(pán)等的數(shù)據(jù)恢復(fù)。
基礎(chǔ)知識(shí)-硬盤(pán), 分區(qū)和文件系統(tǒng)的介紹
硬盤(pán)內(nèi)部結(jié)構(gòu)
關(guān)于硬盤(pán)結(jié)構(gòu)的文章已經(jīng)非常多了,不過(guò)真正要說(shuō)清楚的話(huà),就算專(zhuān)門(mén)出一本書(shū)也說(shuō)不完,因此這里就不再?gòu)念^細(xì)細(xì)講述了。
硬盤(pán)最基本的組成部分是由堅(jiān)硬金屬材料制成的涂以磁性介質(zhì)的盤(pán)片,不同容量硬盤(pán)的盤(pán)片數(shù)不等。每個(gè)盤(pán)片有兩面,都可記錄信息。盤(pán)片被分成許多扇形的區(qū)域,每個(gè)區(qū)域叫一個(gè)扇區(qū),每個(gè)扇區(qū)可存儲(chǔ)128×2的N次方(N=0.1.2.3)字節(jié)信息。在DOS中每扇區(qū)是128×2的2次方=512字節(jié),盤(pán)片表面上以盤(pán)片中心為圓心,不同半徑的同心圓稱(chēng)為磁道。硬盤(pán)中,不同盤(pán)片相同半徑的磁道所組成的圓柱稱(chēng)為柱面。磁道與柱面都是表示不同半徑的圓,在許多場(chǎng)合,磁道和柱面可以互換使用,我們知道,每個(gè)磁盤(pán)有兩個(gè)面,每個(gè)面都有一個(gè)磁頭,習(xí)慣用磁頭號(hào)來(lái)區(qū)分。扇區(qū),磁道(或柱面)和磁頭數(shù)構(gòu)成了硬盤(pán)結(jié)構(gòu)的基本參數(shù)。在老式硬盤(pán)中,采用的都是這種比較古老的CHS(Cylinder/Head/Sector)結(jié)構(gòu)體系。因?yàn)楹芫靡郧?,在硬盤(pán)的容量還非常小的時(shí)候,人們采用與軟盤(pán)類(lèi)似的結(jié)構(gòu)生產(chǎn)硬盤(pán)。也就是硬盤(pán)盤(pán)片的每一條磁道都具有相同的扇區(qū)數(shù),由此產(chǎn)生了所謂的3D參數(shù)(Disk Geometry),即是磁頭數(shù)(Heads)、柱面數(shù)(Cylinders)、扇區(qū)數(shù)(Sectors)以及相應(yīng)的3D尋址方式。對(duì)于現(xiàn)在的新硬盤(pán)來(lái)說(shuō),都已經(jīng)全部不采用這樣的結(jié)構(gòu),而是采用了更加科學(xué)的結(jié)構(gòu)方式,目前的硬盤(pán)都是線(xiàn)性尋址也就是直接使用扇區(qū)號(hào)來(lái)訪問(wèn)硬盤(pán),137G以下的硬盤(pán)使用32位整數(shù)作為扇區(qū)號(hào),而137G以上的硬盤(pán)使用48位整數(shù)作為扇區(qū)號(hào)。
CHS結(jié)構(gòu)體系
其中:磁頭數(shù)表示硬盤(pán)總共有幾個(gè)磁頭,也就是有幾面盤(pán)片,最大為255(用8個(gè)二進(jìn)制位存儲(chǔ));柱面數(shù)表示硬盤(pán)每一面盤(pán)片上有幾條磁道,最大為1023(用10個(gè)二進(jìn)制位存儲(chǔ));扇區(qū)數(shù)表示每一條磁道上有幾個(gè)扇區(qū),最大為63(用6個(gè)二進(jìn)制位存儲(chǔ));每個(gè)扇區(qū)一般是512個(gè)字節(jié),理論上講你可以取任何一個(gè)你喜歡的數(shù)值,但好像至今還沒(méi)有發(fā)現(xiàn)取別的值的。所以磁盤(pán)最大容量為:
255×1023×63×512/1048576=8024MB(1M=1048576Bytes)
或硬盤(pán)廠商常用的單位:
255×1023×63×512/1000000=8414MB(1M=1000000Bytes)
由于在老式硬盤(pán)的CHS結(jié)構(gòu)體系中,每個(gè)磁道的扇區(qū)數(shù)相等,所以外道的記錄密度要遠(yuǎn)低于內(nèi)道,因此會(huì)浪費(fèi)很多磁盤(pán)空間(軟盤(pán)也是一樣)。為了進(jìn)一步提高硬盤(pán)容量,現(xiàn)在硬盤(pán)廠商都改用等密度結(jié)構(gòu)生產(chǎn)硬盤(pán)。這也就是說(shuō),每個(gè)扇區(qū)的磁道長(zhǎng)度相等,外圈磁道的扇區(qū)比內(nèi)圈磁道多。采用這種結(jié)構(gòu)后,硬盤(pán)不再具有實(shí)際的3D參數(shù),尋址方式也改為線(xiàn)性尋址,即以扇區(qū)為單位進(jìn)行尋址。而為了與使用3D尋址的老軟件兼容(如使用BIOSInt13H接口的軟件),廠商通常在硬盤(pán)控制器內(nèi)部安裝了一個(gè)地址翻譯器,由它負(fù)責(zé)將老式3D參數(shù)翻譯成新的線(xiàn)性參數(shù)。這也是為什么現(xiàn)在硬盤(pán)的3D參數(shù)可以有多種選擇的原因(不同的工作模式可以對(duì)應(yīng)不同的3D參數(shù),如LBA、LARGE、NORMAL)。而隨著磁盤(pán)密度的增加、機(jī)構(gòu)的進(jìn)一步復(fù)雜、功能和速度上的提高,如今的硬盤(pán)都會(huì)在磁盤(pán)里面劃分出一個(gè)容量比較大的,稱(chēng)為“系統(tǒng)保留區(qū)”的區(qū)域,用于儲(chǔ)存硬盤(pán)的各種信息、參數(shù)和控制程序,有的甚至把硬盤(pán)的Fireware也做到了系統(tǒng)保留區(qū)里面(原來(lái)這些信息都是儲(chǔ)存在硬盤(pán)控制電路板的芯片上的)。這樣雖然可以進(jìn)一步簡(jiǎn)化生產(chǎn)的流程,加快生產(chǎn)速度和降低生產(chǎn)成本,但是從另一方面,卻又大大增加了硬盤(pán)出現(xiàn)致命性損壞的幾率和縮短了硬盤(pán)的使用壽命。
恢復(fù)數(shù)據(jù)的原理和方法
發(fā)覺(jué)硬盤(pán)故障,需要恢復(fù)數(shù)據(jù)的時(shí)候,第一步所要做的就是檢測(cè),判斷磁盤(pán)的故障原因和數(shù)據(jù)損壞程度
只有明確磁盤(pán)的損壞程度和故障原因,才能采取正確的步驟恢復(fù)數(shù)據(jù):
硬盤(pán)內(nèi)部故障,表現(xiàn)形式一般是CMOS不能識(shí)別硬盤(pán),硬盤(pán)異響,那么可能的故障原因物理磁道損壞、內(nèi)電路芯片擊穿、磁頭損壞等等,可以采用的修復(fù)手段有:內(nèi)電路檢修、在超凈間內(nèi)打開(kāi)盤(pán)腔修復(fù),這種情況只能送到專(zhuān)業(yè)的數(shù)據(jù)恢復(fù)公司。
硬盤(pán)外電路故障,如果CMOS不能識(shí)別硬盤(pán),硬盤(pán)無(wú)異響,那么可能的故障原因是外電路板損壞、芯片擊穿、電壓不穩(wěn)燒毀等等,可以采取的手段是外電路檢修,或者更換相同型號(hào)的硬盤(pán)的電路板,一般需要送到專(zhuān)業(yè)的數(shù)據(jù)恢復(fù)公司。
軟故障,如果CMOS能識(shí)別硬盤(pán),一般是硬盤(pán)軟故障,破壞原因一般是系統(tǒng)錯(cuò)誤造成數(shù)據(jù)丟失,誤分區(qū)、誤刪除、誤克隆、軟件沖突、病毒破壞等等,可以采用的方法有專(zhuān)用數(shù)據(jù)恢復(fù)軟件或者人工方式。
下面具體講解軟故障的數(shù)據(jù)恢復(fù)方法
1. 確認(rèn)數(shù)據(jù)丟失的故障原因
1. 硬盤(pán)數(shù)據(jù)丟失,故障原因包括:
病毒破壞,誤克隆,硬盤(pán)誤格式化,分區(qū)表失丟,誤刪除文件,移動(dòng)硬盤(pán)盤(pán)符認(rèn)不出來(lái)(無(wú)法讀取其中數(shù)據(jù),硬盤(pán)零磁道損壞),硬盤(pán)誤分區(qū),盤(pán)片邏輯壞區(qū),硬盤(pán)存在物理壞區(qū)。
2. 文檔數(shù)據(jù)損壞,如Office 系列數(shù)據(jù)文件損壞,Zip、MPEG、asf、RM 等文件數(shù)據(jù)損壞。
2. 根據(jù)故障原因,采用相應(yīng)的手段和步驟
1. 備份數(shù)據(jù),根據(jù)數(shù)據(jù)的重要程度,決定是否需要備份數(shù)據(jù),備份數(shù)據(jù)的一般步驟是
1. 卸下?lián)p壞硬盤(pán),接到另外一臺(tái)完好的機(jī)器,注意新機(jī)器上有足夠的硬盤(pán)空間備份
2. 使用ghost的原始模式(raw),一個(gè)扇區(qū)一個(gè)扇區(qū)的把損壞磁盤(pán)備份到一個(gè)鏡像文件中。如果硬盤(pán)上有物理壞道,最好是采用ghost的方式制作一個(gè)磁盤(pán)鏡像,然后所有的*作都在磁盤(pán)鏡像上進(jìn)行,這樣可以最大限度的保護(hù)原始磁盤(pán)不被進(jìn)一步損壞,可以最大限度的恢復(fù)數(shù)據(jù)。 ——我猜想作者是說(shuō)把磁盤(pán)內(nèi)容克龍到另一塊磁盤(pán)上做恢復(fù)的做作,以避免在原磁盤(pán)的寫(xiě)*作。
3. 修復(fù)硬盤(pán)數(shù)據(jù)。修復(fù)硬盤(pán)數(shù)據(jù)有2種類(lèi)型,一種直接在原始硬盤(pán)修改,一種是把讀出數(shù)據(jù)存儲(chǔ)到其他的硬盤(pán)上。基本思路就是就是根據(jù)磁盤(pán)現(xiàn)有的信息最大限度的推斷出丟失的分區(qū)和文件系統(tǒng)系統(tǒng)的信息,把受損的文件和系統(tǒng)還原,所以如果信息損失太多,那么是不可能恢復(fù)數(shù)據(jù)的。比如錯(cuò)誤刪除一個(gè)文件后,隨即又拷貝了較大的文件過(guò)來(lái),那么多半是被刪除的文件被新拷貝過(guò)來(lái)的文件所覆蓋,幾乎是無(wú)法恢復(fù)了。
一個(gè)常識(shí)就是,如果想要恢復(fù)數(shù)據(jù),那么不要在出問(wèn)題的磁盤(pán)上運(yùn)行scandisk或者Norton Disk Doctor等直接修復(fù)文件系統(tǒng)錯(cuò)誤的軟件,切記。
零磁道,MBR和分區(qū)表DPT:
零磁道處于硬盤(pán)上一個(gè)非常重要的位置,硬盤(pán)的主引導(dǎo)記錄區(qū)(MBR)就在這個(gè)位置上。零磁道一旦受損,將使硬盤(pán)的主引導(dǎo)程序和分區(qū)表信息遭到嚴(yán)重破壞,從而導(dǎo)致硬盤(pán)無(wú)法自舉。
MBR:
當(dāng)通過(guò)Fdisk或其他分區(qū)工具對(duì)硬盤(pán)進(jìn)行分區(qū)時(shí),分區(qū)軟件會(huì)在硬盤(pán)0柱面0磁頭1扇區(qū)建立MBR(Main Boot Record),即為主引導(dǎo)記錄區(qū),位于整個(gè)硬盤(pán)的第一個(gè)扇區(qū),在總共512字節(jié)的主引導(dǎo)扇區(qū)中,主引導(dǎo)程序只占用了其中的446個(gè)字節(jié),64個(gè)字節(jié)交給了DPT(Disk Partition Table硬盤(pán)分區(qū)表),最后兩個(gè)字節(jié)(55 AA)屬于分區(qū)結(jié)束標(biāo)志。主引導(dǎo)程序的作用就是檢查分區(qū)表是否正確以及確定哪個(gè)分區(qū)為引導(dǎo)分區(qū),并在程序結(jié)束時(shí)把該分區(qū)的啟動(dòng)程序調(diào)入內(nèi)存加以執(zhí)行。
DPT:
分區(qū)表DPT(Disk Partition Table),把硬盤(pán)空間劃分為幾個(gè)獨(dú)立的連續(xù)的存儲(chǔ)空間,也就是分區(qū)。分區(qū)表DPT則以80H或00H為開(kāi)始標(biāo)志,以55AAH為結(jié)束標(biāo)志。分區(qū)表決定了硬盤(pán)中的分區(qū)數(shù)量,每個(gè)分區(qū)的起始及終止扇區(qū)、大小以及是否為活動(dòng)分區(qū)等。
通過(guò)破壞DPT,即可輕易地?fù)p毀硬盤(pán)分區(qū)信息。分區(qū)表分為主分區(qū)表和擴(kuò)展分區(qū)表。
主分區(qū)表位于硬盤(pán)MBR的后部。從1BEH字節(jié)開(kāi)始,共占用64個(gè)字節(jié),包含四個(gè)分區(qū)表項(xiàng),這也就是為什么一個(gè)磁盤(pán)的主分區(qū)和擴(kuò)展分區(qū)之和總共只能有四個(gè)的原因。每個(gè)分區(qū)表項(xiàng)的長(zhǎng)度為16個(gè)字節(jié),它包含一個(gè)分區(qū)的引導(dǎo)標(biāo)志、系統(tǒng)標(biāo)志、起始和結(jié)尾的柱面號(hào)、扇區(qū)號(hào)、磁頭號(hào)以及本分區(qū)前面的扇區(qū)數(shù)和本分區(qū)所占用的扇區(qū)數(shù)。其中”引導(dǎo)標(biāo)志”表明此分區(qū)是否可引導(dǎo),即是否活動(dòng)分區(qū)。當(dāng)引導(dǎo)標(biāo)志為”80″時(shí),此分區(qū)為活動(dòng)分區(qū);”系統(tǒng)標(biāo)志”決定了該分區(qū)的類(lèi)型,如”06″為DOS FAT16分區(qū),”0b”為DOS FAT32分,”63″為UNIX分區(qū)等;起始和結(jié)尾的柱面號(hào)、扇區(qū)號(hào)、磁頭號(hào)指明了該分區(qū)的起始和終止位置。
分區(qū)表項(xiàng)的16個(gè)字節(jié)分配如下:
第1字節(jié): 引導(dǎo)標(biāo)志
第2字節(jié): 起始磁頭
第3字節(jié): 低6位為起始扇區(qū), 高2位與第4字節(jié)為起始柱面
第4字節(jié): 起始柱面的低8位
第5字節(jié): 系統(tǒng)標(biāo)志
第6字節(jié): 終止磁頭
第7字節(jié): 低6位為終止扇區(qū), 高2位與第8字節(jié)為終止柱面
第8字節(jié): 終止柱面的低8位
第9-12字節(jié): 該分區(qū)前的扇區(qū)數(shù)目
第13-16字節(jié): 該分區(qū)占用的扇區(qū)數(shù)目
擴(kuò)展分區(qū)作為一個(gè)主分區(qū)占用了主分區(qū)表的一個(gè)表項(xiàng)。在擴(kuò)展分區(qū)起始位置所指示的扇區(qū)(即該分區(qū)的第一個(gè)扇區(qū))中,包含有第一個(gè)邏輯分區(qū)表,同樣從1BEH字節(jié)開(kāi)始,每個(gè)分區(qū)表項(xiàng)占用16個(gè)字節(jié)。邏輯分區(qū)表一般包含兩個(gè)分區(qū)表項(xiàng),一個(gè)指向當(dāng)前的邏輯分區(qū),另一個(gè)則指向下一個(gè)擴(kuò)展分區(qū)。下一個(gè)擴(kuò)展分區(qū)的首扇區(qū)又包含了一個(gè)邏輯分區(qū)表,這樣以此類(lèi)推,擴(kuò)展分區(qū)中就可以包含多個(gè)邏輯分區(qū)。為方便說(shuō)明,我們把這一系列擴(kuò)展分區(qū)和邏輯分區(qū)分別編號(hào),主擴(kuò)展分區(qū)為 1號(hào)擴(kuò)展分區(qū),第一個(gè)邏輯分區(qū)表所包含的兩個(gè)分區(qū)分別標(biāo)為 1號(hào)邏輯分區(qū)和 2號(hào)擴(kuò)展分區(qū),依次類(lèi)推。
主分區(qū)表中的分區(qū)是主分區(qū),而擴(kuò)展分區(qū)表中的是邏輯分區(qū),并且只能存在一個(gè)擴(kuò)展分區(qū)。
FS即文件系統(tǒng),位于分區(qū)之內(nèi),用于管理分區(qū)中文件的存儲(chǔ)以及各種信息,包括文件名字,大小,時(shí)間,實(shí)際占用的磁盤(pán)空間等。windows 目前常用的文件系統(tǒng)包括FAT12,F(xiàn)AT16,F(xiàn)AT32和NTFS系統(tǒng)。
DBR(Dos Boot Record)是*作系統(tǒng)引導(dǎo)記錄區(qū)。它位于硬盤(pán)的每個(gè)分區(qū)的第一個(gè)扇區(qū),是*作系統(tǒng)可以直接訪問(wèn)的第一個(gè)扇區(qū),它一般包括一個(gè)位于該分區(qū)的*作系統(tǒng)的引導(dǎo)程序和相關(guān)的分區(qū)參數(shù)記錄表。
簇,是文件系統(tǒng)中最小的數(shù)據(jù)存儲(chǔ)單元,由若干個(gè)連續(xù)的扇區(qū)組成,硬盤(pán)的扇區(qū)的大小是512字節(jié)(幾乎是用于所有的硬盤(pán)),也就是既是一個(gè)字節(jié)的文件也要分配給它1個(gè)簇的空間,剩余的空間都被浪費(fèi)了,簇越小,那么對(duì)小文件的存儲(chǔ)的效率越高,簇越大,文件訪問(wèn)的效率高,但是浪費(fèi)空間比較嚴(yán)重。
FAT(file allocation table)即文件分配表,記錄了分區(qū)中簇的的使用情況,F(xiàn)AT表的大小與硬盤(pán)的分區(qū)的大小有關(guān),為了數(shù)據(jù)安全起見(jiàn),F(xiàn)AT一般做兩個(gè), 二FAT為第一FAT的備份,用于FAT12,F(xiàn)AT16,和FAT32文件系統(tǒng)。
DIR是DIRECTORY即根目錄區(qū)的簡(jiǎn)寫(xiě),根目錄區(qū)存儲(chǔ)了文件系統(tǒng)的根目錄中的文件或者目錄的信息(包括文件的名字,大小,所在的磁盤(pán)空間等等),F(xiàn)AT12,F(xiàn)AT16的DIR緊接在第二FAT表之后,而FAT32的根目錄區(qū)可以在分區(qū)的任何一個(gè)簇。
MFT(Master File Table)是NTFS中存儲(chǔ)有關(guān)文件的各種信息的數(shù)據(jù)結(jié)構(gòu),包括文件的大小,時(shí)間,所占據(jù)的數(shù)據(jù)空間等等。
以FAT32為例,F(xiàn)AT32分區(qū)的的0-2扇區(qū)為FAT32文件系統(tǒng)的DBR即引導(dǎo)扇區(qū),3-5扇區(qū)為0-2扇區(qū)的備份。6-31扇區(qū)為空,32扇區(qū)開(kāi)始為第一個(gè)FAT表,F(xiàn)AT表的大小與硬盤(pán)的分區(qū)的大小有關(guān)。隨后是第2個(gè)FAT表,剩余的空間都是實(shí)際的文件所占用的,包括目錄和文件。FAT32文件系統(tǒng)的根目錄并不一定是數(shù)據(jù)區(qū)的第一個(gè)簇,它可以位于數(shù)據(jù)區(qū)的任何一個(gè)簇,這也是FAT32的根目錄大小不在受255個(gè)文件限制的原因,這也是FAT32的文件名可以支持長(zhǎng)文件名的原因之一。
分區(qū)表丟失,表現(xiàn)為硬盤(pán)原先所有分區(qū)或者部分分區(qū)沒(méi)了,在磁盤(pán)管理器(winxp win2000 win2003)看到未分區(qū)的硬盤(pán)或者未分區(qū)的空間。有多種可能:
病毒,當(dāng)年的cih病毒會(huì)用無(wú)效的數(shù)據(jù)填充分區(qū)表和第一個(gè)分區(qū)的數(shù)據(jù),這種情況下,從前面介紹的分區(qū)的性質(zhì)來(lái)看,c盤(pán)的數(shù)據(jù)很難恢復(fù),而隨后d盤(pán)和e盤(pán)等分區(qū)的實(shí)際數(shù)據(jù)并沒(méi)有被破壞,而僅僅是分區(qū)表丟失而已,所以只要找到D盤(pán)和E盤(pán)等分區(qū)的正確的起始和結(jié)束位置,很容易恢復(fù)。
重新分區(qū),使用fdisk對(duì)磁盤(pán)重新劃分空間分布,那么原來(lái)的分區(qū)表被新的分區(qū)表取代,這個(gè)時(shí)候,同樣是原來(lái)分區(qū)的數(shù)據(jù)沒(méi)有損壞,僅僅是分區(qū)表指向了不正確的位置。
誤刪除文件的恢復(fù)
誤刪除文件的恢復(fù)的原理是什么呢?為什么刪除文件后,又可以恢復(fù)回來(lái)?是不是所有的刪除的文件都可以恢復(fù)?
當(dāng)我們存儲(chǔ)一個(gè)文件的時(shí)候,*作系統(tǒng)首先在一個(gè)記錄所有空間使用情況的表格中,找到足夠容納我們的新文件的空間,然后把文件內(nèi)容寫(xiě)到相對(duì)應(yīng)的硬盤(pán)扇區(qū)上,最后在表格中標(biāo)出該空間被占用了。
當(dāng)我們刪除一個(gè)文件的時(shí)候,一般并不對(duì)實(shí)際文件所占用的扇區(qū)進(jìn)行*作,而是僅僅在該表格中指明那些空間是空白的了,可以分配給別的文件使用。在這個(gè)時(shí)候,被刪除的文件的實(shí)際內(nèi)容并沒(méi)有受到破壞,可以恢復(fù)回來(lái)。如果我們刪除一個(gè)文件后,又重新創(chuàng)建了一個(gè)文件,那么被刪除文件所占用的扇區(qū)就有可能被新創(chuàng)建的文件所使用,這時(shí)候就無(wú)法恢復(fù)原來(lái)被刪除的文件了。所以一旦錯(cuò)誤的刪除了文件,必須注意的就是不要對(duì)該文件所在的分區(qū)進(jìn)行寫(xiě)*作了,否則有可能覆蓋原來(lái)刪除的文件,從而導(dǎo)致數(shù)據(jù)無(wú)法恢復(fù)。
對(duì)于誤刪除的文件,我們有很多選擇,如finaldata,recover4all,easyrecovery,這些軟件使用很簡(jiǎn)單,直接按照向?qū)У闹甘揪涂梢粤恕?
下面介紹一種手工恢復(fù)被刪除數(shù)據(jù)的方法,特別是使用這種自動(dòng)化的方法恢復(fù)無(wú)效的時(shí)候,這種方法適合恢復(fù)有明顯特征的結(jié)構(gòu)簡(jiǎn)單的文件,如文本文件,如果格式復(fù)雜,就需要寫(xiě)一個(gè)類(lèi)似的程序來(lái)恢復(fù)了。原理就是直接在分區(qū)中尋找被刪除的文件的內(nèi)容。
一個(gè)實(shí)例就是微軟公司的vc6,vc6的ide有一個(gè)bug,一直沒(méi)有修復(fù),就是存儲(chǔ)寫(xiě)好的程序代碼的時(shí)候,偶然會(huì)彈出一個(gè)對(duì)話(huà)框說(shuō)無(wú)法存儲(chǔ)文件,這個(gè)時(shí)候必須再存一次才可以,如果你直接關(guān)閉vc6,就會(huì)發(fā)現(xiàn)剛才那個(gè)文件被刪除了(這個(gè)bug是微軟確認(rèn)的,一直到vc6的sp5補(bǔ)丁也沒(méi)有修復(fù))。
我的一個(gè)朋友使用vc6的時(shí)候遇到了這個(gè)bug,而且他以為vc6出了問(wèn)題,直接關(guān)閉了vc6,結(jié)果很費(fèi)勁才調(diào)試好的很長(zhǎng)的一的文件就失蹤了。
我首先試用了finaldata和easyrecovery,結(jié)果找出很多以前刪除的文件,就是沒(méi)有需要的。沒(méi)有辦法的情況下,只好使用強(qiáng)行搜索的方法了
1. 運(yùn)行winhex,選擇tools菜單中的opendisk,選擇誤刪除的文件所在的邏輯盤(pán)c盤(pán),
2. 選擇search菜單,使用find text命令,在打開(kāi)的c盤(pán)上直接搜索程序代碼中的特征串“增加了處理Reg_Expand_SZ”,
3. 經(jīng)過(guò)一段時(shí)間后,把找到的代碼所在扇區(qū)的前后幾個(gè)扇區(qū)全部復(fù)制下來(lái),拷貝到一個(gè)新的文件中,這樣就找回了原來(lái)的代碼。
對(duì)于恢復(fù)結(jié)構(gòu)性很強(qiáng)的文檔,如果自動(dòng)化的方式不起作用,可以寫(xiě)一個(gè)小程序來(lái)搜索的同時(shí)加以判斷,或者直接利用winhex提供的接口寫(xiě)一個(gè)腳本,如果數(shù)據(jù)很重要,這樣的手段也是很需要的。如果文件分散在分區(qū)的多個(gè)位置,還需要根據(jù)文檔的內(nèi)部結(jié)構(gòu)來(lái)重新組織文檔,才能徹底恢復(fù)數(shù)據(jù)。
誤格式化的原理也是非常類(lèi)似,僅僅是快速格式化的時(shí)候,并沒(méi)有覆蓋原來(lái)的數(shù)據(jù),所以可以恢復(fù)。
相關(guān)文章
打開(kāi)擴(kuò)展名為ac.$的AutoCAD的臨時(shí)文件的方法
打開(kāi)擴(kuò)展名為ac.$的AutoCAD的臨時(shí)文件的方法...2007-07-07Office 2007 System 常見(jiàn)問(wèn)題集
Office 2007 System 常見(jiàn)問(wèn)題集...2007-01-01如何連接遠(yuǎn)程MSSQL數(shù)據(jù)庫(kù)?
如何連接遠(yuǎn)程MSSQL數(shù)據(jù)庫(kù)?...2007-05-05針對(duì)網(wǎng)頁(yè)制作者的網(wǎng)頁(yè)打開(kāi)速度慢的解決方法集合
此文在優(yōu)化網(wǎng)頁(yè)打開(kāi)速度及SEO方面,以網(wǎng)站瀏覽者,網(wǎng)站制作者,及服務(wù)器管理員的身份分別闡述了我們應(yīng)該如何做才能解決網(wǎng)頁(yè)打開(kāi)慢的問(wèn)題,向作者致敬2008-06-06右鍵-打開(kāi)方式-選擇程序,拒絕訪問(wèn),怎么辦?
右鍵-打開(kāi)方式-選擇程序,拒絕訪問(wèn),怎么辦?...2006-12-12