天才教育網(wǎng)合作機構(gòu)>

東莞維修培訓(xùn)網(wǎng)

歡迎您!
朋友圈

400-850-8622

全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:學(xué)校資訊 > 數(shù)據(jù)恢復(fù)基礎(chǔ)知識

數(shù)據(jù)恢復(fù)基礎(chǔ)知識

日期:2006-10-19 00:00:00     瀏覽:255    來源:東莞維修培訓(xùn)網(wǎng)
說到數(shù)據(jù)恢復(fù),我們就不能不提到硬盤的數(shù)據(jù)結(jié)構(gòu)、文件的存儲原理,甚至操作系統(tǒng)的啟動流程,這些是你在恢復(fù)硬盤數(shù)據(jù)時不得不利用的基本知識。即使你不需要恢復(fù)數(shù)據(jù),理解了這些知識(即使只是稍微多知道一些),對于你平時的電腦操作和應(yīng)用也是很有幫助的。 
  我們就從硬盤的數(shù)據(jù)結(jié)構(gòu)談起吧…… 
  硬盤數(shù)據(jù)結(jié)構(gòu) 
  初買來一塊硬盤,我們是沒有辦法使用的,你需要將它分區(qū)、格式化,然后再安裝上操作系統(tǒng)才可以使用。就拿我們一直沿用到現(xiàn)在的 Win9x/Me 系列來說,我們一般要將硬盤分成主引導(dǎo)扇區(qū)、操作系統(tǒng)引導(dǎo)扇區(qū)、 FAT 、 DIR 和 Data 等五部分(其中只有主引導(dǎo)扇區(qū)是*的,其它的隨你的分區(qū)數(shù)的增加而增加)。 
  主引導(dǎo)扇區(qū) 
  主引導(dǎo)扇區(qū)位于整個硬盤的 0 磁道 0 柱面 1 扇區(qū),包括硬盤主引導(dǎo)記錄 MBR ( Main Boot Record )和分區(qū)表 DPT ( Disk Partition Table )。其中主引導(dǎo)記錄的作用就是檢查分區(qū)表是否正確以及確定哪個分區(qū)為引導(dǎo)分區(qū),并在程序結(jié)束時把該分區(qū)的啟動程序(也就是操作系統(tǒng)引導(dǎo)扇區(qū))調(diào)入內(nèi)存加以執(zhí)行。至于分區(qū)表,很多人都知道,以 80H 或 00H 為開始標(biāo)志,以 55AAH 為結(jié)束標(biāo)志,共 64 字節(jié),位于本扇區(qū)的最末端。值得一提的是, MBR 是由分區(qū)程序(例如 DOS  的 Fdisk.exe )產(chǎn)生的,不同的操作系統(tǒng)可能這個扇區(qū)是不盡相同。如果你有這個意向也可以自己去編寫一個,只要它能完成前述的任務(wù)即可,這也是為什么能實現(xiàn)多系統(tǒng)啟動的原因(說句題外話 : 正因為這個主引導(dǎo)記錄容易編寫,所以才出現(xiàn)了很多的引導(dǎo)區(qū)病毒)。 
  操作系統(tǒng)引導(dǎo)扇區(qū) 
 OBR ( OS Boot Record )即操作系統(tǒng)引導(dǎo)扇區(qū),通常位于硬盤的 0 磁道 1 柱面 1 扇區(qū)(這是對于 DOS 來說的,對于那些以多重引導(dǎo)方式啟動的系統(tǒng)則位于相應(yīng)的主分區(qū) / 擴展分區(qū)的*個扇區(qū)),是操作系統(tǒng)可直接訪問的*個扇區(qū),它也包括一個引導(dǎo)程序和一個被稱為 BPB ( BIOS Parameter Block )的本分區(qū)參數(shù)記錄表。其實每個邏輯分區(qū)都有一個 OBR ,其參數(shù)視分區(qū)的大小、操作系統(tǒng)的類別而有所不同。引導(dǎo)程序的主要任務(wù)是判斷本分區(qū)根目錄前兩個文件是否為操作系統(tǒng)的引導(dǎo)文件(例如 MSDOS 或者起源于 MSDOS 的 Win9x/Me 的 IO.SYS 和 MSDOS.SYS )。如是,就把*個文件讀入內(nèi)存,并把控制權(quán)交予該文件。 BPB 參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲格式、硬盤介質(zhì)描述符、根目錄大小、 FAT 個數(shù)、分配單元( Allocation Unit ,以前也稱之為簇)的大小等重要參數(shù)。 OBR 由高級格式化程序產(chǎn)生(例如 DOS  的 Format.com )。   
文件分配表 
    FAT(File Allocation Table)即文件分配表,是DOS/Win9x系統(tǒng)的文件尋址系統(tǒng),為了數(shù)據(jù)安全起見,F(xiàn)AT一般做兩個,第二FAT為*FAT的備份, FAT區(qū)緊接在OBR之后,其大小由本分區(qū)的大小及文件分配單元的大小決定。關(guān)于FAT的格式歷來有很多選擇,Microsoft 的DOS及Windows采用我們所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非沒有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。 
    目錄區(qū) 
    DIR是Directory即根目錄區(qū)的簡寫,DIR緊接在第二FAT表之后,只有FAT還不能定位文件在磁盤中的位置,F(xiàn)AT還必須和DIR配合才能準(zhǔn)確定位文件的位置。DIR記錄著每個文件(目錄)的起始單元(這是最重要的)、文件的屬性等。定位文件位置時,操作系統(tǒng)根據(jù)DIR中的起始單元,結(jié)合FAT表就可以知道文件在磁盤的具體位置及大小了。在DIR區(qū)之后,才是真正意義上的數(shù)據(jù)存儲區(qū),即DATA區(qū)。 
    數(shù)據(jù)區(qū) 
    DATA雖然占據(jù)了硬盤的絕大部分空間,但沒有了前面的各部分,它對于我們來說,也只能是一些枯燥的二進制代碼,沒有任何意義。在這里有一點要說明的是,我們通常所說的格式化程序(指高級格式化,例如DOS下的Format程序),并沒有把DATA區(qū)的數(shù)據(jù)清除,只是重寫了FAT表而已,至于分區(qū)硬盤,也只是修改了MBR和OBR,絕大部分的DATA區(qū)的數(shù)據(jù)并沒有被改變,這也是許多硬盤數(shù)據(jù)能夠得以修復(fù)的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破壞的話,也足夠咱們那些所謂的DIY老鳥們忙乎半天了……需要提醒大家的是,如果你經(jīng)常整理磁盤,那么你的數(shù)據(jù)區(qū)的數(shù)據(jù)可能是連續(xù)的,這樣即使MBR/FAT/DIR全部壞了,我們也可以使用磁盤編輯軟件(比如DOS下的DiskEdit),只要找到一個文件的起始保存位置,那么這個文件就有可能被恢復(fù)(當(dāng)然了,這需要一個前提,那就是你沒有覆蓋這個文件……)。 
    硬盤分區(qū)方式 
    我們平時說到的分區(qū)概念,不外乎三種:主分區(qū)、擴展分區(qū)和邏輯分區(qū)。 
    主分區(qū)是一個比較單純的分區(qū),通常位于硬盤的最前面一塊區(qū)域中,構(gòu)成邏輯C磁盤。在主分區(qū)中,不允許再建立其它邏輯磁盤。 
    擴展分區(qū)的概念則比較復(fù)雜,也是造成分區(qū)和邏輯磁盤混淆的主要原因。由于硬盤僅僅為分區(qū)表保留了64個字節(jié)的存儲空間,而每個分區(qū)的參數(shù)占據(jù)16個字節(jié),故主引導(dǎo)扇區(qū)中總計可以存儲4個分區(qū)的數(shù)據(jù)。操作系統(tǒng)只允許存儲4個分區(qū)的數(shù)據(jù),如果說邏輯磁盤就是分區(qū),則系統(tǒng)最多只允許4個邏輯磁盤。對于具體的應(yīng)用,4個邏輯磁盤往往不能滿足實際需求。為了建立更多的邏輯磁盤供操作系統(tǒng)使用,系統(tǒng)引入了擴展分區(qū)的概念。  
所謂擴展分區(qū),嚴格地講它不是一個實際意義的分區(qū),它僅僅是一個指向下一個分區(qū)的指針,這種指針結(jié)構(gòu)將形成一個單向鏈表。這樣在主引導(dǎo)扇區(qū)中除了主分區(qū)外,僅需要存儲一個被稱為擴展分區(qū)的分區(qū)數(shù)據(jù),通過這個擴展分區(qū)的數(shù)據(jù)可以找到下一個分區(qū)(實際上也就是下一個邏輯磁盤)的起始位置,以此起始位置類推可以找到所有的分區(qū)。無論系統(tǒng)中建立多少個邏輯磁盤,在主引導(dǎo)扇區(qū)中通過一個擴展分區(qū)的參數(shù)就可以逐個找到每一個邏輯磁盤。 
    需要特別注意的是,由于主分區(qū)之后的各個分區(qū)是通過一種單向鏈表的結(jié)構(gòu)來實現(xiàn)鏈接的,因此,若單向鏈表發(fā)生問題,將導(dǎo)致邏輯磁盤的丟失。 
    數(shù)據(jù)存儲原理 
    既然要進行數(shù)據(jù)的恢復(fù),當(dāng)然數(shù)據(jù)的存儲原理我們不能不提,在這之中,我們還要介紹一下數(shù)據(jù)的刪除和硬盤的格式化相關(guān)問題…… 
    文件的讀取 
    操作系統(tǒng)從目錄區(qū)中讀取文件信息(包括文件名、后綴名、文件大小、修改日期和文件在數(shù)據(jù)區(qū)保存的*個簇的簇號),我們這里假設(shè)*個簇號是0023。 
    操作系統(tǒng)從0023簇讀取相應(yīng)的數(shù)據(jù),然后再找到FAT的0023單元,如果內(nèi)容是文件結(jié)束標(biāo)志(FF),則表示文件結(jié)束,否則內(nèi)容保存數(shù)據(jù)的下一個簇的簇號,這樣重復(fù)下去直到遇到文件結(jié)束標(biāo)志。 
    文件的寫入 
    當(dāng)我們要保存文件時,操作系統(tǒng)首先在DIR區(qū)中找到空區(qū)寫入文件名、大小和創(chuàng)建時間等相應(yīng)信息,然后在Data區(qū)找到閑置空間將文件保存,并將Data區(qū)的*個簇寫入DIR區(qū),其余的動作和上邊的讀取動作差不多。 
    文件的刪除 
    看了前面的文件的讀取和寫入,你可能沒有往下邊繼續(xù)看的信心了,不過放心,Win9x的文件刪除工作卻是很簡單的,簡單到只在目錄區(qū)做了一點小改動——將目錄區(qū)的文件的*個字符改成了E5就表示將改文件刪除了。 
    Fdisk和Format的一點小說明 
    和文件的刪除類似,利用Fdisk刪除再建立分區(qū)和利用Format格式化邏輯磁盤(假設(shè)你格式化的時候并沒有使用/U這個無條件格式化參數(shù))都沒有將數(shù)據(jù)從DATA區(qū)直接刪除,前者只是改變了分區(qū)表,后者只是修改了FAT表,因此被誤刪除的分區(qū)和誤格式化的硬盤完全有可能恢復(fù)…… 
    系統(tǒng)啟動流程 
    各種不同的操作系統(tǒng)啟動流程不盡相同,我們這里以Win9x/DOS的啟動流程為例。 
*階段:系統(tǒng)加電自檢POST過程。POST是Power On Self Test的縮寫,也就是加電自檢的意思,微機執(zhí)行內(nèi)存FFFF0H處的程序(這里是一段固化的ROM程序),對系統(tǒng)的硬件(包括內(nèi)存)進行檢查。 

第二階段 : 讀取分區(qū)記錄和引導(dǎo)記錄。當(dāng)微機檢查到硬件正常并與 CMOS 設(shè)置相符后,按照 CMOS 設(shè)置從相應(yīng)設(shè)備啟動(我們這里假設(shè)從硬盤啟動),讀取硬盤的分區(qū)記錄( DPT )和主引導(dǎo)記錄( MBR )。 


第三階段 : 讀取 DOS 引導(dǎo)記錄。微機正確讀取分區(qū)記錄和主引導(dǎo)記錄后,如果主引導(dǎo)記錄和分區(qū)表校驗正確,則執(zhí)行主引導(dǎo)記錄并進一步讀取 DOS 引導(dǎo)記錄(位于每一個主分區(qū)的*個扇區(qū)),然后執(zhí)行該 DOS 引導(dǎo)記錄。


第四階段 : 裝載系統(tǒng)隱含文件。將 DOS 系統(tǒng)的隱含文件 IO.SYS 入內(nèi)存,加載基本的文件系統(tǒng) FAT ,這時候一般會出現(xiàn) Starting Windows 9x... 的標(biāo)志, IO.SYS 將 MS.SYS 讀入內(nèi)存,并處理 System.dat 和 User.dat 文件,加載磁盤壓縮程序。 


第五階段 : 實 DOS 模式配置。系統(tǒng)隱含文件裝載完成,微機將執(zhí)行系統(tǒng)隱含文件,并執(zhí)行系統(tǒng)配置文件( Config.sys ),加載 Config.sys 中定義的各種驅(qū)動程序。


第六階段 : 調(diào)入命令解釋程序 (Command.com) 。系統(tǒng)裝載命令管理程序,以便對系統(tǒng)的各種操作命令進行協(xié)調(diào)管理(我們所使用的 Dir 、 Copy 等內(nèi)部命令就是由 Command.com 提供的)。 


第七階段 : 執(zhí)行批處理文件 (Autoexec.bat) 。微機將一步一步地執(zhí)行批處理文件中的各條命令。 


第八階段 : 加載 Win.com 。 Win.com 負責(zé)將 Windows 下的各種驅(qū)動程序和啟動執(zhí)行文件加以執(zhí)行,至此啟動完畢。 
  數(shù)據(jù)恢復(fù)的基礎(chǔ)知識到此就給你介紹得差不多了。如果你領(lǐng)會了以上的這些知識,相信加上工具軟件的輔助,恢復(fù)你丟失的數(shù)據(jù)簡直是輕而易舉,這里就不再多說。