易強
[摘要]虛擬還原技術是一種廣泛使用的數據保護方式,它工作在系統的最底層,先于操作系統;它備份的數據并不是數據區的數據,只是主引導扇區、操作系統引導扇區、文件分配表和目錄區的數據。因為這幾個部分的數據量極小,所以我們完全可以忽略虛擬還原數據保護技術在保存備份數據時所占用的空間和所需要的時間。
[關鍵詞]虛擬還原;數據保護;文件存儲分配。
學校機房、網吧是人員流動大,機器很多的場所。如何對硬盤中現有的操作系統和軟件數據進行保護和還原就成了一個重要的課題。虛擬還原技術工作在系統的最底層,先于操作系統,具有很高的備份和還原速度,同時對用戶完全透明。基于虛擬還原方式的軟件也越來越受到機房管理員的青睞。
一、常用的數據保護方式
從目前的情況來看,系統的保護和還原的方法從原理上來說主要分三類,一是保護,二是還原,三為虛擬還原。具有代表性的三種軟件分別是:各種網管軟件;ghost備份和還原;基于還原精靈的各種數據保護軟件。
(一)系統保護
系統保護,就是防止硬盤的重要信息被破壞,防止注冊表改寫和文件I/O操作等。用戶被置于一個預先設置好的環境中,只能干此軟件系統允許你干的事情,這種方法對用戶的約束太多,局限很大,對操作系統進程的干預也比較多。這是一種被動防御的狀態,水平高點的用戶都能繞過它的防護。同時硬盤上的數據是動態變化的,它不能根據需要恢復到某一個時點的系統內容。
(二)系統還原
系統還原,就是預先將系統內容做好全部或部分備份,當系統崩潰或者混亂需要重新安裝的時候,將原來的備份進行恢復,將系統內容還原到備份那個時點的內容。這種方法不干預用戶的操作,不干擾系統進程。但它需要占用很大硬盤空間和大量的還原時間,阻礙了它在實際工作中的應用,除了家庭用戶和一些重要部門對重要數據用這個方法以外,學校機房和網吧等一般都不采用這種辦法。
(三)虛擬還原
虛擬還原的工作原理實際上是基于系統保護的,但它的保護做在系統的最底層,先于操作系統。它對系統進程有一定干擾,但是這個干擾幾乎可以不被察覺。它不干預用戶的任何操作,對使用者來說完全透明。虛擬還原只占用少量硬盤空間,同時它的還原速度也很快,具有系統保護和系統還原的優點,又盡可能避免了它們的一些重要缺點,所以基于虛擬還原方式的軟件越來越受到機房管理員的青睞。
二、虛擬還原的工作原理探討
我們知道,硬盤上最重要的數據區除了BOOT(引導區)外,是ROOT(根目錄)和FAT(文件分配表),ROOT里面記錄的是文件或子目錄的屬性、尺寸、日期以及它的起始簇(軟盤里面是扇區)。FAT表里面記錄的是每個簇的使用分配情況。
當我們向硬盤里面添加一個新文件,OS(操作系統)首先在ROOT里面將文件屬性等填進去,在FAT表里面按一定算法找到一個空簇,將它標記為被該文件占用后,在ROOT里面將這個簇做為起始簇記錄進去,然后將文件內容寫入這個簇。如果文件沒有寫完,系統再在FAT里找一個空簇,將其標記為占用,然后在前一個簇的最后做一個指針向這個新的簇,形成一個單鏈表,接著再在這個新的簇里面繼續寫內容。如此重復直到文件內容完全記錄完畢。最后系統根據占用的總簇數計算出文件尺寸,取出當前時間寫到ROOT里面。
當我們刪除一個文件的時候,系統實際上并不到每個簇去清除內容,而只是把ROOT里面文件名的首字符換成&符號,就是標記這個文件為刪除,然后延著鏈表在FAT表中將該文件占用的所有簇釋放(標記為空),這樣新的文件寫入的時候就可以使用這些被釋放的簇。
當我們改變一個文件的屬性或名字的時候,系統實際只在ROOT里面做一點改動而已。
而子目錄下的文件目錄信息記錄在子目錄所指的第一個簇,實際是個SUBROOT。
實際硬盤的存儲還要復雜得多,比如它的FAT表還有個副表,用作容錯處理等等。
由此我們可以推測虛擬還原軟件的工作流程:
它首先將ROOT、SUBROOT以及FAT表都做個備份。然后,軟件將備份的數據以及它的工作參數(密碼、自動還原時間等)一起保存在硬盤上。這些空間也同時保護起來。
當用戶刪除文件、改名、改文件屬性的時候,系統按正常情況處理,還原軟件不做任何干涉。因為這些操作只針對ROOT和FAT表,并不去動數據區的任何數據。而這兩個表軟件已經備份過,需要的時候完全可以恢復。
最復雜的是添加新文件的情況。為了保護原來的數據,還原軟件不允許在已經保護的簇進行任何的覆蓋操作,即使現在的FAT表里面標記是空的,還原軟件通過對照備份的FAT表,只要這個簇在表里面,它就會要求OS去找一個新的簇。這樣數據區的數據就不會被覆蓋。
但是OS不會知道系統里面已經裝了個RECOVERY(虛擬還原軟件),所以它還會按同樣的算法把同一個簇找出來。這樣的話會形成死循環,無法工作下去。換一種思路,如果RECOVERY在刪除文件的時候也不釋放FAT表,那么OS找新簇的時候就能避開已經保護的簇。或者,RECOVERY根本就是將一個虛假的ROOT,顯示給我們看,讓我們以為文件已經刪除了,其實硬盤上的ROOT它什么也不動。當前盤中所有.COM和.EXE文件目錄登記項中的首簇數都被指向一個特定的區域,實際上就是指向RECOVERY在盤中指定的位置。這也就解釋了為什么基于虛擬還原的硬盤保護系統在安裝時需要劃分保護空間的原因。
當我們要恢復數據的時候就相當簡單了,RECOVERY把備份的ROOT、SUBROOT以及FAT表全部恢復掉即可。
三、結語
由此我們已能確定虛擬還原軟件是用系統保護的方式在工作,而且只是保存了很少量的數據,就能快速恢復破保護的內容。當然,虛擬還原技術也不是萬能的,在實際使用中,將系統保護的權限限制與系統還原的備份功能揉合進虛擬還原軟件的保護功能,是一種不錯的選擇。
參考文獻
施威銘研究室《硬盤玩家實戰》人民郵電出版社;1999年3月版
胡大威《數據結構》西安電子科技大學出版社;2013年1月版
俸遠禎《計算機組成原理》電子工業出版社;1996年4月版
張夷人《微機組裝與維護》清華大學出版社;2003年7月版