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