期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘要:本文提出了一種微機文件系統的備份和恢復技術,其特點在于自動快捷,無須軟盤或其它貯存介質,占用資源少,給用戶在硬盤崩潰時恢復系統帶來了希望。
關鍵字:FAT表 文件系統 備份 數據安全 災難恢復
2 備份和恢復技術簡介
2.1 備份的重要性
備份是保證數據安全的一種必不可少的手段。在采用自動化進行管理的重要部門備份都是一個必不可少的環節。對于個人電腦用戶,經常性的對重要數據進行備份也是一個良好的習慣。然而,常常有不少用戶忽略了這一環節,等到數據丟失時,才痛心疾首,悔不埃言。1999年4月26日的全球CIH病毒大發作令很多用戶痛失數據,這個慘痛的教訓也提醒大家在數字信息時代,數據備份的重要性。
2.2 常見備份技術
從備份和恢復的技術角度和占用貯存空間考慮,我們可以把備份分成兩種,一種是保存數據內容本身的一份或多份拷貝或者是部分冗余恢復信息,另一種就是保存數據在貯存體上組織信息結構的拷貝。
前一種技術有各種備份技術和手段,諸如雙機熱備份、RAD磁盤冗余陣列等,都得到了廣泛的應用。這些技術都是針對企業應用的,對于個人用戶而言,因為成本和維護技術等問題,并不適用。
后一種技術對于個人用戶就用得比較多了,比如一些殺毒軟件都會提示用戶用軟盤保存系統關鍵信息,用于遭受病毒破壞時,恢復系統。
2.3 個人用戶的備份技術
對于個人用戶而言,熱備份等技術不適合,一般也就是把重要數據刻成光盤,在硬盤上保留多個拷貝,在硬盤的不用分區上保留拷備,用額外的硬盤或移動硬盤保存重要文件等。另外就是采用一些軟件提供的系統關鍵數據保存功能。本文所要討論的正是屬于上述第二種的備份技術。
3 計算貯存系統——FAT文件系統
微機上最常用的DOS/WINDOWS系統支持的文件系統主要是FAT16/FAT32系統,本文也是針對這種文件系統討論這種備份技術,另外軟盤上的FAT12系統已經很少用,這里不作討論。
對于FAT系統而言,一個硬盤上的分區被格式化為獨立的一個系統,可以分為四個部分:引導區、FAT表區、根目錄區、數據區。FAT16系統引導區(稱為BOOT區)占一個扇區,包括引導記錄和有關磁盤的系統參數(BPB表),FAT表區緊隨其后,所占扇區數根據分區大小而不同,在BPB表中有一項指定了每個FAT所占扇區數。FAT表區包括兩份FAT表,兩份FAT表在正常情況下應始終保持一致。
再接著便是根目錄區(ROOT)了,根目錄區所占扇區數也由BPB表中指定。目錄區每一項32個字節,包括了有關文件和目錄的名稱、屬性、長度等的信息,如果是長文件名則一個文件的記錄要占幾個目錄項。根目錄區后面便是數據區了。FAT32系統和FAT16系統結構基本一樣,只是FAT表每一項的位數不同,一個是32位一個是16位,另外BPB表的參數項位置有所變化,主要是針對大硬盤而改變的。下面再討論一下FAT表的結構,以16位FAT表為例,FAT表以16位兩個字節為一項,開始兩項為FFF8,FFFF作為FAT表的標志,接下去的每一項都代表一個簇的硬盤空間,所謂簇是DOS/WINDOWS系統中磁盤空間的一種單位,一個簇由物理上連續的若干個扇區組成,具體每簇包括多少扇區也在BPB表中有記錄,根據硬盤分區大小而不同,文件的空間分配以簇為基本單位,一個文件不管大小將至少分配一簇。數據區開始簇號為2,也就是FAT表中第2項所代表的(第0項和第1項作為FAT表標志)。數據區每一簇空間都對應于FAT表中的一項,當FAT表中對應的一項為0時則表示那一簇硬盤空間是空閑的,還未被文件占用。一個文件可能在磁盤上占用好幾簇的空間,這幾塊空間分布可能并不是連續的,那如何記錄一個文件存放在磁盤的哪些地方呢?這就要綜合目錄表和FAT表的信息了。前面已經說過,一個文件在目錄表中占有一項(長文件名則占多項),存貯文件的有關信息,其中有一項就是文件的首簇號,也就文件開始的存放地址。如果文件在一簇空間中容不下,就要看FAT表了,FAT表中的某一項如果不是空閑的,則是記錄了文件占用空間的下一個簇號,依次類推,一個文件的所占用的簇號將形成一個鏈表,而文件最后一簇對應的FAT表項則記錄了一個EOF標志FFFF,表示文件結束,相當于鏈表的尾結點。
格式化硬盤時,操作系統會自動根據硬盤分區大小選擇FAT系統的簇大小,比如4K,8K等,所以在硬盤上,1個簇里面的內容肯定是連續的,而一個文件由若簇構成,可以分布在整個文件系統各個地方。
FAT表是文件系統關鍵的信息,把保存了文件是如何由一個一個不連續的簇按順序鏈接起來,如果丟失了FAT表信息,則只有一堆混亂的數據,無法構成文件, 現有一些恢復軟件在假設文件是連續存放的情況下可以嘗試恢復。
4 基于關鍵區的單機自備份技術
4.1 一般FAT文件系統關鍵區備份原理與局限
從以上討論可以看出,對于FAT文件系統,BOOT區、FAT區、ROOT區都是系統的關鍵區,里面記錄有關文件系統的重要數據,一旦這些區域被破壞,即使文件本身數據還在磁盤上,也很難找到,因為丟失了索引,就不知道文件占用哪些物理空間了,尤其對于二進制文件。些外,硬盤的主引導區也是關鍵區,它存放了整個硬盤的主要分區信息。而這些區域中最關鍵的是FAT區,它記錄了文件的具體分布位置。其它區的如主引導區,BOOT區的數據還可能根據分析推算出來,而根目錄丟失,還可以通過直接查找子目錄表來找回下面的文件數據。而FAT表信息一旦丟失就難于恢復了。事實上這樣區域由于位于最前面,最容易遭到破壞,病毒也常常只攻擊這些區域。如CIH病毒,破壞硬盤是便是從頭到尾用隨機數據來寫硬盤,主引導扇區,C盤的BOOT區、FAT區、ROOT區便首當其沖遭到破壞。現實中遇到的大部分文件系統無法訪問的問題都只是這樣系統關鍵區的信息被破壞,而文件系統中大部分文件的本身數據不太可能被全部破壞,這里所說破壞就是指被清零或被其它數據所覆蓋。一些磁盤工具已經提供了備份這些關鍵區的功能,如Norton磁盤工具。這些工具通過制作緊急修復軟盤把系統關鍵區數據備份到軟盤上,在系統崩潰時用來恢復系統。這確實是一種有效的手段。
4.2 自備份和自鏈接文件
此文所討論的技術,基于兩點關鍵:1.開機備份和定時備份. 2.自鏈接文件
基于4.1中所討論的局限,軟件采用開機自動運行的方式,它將定時將系統的關鍵區包括分區表、BOOT區、FAT表、ROOT表保存下來放到一個文件里。這樣的文件可以有多個,輪流恢蓋使用。比如每隔一小時備份一次,采用5個文件,第1個小時寫文件1,第2個小時寫文件2,依次到第5個小時,寫文件5,第6個小時再寫文件1,恢蓋5個小時前的數據。文件中同時會記下備份的時間序號。
那么如果文件系統被破壞了,所以文件都看不到了,包括這些備份文件,又怎么能利用它們恢復系統呢?這里采用辦法就是自鏈接文件。所謂自鏈接文件,以文件系統的最小分配單元--簇為一個塊結構,這個結構頭部有特殊標志和這一塊在整個文件中的序號。
4.3 恢復過程
當FAT文件系統關鍵區數據被破壞,索引信息丟失,無法從FAT表中得到備份文件所占的數據塊時,采用直接在磁盤上從頭到尾查找,以文件簇大小為單位讀取磁盤塊,找到有頭部標志數據扇區,計算校驗和,確定屬于備份文件的塊,把所有的塊找到后,就可以根據其中的序號順序連接起來,從而把整個文件恢復出來。把所有的備份文件恢復出來以后就可以用其中最新的并且校驗和無誤的文件來恢復系統的關鍵信息,從而恢復整個文件系統。一般來說,只要大部分數據沒有被覆蓋,就能恢復大部分文件。
一般硬盤格式化時用戶常常會分幾個分區,備份軟件可以再在不同分區上存放多份備份文件,從而使恢復成功概率更高。因為一般破壞可能集中在硬盤的某一區域,特別是頭部,那么即使第一個分區的備份文件數據被破壞了,也能找到其它分區的備份文件。
5 小結
本文討論了一種保護個人電腦數據安全性的方法,利用這種方法,在不增加硬件成本和時間成本的情況下,可以大大提高文件系統破壞以后的數據恢復成功的概率。
6 參考文獻
[1]《淺析FAT32文件系統》計算機與數字工程 2005年01期 張明亮 , 張宗杰
[2]《FAT32文件分配格式及對系統的影響》機械設計與制造 2000年第03期 鄭寶玲