許程遠(yuǎn) 滕德鋒 黃秀娟(廣西廣播電視技術(shù)中心欽州分中心)
?
淺談FAT32文件系統(tǒng)的數(shù)據(jù)恢復(fù)
許程遠(yuǎn) 滕德鋒 黃秀娟
(廣西廣播電視技術(shù)中心欽州分中心)
[摘 要]在日常生活和工作中,特別是在廣播電視行業(yè),大量地使用了各種存儲(chǔ)媒介用來存儲(chǔ)音視頻文件、服務(wù)器系統(tǒng)數(shù)據(jù)、工作資料等等。但是在使用過程中,經(jīng)常會(huì)遇到由于病毒破壞或用戶的誤操作原因,造成數(shù)據(jù)丟失的情況,給用戶帶來了巨大的損失,甚至可能會(huì)影響到廣播電視發(fā)射臺(tái)站的安全播出。本文通過對(duì)文件系統(tǒng)原理的分析,指出了數(shù)據(jù)恢復(fù)的可行性,并簡(jiǎn)要介紹使用WinHex軟件手動(dòng)恢復(fù)數(shù)據(jù)的操作過程。
[關(guān)鍵詞]FAT文件系統(tǒng);數(shù)據(jù)恢復(fù);WinHex軟件
硬盤由很多盤片組成,每個(gè)盤片的每個(gè)面都有一個(gè)讀寫磁頭。如果有N個(gè)盤片,就有2N個(gè)面,對(duì)應(yīng)2N個(gè)磁頭(Heads),從0、1、2開始編號(hào)。每個(gè)盤片被劃分成若干個(gè)同心圓磁道。這樣每個(gè)盤片的半徑均為固定值R的同心圓再邏輯上形成了一個(gè)以電機(jī)主軸為軸的柱面(Cylinders),從外至里編號(hào)為0、1、2……每個(gè)盤片上的每個(gè)磁道又被劃分為幾十個(gè)扇區(qū)(Sector),通常的容量是512byte,并按照一定規(guī)則編號(hào)為1、2、3……形成Cylinders×Heads×Sector個(gè)扇區(qū)。這三個(gè)參數(shù)即是硬盤的物理參數(shù)。
MBR,即主引導(dǎo)記錄,位于硬盤的0柱面0磁頭1扇區(qū),也就是LBA尋址方式的第0扇區(qū)。計(jì)算機(jī)加電自檢后,BIOS就會(huì)跳轉(zhuǎn)到MBR中的第一條指令。將系統(tǒng)的控制權(quán)交由MBR來執(zhí)行。在總共512字節(jié)的數(shù)據(jù)中,MBR的引導(dǎo)代碼占了其中的前446個(gè)字節(jié),隨后的64個(gè)字節(jié)為磁盤分區(qū)表,最后的兩個(gè)字節(jié)“55 AA”是分區(qū)有效結(jié)束標(biāo)志。如圖1所示。
圖1:WinHex軟件打開硬盤MBR扇區(qū)
圖2:FAT32分區(qū)結(jié)構(gòu)
DBR, 即操作系統(tǒng)引導(dǎo)記錄區(qū)。DBR分為兩部分:引導(dǎo)程序和BPB。其中引導(dǎo)程序完成系統(tǒng)文件的定位與裝載,而BPB用來描述本分區(qū)的磁盤信息。它包含邏輯格式化時(shí)使用的參數(shù),可供系統(tǒng)計(jì)算磁盤上的文件分配表,目錄區(qū)和數(shù)據(jù)區(qū)的起始地址。
保留扇區(qū),是指從分區(qū)DBR扇區(qū)開始的僅為系統(tǒng)所有的扇區(qū),包括DBR扇區(qū)。FAT32中,DBR偏移0x34 占2字節(jié)的數(shù)據(jù)指明了DBR備份扇區(qū)所在,一般為0x06,即第6扇區(qū)。當(dāng)DBR扇區(qū)被破壞導(dǎo)致分區(qū)無法訪問時(shí)??梢杂玫?扇區(qū)的原備份替換第0扇區(qū)來找回?cái)?shù)據(jù)。
FAT區(qū)域,它包含有兩份文件分配表,這是出于系統(tǒng)冗馀考慮。它是分區(qū)信息的映射表。在FAT文件系統(tǒng)中,文件的存儲(chǔ)依照FAT表制定的簇鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來進(jìn)行。
根目錄區(qū)域,它是在根目錄中存儲(chǔ)文件和目錄信息的目錄表。在FAT32下它可以存在分區(qū)中的任何位置。
數(shù)據(jù)區(qū)域,這是實(shí)際的文件和目錄數(shù)據(jù)存儲(chǔ)的區(qū)域,它占據(jù)了分區(qū)的絕大部分。通過簡(jiǎn)單地在FAT中添加文件鏈接的個(gè)數(shù)可以任意增加文件大小和子目錄個(gè)數(shù)。
在計(jì)算機(jī)使用過程中,數(shù)據(jù)丟失的最常見原因有以下幾點(diǎn):1. 病毒等惡意程序破壞;2.操作失誤導(dǎo)致誤刪文件或誤格式化磁盤;3.計(jì)算機(jī)運(yùn)行中突然停電,很容易造成磁盤丟失數(shù)據(jù),甚至?xí)p壞硬件;4.磁盤出現(xiàn)壞道,或硬件損壞。
數(shù)據(jù)是以二進(jìn)制的方式存儲(chǔ)在磁盤上的,一般的刪除、格式化等操作都只是對(duì)文件目錄、磁盤分區(qū)表等進(jìn)行操作,并不會(huì)直接刪除文件數(shù)據(jù),這就為數(shù)據(jù)恢復(fù)提供了可行性。數(shù)據(jù)能夠恢復(fù)的前提條件:1.丟失的數(shù)據(jù)沒有被覆蓋。如果數(shù)據(jù)丟失后,我們?nèi)匀粚?duì)磁盤進(jìn)行寫入操作,原來存儲(chǔ)這些文件的數(shù)據(jù)區(qū)一旦被新寫入的文件覆蓋,那么該文件將不能被恢復(fù)。2.硬盤沒有被低級(jí)格式化。低級(jí)格式化會(huì)對(duì)硬盤的每一個(gè)扇區(qū)、磁道以及柱面的信息進(jìn)行編排,如果對(duì)磁盤進(jìn)行低級(jí)格式化,那么原來磁盤上的所有信息都將被清除,且不可恢復(fù)。3.磁盤不存在物理?yè)p壞,存儲(chǔ)介質(zhì)本身?yè)p壞了,數(shù)據(jù)將無法恢復(fù)。
1服務(wù)器系統(tǒng)分區(qū)出錯(cuò),影響安全播出
發(fā)射臺(tái)站遠(yuǎn)程監(jiān)控系統(tǒng)的主控電腦系統(tǒng)崩潰死機(jī),重啟后不能進(jìn)入系統(tǒng),提示“No System” 。將硬盤拆下裝到其他電腦上,在磁盤管理器中查看各分區(qū)信息正常,但是不能進(jìn)入系統(tǒng)分區(qū),提示磁盤未格式化(如圖3所示)。因該硬盤安裝有發(fā)射臺(tái)站的發(fā)射機(jī)控制系統(tǒng)、信號(hào)源系統(tǒng)、動(dòng)力系統(tǒng),為不影響安全播出,應(yīng)盡快在現(xiàn)場(chǎng)恢復(fù)硬盤數(shù)據(jù)。
圖3:打開U盤提示需要格式化磁盤
分析:通過磁盤管理器查看各分區(qū)信息正常,只有系統(tǒng)分區(qū)出現(xiàn)問題,因此懷疑是系統(tǒng)分區(qū)的DBR扇區(qū)數(shù)據(jù)異常導(dǎo)致出現(xiàn)問題。使用WinHex軟件打開磁盤第63扇區(qū)(系統(tǒng)分區(qū)DBR所在扇區(qū)),使用DBR模板查看該扇區(qū)數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)與DBR模板不匹配,由此可以確認(rèn)問題。
解決方法:FAT32文件系統(tǒng)格式化后,會(huì)在每個(gè)分區(qū)0扇區(qū)生成DBR,并且在第6扇區(qū)生成一個(gè)一樣備份DBR,當(dāng)DBR受損時(shí)可以用備份的DBR來進(jìn)行恢復(fù)。系統(tǒng)分區(qū)的DBR緊跟在MBR保留扇區(qū)后,即第63扇區(qū),由此可計(jì)算出備份DBR在第69扇區(qū),所以只要把第69扇區(qū)數(shù)據(jù)還原到第63扇區(qū)即可。
實(shí)施步驟:(1)為防止對(duì)磁盤數(shù)據(jù)造成二次破壞,使用WinHex軟件的磁盤克隆工具對(duì)原磁盤進(jìn)行全盤鏡像,并復(fù)制保存一份副本。如圖4所示:
圖4
(2)使用WinHex軟件打開需要修復(fù)的鏡像文件,然后在WinHex軟件中打開磁盤鏡像文件,再將鏡像文件轉(zhuǎn)化為磁盤模式來操作。使用MBR模板查看第0扇區(qū),發(fā)現(xiàn)MBR引導(dǎo)代碼與分區(qū)表正常。接下來檢查系統(tǒng)分區(qū)DBR,于是使用“跳轉(zhuǎn)至扇區(qū)”工具打開第63扇區(qū),使用DBR模板查看數(shù)據(jù),發(fā)現(xiàn)DBR數(shù)據(jù)異常。如圖5所示:
圖5
(3)繼續(xù)使用跳轉(zhuǎn)工具打開第69扇區(qū),檢查發(fā)現(xiàn)備份DBR數(shù)據(jù)正常。使用“定義選塊”工具復(fù)制整個(gè)扇區(qū)數(shù)據(jù)(55 AA為結(jié)束標(biāo)志),然后再跳轉(zhuǎn)回到第63扇區(qū),把復(fù)制的數(shù)據(jù)寫入到第63扇區(qū),點(diǎn)擊保存確認(rèn)后即可修復(fù)系統(tǒng)分區(qū)DBR數(shù)據(jù)。將硬盤重新接回到主控程序電腦,開機(jī)后可以直接進(jìn)入操作系統(tǒng),并且硬盤數(shù)據(jù)沒有丟失,讀取正常。
2恢復(fù)誤刪除的Word文件。
存儲(chǔ)于硬盤中的WORD文件“開關(guān)電源在調(diào)頻廣播發(fā)射機(jī)中的應(yīng)用.doc”由于被誤刪除無法找回。
分析:FAT32分區(qū)下文件刪除只是對(duì)文件目錄項(xiàng)的首字節(jié)置為“E5”,F(xiàn)AT對(duì)應(yīng)的簇鏈置0,而數(shù)據(jù)區(qū)沒有任何改變。因此可以通過搜索文件的關(guān)鍵詞來定位到文件數(shù)據(jù)區(qū)。此外,WORD文件以是“D0CF11E0A1B11AE1”作為文件頭,可以通過搜索此特征碼來確定文件數(shù)據(jù)的開頭,再估算WORD文件大?。梢员M量比原文件大),從而提取出文件。
實(shí)施步驟:
(1)為防止對(duì)磁盤數(shù)據(jù)造成二次破壞,使用WinHex軟件的磁盤克隆工具對(duì)原磁盤進(jìn)行全盤鏡像,并復(fù)制保存一份副本。然后在WinHex軟件中打開磁盤鏡像文件,再將鏡像文件轉(zhuǎn)化為磁盤模式來操作。這樣就避免了直接操作磁盤可能對(duì)其他數(shù)據(jù)造成的損害。
(2)由于Word文檔的中文采用Uniconde編碼,因此新建TXT文檔,輸入關(guān)鍵詞“開關(guān)電源在調(diào)頻廣播發(fā)射機(jī)中的應(yīng)用”。并另存為Uniconde編碼格式,文件名text.txt。使用WinHex軟件打開該文件,得到關(guān)鍵詞的十六進(jìn)制表示,開始的“FF FE”為字符編碼順序。如圖6所示:
圖6
(3)使用WinHex軟件的“搜索十六進(jìn)制數(shù)值”命令,在磁盤鏡像文件中搜索關(guān)鍵詞“開關(guān)電源在調(diào)頻廣播發(fā)射機(jī)中的應(yīng)用”的十六進(jìn)制數(shù)值,從而定位到WORD文件的數(shù)據(jù)區(qū)。
(4)接著繼續(xù)向上搜索WORD文件頭特征碼“D0CF11E0A1B11AE1”,從而確定文件數(shù)據(jù)區(qū)的第一個(gè)扇區(qū),再根據(jù)文件的大小設(shè)置一個(gè)估計(jì)的結(jié)束偏移地址。最后通過復(fù)制選塊至新文件功能,將文件保存為“提取的文件.doc”。如圖7所示:
(5)用WORD打開剛提取出來的文件,發(fā)現(xiàn)就是我們所要恢復(fù)的文件,內(nèi)容完整,格式正確?;謴?fù)好的文件見圖8:
圖7
圖8
WinHex軟件是一款在Windows下運(yùn)行的十六進(jìn)制編輯軟件,具有強(qiáng)大的數(shù)據(jù)恢復(fù)功能,能自動(dòng)分析分區(qū)鏈和文件簇鏈,能對(duì)硬盤進(jìn)行不同方式的備份,甚至克隆整個(gè)硬盤。但數(shù)據(jù)恢復(fù)本身就是一項(xiàng)復(fù)雜的工程,這就需要我們對(duì)文件系統(tǒng)有較深刻的了解,才能很好的利用各種軟件工具來完成在不同情況下的數(shù)據(jù)恢復(fù)。本文只是通過幾個(gè)簡(jiǎn)單案例對(duì)FAT32文件系統(tǒng)的數(shù)據(jù)恢復(fù)作簡(jiǎn)單介紹,這只是作為突發(fā)情況下的應(yīng)急手段,并不是保護(hù)數(shù)據(jù)安全的常規(guī)措施。為了做到數(shù)據(jù)安全萬無一失,這就要求我們平時(shí)養(yǎng)成及時(shí)備份數(shù)據(jù)的習(xí)慣,對(duì)于系統(tǒng)服務(wù)器就要做好磁盤陣列,雙機(jī)熱備、統(tǒng)一存儲(chǔ)等安全措施,對(duì)于重要影視頻資料就要采取多種存儲(chǔ)媒介備份,做到永久保存。
參考文獻(xiàn):
〔1〕戴世劍,涂彥暉. 數(shù)據(jù)恢復(fù)技術(shù)〔M〕.北京:電子工業(yè)出版社,2005
〔2〕宋群生,宋亞瓊. 硬盤扇區(qū)讀寫技術(shù)——修復(fù)硬盤與恢復(fù)文件〔M〕.北京:機(jī)械工業(yè)出版社,2004