史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   資訊系統安全備援防護技術文件 (http://forum.slime.com.tw/f139.html)
-   -   資料恢復基礎知識 (http://forum.slime.com.tw/thread175295.html)

psac 2006-05-24 08:54 PM

資料恢復基礎知識
 
資料恢復基礎知識

說到資料恢復,我們就不能不提到硬碟的資料結構、文件的儲存於原理,甚至作業系統的啟動流程,這些是你在恢硬碟資料時不得不利用的基本知識。即使你不需要恢複數據,理解了這些知識(即使只是稍微多知道一些),對於你平時的電腦操作和套用也是很有說明 的。
我們就從硬碟的資料結構談起吧……
1、硬碟資料結構
剛出廠一塊硬碟,我們是沒有辦法使用的,你需要將它分區、格式化,然後再安裝上作業系統才可以使用。就拿我們一直沿用到現在的Win9x/Me系列來說,我們一般要將硬碟分成主啟始扇區、作業系統啟始扇區、FAT、DIR和Data等五部分(其中只有主啟始扇區是唯一的,其它的隨你的分區數的增加而增加)。
主啟始扇區:主啟始扇區位於整個硬碟的0磁軌0磁柱1扇區,包括硬碟硬碟分區表MBR(Main Boot Record)和分區表DPT(Disk Partition Table)。其中硬碟分區表的作用就是檢查分區表是否正確以及確定哪個分區為啟始分區,並在程序結束時把該分區的啟動程序(也就是作業系統啟始扇區)調入記憶體加以執行。至於分區表,很多人都知道,以80H或00H為開始標誌,以55AAH為結束標誌,共64字元,位於本扇區的最末端。值得一提的是,MBR是由分區程序(例如DOS的Fdisk.exe)產生的,不同的作業系統可能這個扇區是不盡相同。如果你有這個意向也可以自己去編寫一個,只要它能完成前述的工作即可,這也是為什麼能實現多系統啟動的原因(說句題外話:正因為這個硬碟分區表容易編寫,所以才出現了很多的啟始區病毒)。
作業系統啟始扇區: OBR(OS Boot Record)即作業系統啟始扇區,通常位於硬碟的0磁軌1磁柱1扇區(這是對於DOS來說的,對於那些以多重啟始方式啟動的系統則位於相應的主分區/延展分區的第一個扇區),是作業系統可直接訪問的第一個扇區,它也包括一個啟始程序和一個被稱為BPB(BIOS Parameter Block)的本分區參數記錄表。其實每個邏輯分區都有一個OBR,其參數視分區的大小、作業系統的類別而有所不同。啟始程序的主要工作是判斷本分區根目錄前兩個文件是否為作業系統的啟始文件(例如MSDOS或者起源於MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一個文件讀入記憶體,並把控制權交予該檔案。BPB參數塊記錄著本分區的起始扇區、結束扇區、文件儲存於格式、硬碟介質描述符、根目錄大小、FAT個數、分配單元(Allocation Unit,以前也稱之為簇)的大小等重要參數。OBR由進階格式化程序產生(例如DOS 的Format.com)。
mbr:
FAT(File Allocation Table)即mbr,是DOS/Win9x系統的文件尋址系統,為了資料安全起見,FAT一般做兩個,第二FAT為第一FAT的制作備份, FAT區緊接在OBR之後,其大小由本分區的大小及文件分配單元的大小決定。
FAT的格式歷來有很多選項,Microsoft 的DOS及Windows採用我們所熟悉的FAT12、FAT16和FAT32格式,但除此以外並非沒有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。
目錄區:
DIR是Directory即根目錄區的簡寫,DIR緊接在第二FAT表之後,只有FAT還不能定位文件在磁牒中的位置,FAT還必須和DIR配合才能準確定位文件的位置。DIR記錄著每個文件(目錄)的起始單元(這是最重要的)、文件的內容等。定位文件位置時,作業系統根據DIR中的起始單元,結合FAT表就可以知道文件在磁牒的具體位置及大小了。在DIR區之後,才是真正意義上的資料儲存於區,即DATA區。
資料區:
DATA雖然佔據了硬碟的絕大部分空間,但沒有了前面的各部分,它對於我們來說,也只能是一些枯燥的二進制程式碼,沒有任何意義。在這裡有一點要說明的是,我們通常所說的格式化程序(指進階格式化,例如DOS下的Format程序),並沒有把DATA區的資料清除,只是重寫了FAT表而已,至於分區硬碟,也只是修改了MBR和OBR,絕大部分的DATA區的資料並沒有被改變,這也是許多硬碟資料能夠得以修復的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破壞的話,也足夠咱們那些所謂的DIY老鳥們忙乎半天了……需要提醒大家的是,如果你經常整理磁牒,那麼你的資料區的資料可能是連續的,這樣即使MBR/FAT/DIR全部壞了,我們也可以使用磁牒編輯軟體(比如DOS下的DiskEdit),只要找到一個文件的起始儲存位置,那麼這個文件就有可能被恢復(當然了,這需要一個前提,那就是你沒有覆蓋這個文件……)。
2、硬碟分區方式
我們平時說到的分區概念,不外乎三種:主分區、延展分區和邏輯分區。
主分區是一個比較單純的分區,通常位於硬碟的最前面一塊區域中,構成邏輯C磁牒。在主分區中,不允許再建立其它邏輯磁牒。
延展分區的概念則比較複雜,也是造成分區和邏輯磁牒混淆的主要原因。由於硬碟僅僅為分區表保留了64個字元的儲存於空間,而每個分區的參數佔據16個字元,故主啟始扇區中總計可以儲存於4個分區的資料。作業系統只允許儲存於4個分區的資料,如果說邏輯磁牒就是分區,則系統最多只允許4個邏輯磁牒。對於具體的套用,4個邏輯磁牒往往不能滿足實際需求。為了建立更多的邏輯磁牒供作業系統使用,系統引入了延展分區的概念。
所謂延展分區,嚴格地講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的游標,這種游標結構將形成一個單向鏈表。這樣在主啟始扇區中除了主分區外,僅需要儲存於一個被稱為延展分區的分區資料,通過這個延展分區的資料可以找到下一個分區(實際上也就是下一個邏輯磁牒)的起始位置,以此起始位置類推可以找到所有的分區。無論系統中建立多少個邏輯磁牒,在主啟始扇區中通過一個延展分區的參數就可以逐個找到每一個邏輯磁牒。
需要特別注意的是,由於主分區之後的各個分區是通過一種單向鏈表的結構來實現連接的,因此,若單向鏈表發生問題,將導致邏輯磁牒的丟失掉。
3、資料儲存於原理
既然要進行資料的恢復,當然資料的儲存於原理我們不能不提,在這之中,我們還要介紹一下資料的移除和硬碟的格式化相關問題……文件的讀取作業系統從目錄區中讀取文件訊息(包括檔案名、後面名、文件大小、修改日期和文件在資料區儲存的第一個簇的簇號),我們這裡假設第一個簇號是0023。作業系統從0023簇讀取相應的資料,然後再找到FAT的0023單元,如果內容是文件結束標誌(FF),則表示文件結束,否則內容儲存資料的下一個簇的簇號,這樣重複下去直到遇到文件結束標誌。
文件的寫入
當我們要儲存文件時,作業系統首先在DIR區中找到空區寫入檔案名、大小和新增時間等相應訊息,然後在Data區找到閒置空間將文件儲存,並將Data區的第一個簇寫入DIR區,其餘的動作和上邊的讀取動作差不多。
文件的移除
看了前面的文件的讀取和寫入,你可能沒有往下邊繼續看的信心了,不過放心,Win9x的文件移除工作卻是很簡單的,簡單到只在目錄區做了一點小改動——將目錄區的文件的第一個字串改成了E5就表示將改文件移除了。
Fdisk和Format的一點小說明
和文件的移除類似,利用Fdisk移除再建立分區和利用Format格式化邏輯磁牒(假設你格式化的時候並沒有使用/U這個無條件格式化參數)都沒有將資料從DATA區直接移除,前者只是改變了分區表,後者只是修改了FAT表,因此被誤移除的分區和誤格式化的硬碟完全有可能恢復……
系統啟動流程
各種不同的作業系統啟動流程不盡相同,我們這裡以Win9x/DOS的啟動流程為例。
第一階段:系統電源自我檢驗POST程序。POST是(Power On Self Test)的縮寫,也就是電源自我檢驗的意思,微機執行記憶體FFFF0H處的程序(這裡是一段固定的ROM程序),對系統的硬體(包括記憶體)進行檢查。
第二階段:讀取分區記錄和啟始記錄。當微機檢查到硬體正常並與CMOS設定相符後,按照CMOS設定從相應設備啟動(我們這裡假設從硬碟啟動),讀取硬碟的分區記錄(DPT)和硬碟分區表(MBR)。
第三階段:讀取DOS啟始記錄。微機正確讀取分區記錄和硬碟分區表後,如果硬碟分區表和分區表校驗正確,則執行硬碟分區表並進一步讀取DOS啟始記錄(位於每一個主分區的第一個扇區),然後執行該DOS啟始記錄。
第四階段:安裝載入系統隱含文件。將DOS系統的隱含文件IO.SYS入記憶體,載入基本的文件系統FAT,這時候一般會出現Starting Windows 9x...的標誌,IO.SYS將MS.SYS讀入記憶體,並處理System.dat和User.dat文件,載入磁牒壓縮程序。
第五階段:實DOS模式組態。系統隱含文件安裝載入完成,微機將執行系統隱含文件,並執行系統組態文件(Config.sys),載入Config.sys中定義的各種驅動程式。
第六階段:調入指令解釋程序(Command.com)。系統安裝載入指令管理程序,以便對系統的各種操作指令進行協調管理(我們所使用的Dir、Copy等內部指令就是由Command.com提供的)。
第七階段:執行批次處理文件(Autoexec.bat)。微機將一步一步地執行批次處理文件中的各條指令。
第八階段:載入Win.com。Win.com負責將Windows下的各種驅動程式和啟動執行文件加以執行,至此啟動完畢。
資料恢復的基礎知識到此就給你介紹得差不多了。如果你領會了以上的這些知識,相信加上工具軟體的輔助,恢復你丟失掉的資料簡直是輕而易舉,這裡就不再多說,我們走入真正的實戰操作吧……


所有時間均為台北時間。現在的時間是 05:41 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1