硬盤數據恢復常識_第1頁
硬盤數據恢復常識_第2頁
硬盤數據恢復常識_第3頁
硬盤數據恢復常識_第4頁
硬盤數據恢復常識_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、硬盤數據恢復常識硬盤數據恢復常識數據恢復一直以來都是我們關注的問題,因為你的電腦 數據每天都在受著諸如病毒、惡意代碼、黑客、誤操作等的威脅!那么如何才 能恢復你的數據呢?希望本文能對你有所幫助!一、理論篇要深入學習數據恢復,并非是一件容易的事,要想成為一個數據恢復專家, 沒有深厚的理論知識是不可能的,你必須了十分了解磁盤的邏輯結構,就讓我 們來看看需要學習的理論知識吧。當我們對文件進行訪問時,你有沒有想過,操作系統是如何對文件進行操 作的呢?這些文件又是如何存放在磁盤當中的呢 ?先來看看硬盤的總體結構,在 介紹硬盤總體結構之前有必要介紹一下硬盤的參數,硬盤是以磁頭(Heads),柱面(Cyli

2、nders),扇區(Sectors)進行訪問的。其中:磁頭數(Heads)表示硬盤總 共有幾個磁頭,也就是有幾面盤片,最大為255(用8個二進制位存儲);柱面數 (Cylinders)表示硬盤每一面盤片上有幾條磁道,最大為1023(用10個二進制位 存儲);扇區數(Sectors)表示每一條磁道上有幾個扇區,最大為63(用6個二進 制位存儲).每個扇區一般是512個字節,學習過匯編語言的朋友可能想到了, BIOS中斷13H的入口參數中,CH是磁道號其值為0HFEH(ft多255個磁道), CL中低6位為扇區號,其值為1H3FH俄多63個扇區),DH為磁頭號的低位, CL中的高2位為磁頭號的高位

3、,也就是說,磁頭號最多由10位二進制數表示,(1111111111)2=(1023)10 ,也就是說最多可以表示的磁頭數為 1024個。請大家 記住這些在我們以后的學習中還會用到的,由此可以看出基于這種訪問方式我 們最大能訪問的磁盤容量為:255*1023*63*512 字節=8414461440/1048576=8024.66 M只有大約8G的空間,這是因為早期磁盤還很小,想想當年你擁有一塊 200M硬盤時的喜悅心情吧!就好象當年的科學家們以為1K內存已經很大了一樣,讓電腦用戶很長一段時間都為配置 DOST的內存而煩惱。而今,你肯定擁有一塊大于8G的硬盤了,你能夠用她,應該多虧了一種較新的硬

4、盤訪問技術-擴展Int13H技術。采用線性尋址方式存取硬盤,所以突破了 8 G的限制,而且還 加入了對可拆卸介質(如活動硬盤)的支持,因為是談數據恢復不是談編程,關 于擴展INT13H技術我在此就不詳述了。硬盤數據(基于FAT結構)總體結構如下:1、主引導扇區(Master boot sector)(占用一個扇區)2、第一個分區的引導扇區(Boot sector)( 占用一個扇區)3、第一個分區的FAT1(占用空間由磁盤大小和FAT類型來定)4、第一個分區的FAT2(占用空間由磁盤大小和FAT類型來定)5、第一個分區的根目錄區6、第一個分區數據區(用來存放各種文件的數據)7、擴展分區表(占用一

5、個扇區)8、第二個分區的引導扇區(Boot sector)( 占用一個扇區)9、第二個分區的FAT1(占用空間由磁盤大小和FAT類型來定)10、第二個分區的FAT2(占用空間由磁盤大小和FAT類型來定)11、第二個分區的根目錄區12、第二個分區數據區(用來存放各種文件的數據)13、擴展分區表注意:當你的硬盤沒有擴展分區的時候,你就沒有擴展分區表了;當你只 有一個硬盤分區的時候你的硬盤結構到 6就完了。(一)主引導扇區(Master boot sector)的結構:它是硬盤的第一個扇區,由主引導程序(MasterBoot Record簡稱MBR)硬 盤分區表(Disk Partition Tab

6、le簡稱DPT和結束標識三部分組成。其結構如下:1、偏移0H1BDHt弓I導程序(占446個字節,但實際可能并沒有到這么多 的字節)2、偏移1BEH1FD硬盤分區表(占64個字節,每個分區項占16個字節, 最多可容納4個分區項)3、偏移1FEH1FF附束標識(占2個字節,結束標志,總為 55H AAH)主引導程序我在此就不分析了,需要注意的是在主引導程序中有一些出錯 信息,一些引導型病毒往往會覆蓋這些信息來將自己嵌入到主引導程序中去, 并將主引導程序開始的幾個字節改為一條跳轉指令,通過觀察主引導程序的變 化,往往可以讓我們看出自己的電腦是否有引導型病毒,一旦發現異常,我們 可以用FDISK/M

7、B限令來覆蓋原有的MBR結束標識的兩個字節總是 55H AAH 該標識只是用于判斷這個扇區是否是有效的主引導扇區,如果主引導程序發現 沒有這個結束標識,將會認為操作系統丟失,并顯示 "Missing Operating System"。硬盤分區表:從偏移1BEH1FDHfi 64個字節存放的是硬盤分區表,其中最多包含 4個分 區項,每個分區項由16個字節構成,具結構如下:1、1BEH1CDH區項 1 2、1CEH1DDH區項 2 3、1DBH1EDH區項 3 4、 1EFH1FDHb區項 4注意:沒有用到的分區項上的記錄總是 16個十六進制碼00H我們再來看看每個分區項的詳

8、細含義,假設我們的一個分區占用的16個字節被標為00H0FH其結構如下:00H引導標識字節,其值只能為00H或80H,為00H時表示該分區不可引導, 為80H時表示該分區可用于引導。在許多諸如 BOOT MAGIC類的軟件都是利用 了這一原理,實現多操作系統引導的,了解了這一原理,你也可以寫出你自己 的多操作系統引導程序了。01H分區起始磁頭號02H其高2位為分區起始柱面號的高位,底 6位為分區起始扇區號03H分區起始柱面號的低位04H分區系統標志,當該值為00H時,表示此分區為不可識別的系統;為 04H時該分區為FAT1的區;為05H或0FH該分區為擴展分區;為 0B時該分區 為FAT32分

9、區;為83H時表示該分區為Linux分區,為07時該分區為NTF的區 等等。一些如PQMAGI磁盤軟件在隱藏分區操作時就是將此字節的內容保存后 在把它改為00Ho05H分區結束磁頭號06H其高2位為分區結束柱面號的高位,底 6位為分區結束扇區號07H分區結束柱面號的低位08H0BHb匕4個字節為在線性尋址方式下的分區的扇區地址。當分區大于 8G時,擴展INT13H是通過該信息進行尋址的,我們可以發現在這種方式下尋 址最多可訪問的空間為:FFFFFFFF加*512B/扇=2048G也就是說我們用擴展 INT13H最大可以訪問的空間為2048G這個數字現在對我們來說是非常大的, 但誰都不能想象計算

10、機的發展之快,到時到底要如何來突破這個限制呢?現在誰也不知道。注意:此4個字節是從高位到低位排列的!例如我的分區表第一個 分區項此4字節的內容為"3FH 00H 00H 00H”,它代表該分區是從 0000003 FH 開始的,也就是從線性地址 63扇開始的(線性地址把硬盤的第一個扇記為 0H扇)0CH0FHt 4個字節為以扇區為單位的該分區大小(總扇區數),此4個字 節同樣是從高位到低位排列的!(二)引導扇區(Boot sector) 的結構:當主引導程序找到了帶有引導標識為 80H的分區后,就會將該分區的引導 扇區讀入到內存地址為 0000: 7c00處,并把控制權交給引導扇區中

11、的引導程序,讓我們來看看其中一些需要 了解的地方:1、0H02H-條跳轉指令,指針指向后面的引導程序2、03H0AHT商名和系統版本3、0BH0CHf扇字節數,一般為 512字節4、0DH®簇扇區數(有關簇的概念我們在后面會詳細介紹),對于FAT32的 磁盤該字節一般為08H,既每簇為8H*512B=4K5、0EH0FHR留扇區數6、10H磁盤FAT的個數,一般為2個7、11H12H寸于FAT16的磁盤為根目錄的最大目錄項,對于 FAT32的磁盤 該值總為"00H 00H"8、13H14印寸于軟盤或早期小硬盤該處為分區總扇區數,對于硬盤一般此 值為"00

12、H 00H"9、15H介質描述,對于1.44軟盤此處長為“F0H”,對于硬盤此處長為"F8H"10、16H17H寸于軟盤或早期小硬盤該處為每個 FAT占用的扇區數,對于 硬盤一般此值為"00H 00H"11、18H19K道扇區數,一般為"3FH 00H",即每道有63個扇區12、1AH1BHg頭數,一般為"FFH 00H",即每個柱面有255個磁頭13、1CH1F糧含扇區數14、20H23H寸于大硬盤來說該處存放的是該分區占用的扇區數15、24H27H寸于大硬盤來說該處存放的是每個 FAT占用的扇區數16

13、、40H該處為磁盤BIOS信息,第一塊硬盤為"80H", 一般軟盤為"00H"17、47H51Hg戶設置的卷標,如果沒有卷標此處常為字符串 "NO NAME"18、52H59HC件系統,對于 FAT32文件系統此處常為"FAT32"19、1FEH1FF結束標識,和上文提到的主引導區的結束標識一樣為 "55H AAH"以上是引導扇區的一些信息,在上面我們可以獲得一些有用的信息,我們 也可以想象一下為什么當我們在分區上單擊右鍵在分區屬性中可以看到一些分 區信息,比如分區大小,文件系統等等,知道原理,

14、你也可以直接調用這些參 數了。(三)磁盤文件分配表(FAT)在介紹FAT之前,我們要先了解有關簇的概念,簇(Cluster)是文件數據區 被劃分成的具有大小相等的區域用于磁盤文件的計量分配單位。一個簇可能有 1、2、4、8、16、32、64或128(必須是2的幕)個扇區構成,但對于一種磁盤 系統是其值往往是一定的,比如 FAT16中每簇一般為32K(占64個扇),FAT32 中每簇一般為4K(占8個扇)。要理解操作系統為什么要用簇對磁盤進行管理,還是得學習 FAT, FAT32磁 盤中在系統引導區之后有一些保留未用的扇區,再后面有一個以 F8H FFH FFH 0FH開始的FAT表,(對于FA

15、T16是以F8H FFH開始的),每個FATK占32位(4 個字節),FAT16的每個FAT項占16位(2個字節),不同的FAT值有不同的含義:FAT12的表項值FAT16的表項值FAT32的表項值值的含義000H 0000H 00000000 H 未用的空簇001HFEFH 0001HFFEFH 00000001 H0FFFFFEtH已使用的簇FF0HFF6H FFF0HFFF6H 0FFFFFF0H0FFFFFF6H 留簇FF7H FFF7H 0FFFFFF7 H簇FFF8HFFFH FFF8HFFFFH 0FFFFFF8H0FFFFFFFH勺最后一簇注意:在FAT表項中的16進制碼總是從

16、高向底排列的。我們再來看看系統是如何利用 FAT表來管理和訪問文件的。系統在創建一 個新文件時,逐一掃描FAT,跳過已經分配的簇,將該簇分給文件,具簇號作 為該文件的起始簇號被放在該文件的文件目錄項中 (關于文件目錄項我們將在后 面詳談),如果此文件的大小只需要一個簇就可以放下的話,在該簇對應的 FAT 項中將放文件最后一簇的標志(一般是FFH FFH FFH F0H即其值為0FFFFFFFH) 如果文件大小一個簇放不下,系統就會在繼續尋找FAT表中未用的簇,找到后將該簇的簇號寫到上一簇對應的 FAT項中,如果此時已經可以存下該文件的數 據,系統就會在此簇對應的FAT中記上最后簇的標志,否則就

17、繼續找下一空簇.也就是說FAT和簇是對應的關系,對于 FAT32的FAT來說每4個字節 為1個FAT項(對于FAT16的FAT每2個字節為一個FAT項),從0Nj FAT項 分別對應0N個簇,在我們對文件進行訪問時,總是先訪問文件的目錄項,找 到首簇簇號,冉找到該簇號對應的 FAT項,在其中找到下一簇的簇號,冉在下 一簇對應的FAT項中找到再下一簇的簇號.一直到在FAT項中找到有文件最后一 簇的標志,我們對該文件的查找才結束。(當然也可能在首簇對應的FAT中該文 件就結束了)這樣就形成了一個鏈,我們把它稱為盤簇鏈。簡要介紹一下FAT12系統,FAT12現在只用于軟盤,因為是每個 FAT占12

18、位所以是每2個字節含有3個FAT項,我們來看看FAT12系統在尋找簇鏈的過 程:將10進制簇號*1.5并取整,該值為FAT相對位移,在該處存放的是下一 簇的簇號,以此類推。一個問題:到底每簇占多少扇區合適?文件所占簇數為:文件占用的簇數=文件長度/每簇所占空間取整+1文件在最后一個簇存放的時候不可能剛好放滿,沒有放滿的空間就浪費了 (就好象我們打電話不可能每個電話都打到 X分59.99秒,即使你通話時間為X 分1秒你也要付出X+1分的電話費),我們可以來計算一下你的FAT系統磁盤空 間浪費的大小:浪費的空間大小=文件個數/2*每簇字節數(平均每個文件浪費半個簇的空間)這樣看來好象簇越小浪費的空

19、間也越小,但是有個矛盾的地方是簇越小FAT所用的空間就會越大,同時簇小了,簇鏈就越長,訪問文件的時間就會加 長,這又是一種資源上的浪費,因此,簇的大小應該是以提高文件的訪問時間 和充分利用磁盤空間為原則的。(三)目錄項的結構在第2個5人丁表(系統一般有兩個同樣的FAT表)后我們可以找到該分區的 根目錄區,在上面有許多目錄項(注意:目錄項并非根目錄才有),讓我們先來 復習一下FAT16的目錄項各個字節的含義:由32個字節構成:00H07Ht件的文件名,其中00H為以下值時有些特定含義:00H表項為空表項E5H文件已被刪除05H實際該字節為的值為E5H 08H0AHe件的擴展名0BH文件屬性8位文

20、件屬性字節含義如下:B7B6未用B5歸檔位B4子目錄(代表該文件是一個目錄或叫文件夾)B3卷標(卷標也解釋為一種特殊的文件)B2系統文件B1隱藏文件B0只讀文件0CH15H FAT16C統保留未用16H17H(統最后修改時間,其中:16H字節的04位是以2秒為增量的秒16H字節的57位和17H字節的02位是分鐘17H字節的37位是小時18H19Ht件最后修改的日期,其中:18H字節04位是天號18H字節57位和19H字節0位是月份19H字節的17位為年號,0119分別代表19802099 1AH1BHC件的起始 簇號(我們在之前已經介紹了)1CH1FHC件的長度(單位為字節)我們知道用在FAT

21、16系統下的文件名有一些弊端,如:文件名最多只能有 8個字符(或4個漢字),擴展名最多有3個字符,不分大小寫,不能用一些特 殊字符等。在FAT32系統這些問題已經得到解決,我們來看看 FAT32系統是如 何解決長文件名問題的。假如在你的電腦中有一個文件名為 abcdefghijklmnopqrstuvwxyz 111111.txt的文件名,那么該文件在磁盤目錄中就占用了 4個已32字節為單位的目錄項,其中有3個目錄項是用來描述長文件名的,有1個目錄項是用來兼容老的FAT系統的,我們來看看例子中前3個用于 描述長文件名的目錄項:43H 31H 00H 31H 00H 31H 00H 31H 00

22、H 31H 00H 0FH 00H 27H 31H 00H 2EH 00H 74H 00H 78H 00H 74H 00H 00H 00H 00H 00H FFH FFH FFH FFH 02H 6EH 00H 6FH 00H 70H 00H 71H 00H 72H 00H 0FH 00H 27H 73H 00H 74H 00H 75H 00H 76H 00H 77H 00H 78H 00H 00H 00H 79H 00H 7AH 00H 01H 61H 00H 62H 00H 63H 00H 64H 00H 65H 00H 0FH 00H 27H 66H 00H 67H 00H 68H 00

23、H 69H 00H 6AH 00H 6BH 00H 00H 00H 6CH 00H 6DH 00H不難看出描述長文件名的目錄項中的一些規則:在每個目錄項的32個字節中,(1)、偏移0H處:代表了長文件描述目錄項 的序號,其中高4位如果為0100則表示此項為最后一個目錄項,低 4位表示此 長文件名的目錄項的序號。如果此長文件名描述目錄只用到了1個目錄項,則此值為41H,如果此值為E5H代表此文件已被刪除;(2)、偏移0BH0CHt:其 值總為0FH 00H; (3)、偏移0D處:該長文件目錄項的標號,同一個長文件目 錄的不同目錄項該值總相同(比如本例中3個目錄項該值都為27H); (4)、偏移 1AH1BHt:該值總為00H 00H; (5)從偏移01H1FHB過前4項提到的字節, 總是一個文件名的ASCII碼接一個00H排列的,如果文件名的ASCII碼在一個 目錄項還未寫完,則會接到下一個目錄項(實際上這些目錄項都是從高到低排列 的)同樣的位置繼續寫,如果已經寫完,則系統會在最后一個ACSII碼后寫00H,最多寫3個00H,如果3個00H寫完后,目錄項還有空余位置,則系統會把這 些位置全部寫上FFH同時FAT32系統還有一個類似

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論