田全紅,達 虎,徐成俊,鄧哲鵬,張生月,肖 珺
(甘肅省計算中心,甘肅 蘭州 730030)
FAT32文件系統數據恢復技術淺析*
田全紅,達 虎△,徐成俊,鄧哲鵬,張生月,肖 珺
(甘肅省計算中心,甘肅 蘭州 730030)
FAT32文件作為Windows操作系統的主流文件被普遍使用。本文對Windows系統下FAT32文件系統的數據恢復進行了分析,介紹FAT32文件系統結構,詳細闡述DBR和FAT表損壞時,利用WinHex軟件結合自身條件進行快速數據恢復過程,。
數據恢復;FAT32;文件分配表
Windows操作系統常采用FAT32和NTFS這兩種文件管理系統來對存儲介質中的數據進行管理操作。伴隨著網絡的快速發展,計算機滲透到我們的日常生活中,尤其在學習和工作中發揮重要的作用。隨著大數據時代的來臨,政府、企事業,甚至我們個人更多的以電子數據的形式存儲重要信息,如此龐大的數據一旦發生誤刪除、丟失、感染病毒或者存儲介質損壞,將帶來嚴重的損失。一方面盡可能的保護好數據和設備,另一方面要求在數據丟失時,盡可能的恢復數據,讓損失降到最小。本文主要研究Windows系統下FAT32文件系統的數據恢復,重點闡述DBR和FAT表損壞時數據恢復過程。
FAT32文件作為Windows操作系統的主流文件,其文件系統主要由MBR、DBR及其保留扇區、FAT1、FAT2和DATA五部分組成[1]。其中MBR一般占用63個扇區,但實際只用1個扇區。DBR一般占用32個扇區,但實際只占用第1和第6扇區,第6扇區作為第1扇區的備份,只有第1扇區起作用。FAT1與FAT2的大小相同,FAT是可變長度的,其長度隨著分區大小、每簇扇區數的變化而變化。在FAT32文件中,把目錄當文件管理,所以沒有獨立的目錄區,這也是FAT32與其它FAT文件的區別。DATA數據區中不僅包含數據部分,由于分區根目錄下的文件及文件夾的目錄項存放在根目錄區中,分區子目錄下的文件及文件夾的目錄項存放在子目錄區中,所以根目錄區和子目錄區都在數據區中。
1.1 主引導記錄
硬盤的第 1個扇區叫 MBR (Master Boot Record)扇區,為主引導扇區記錄,也即C/H/S地址為0柱面0磁頭1扇區,占用512字節,MBR的引導程序占其中前446個字節,偏移0~偏移1BDH,后64個字節,偏移1BEH~偏移1FDH為硬盤分區表DPT,末尾兩個字節 “55AA”,偏移1FEH~偏移1FFH是分區有效結束標志。引導標志位只能是00H和80H,80H位活動,00H位非活動,其余值系統默認非法。
1.2 操作系統引導記錄
DBR(DOS Boot Record),操作系統引導記錄。通常情形下,第一個分區的DBR位于硬盤0磁道1柱面1扇區,是操作系統可以訪問的第1個扇區。其文件系統的DBR包括跳轉指令、OEM代號、BPB、引導程序和結束標志。對FAT32進行數據恢復時,通常可由引導扇區BPB參數中的保留扇區數、FAT數、每個FAT32所占扇區數來定位根目錄的起始位置。計算公式為:根目錄起始位置=保留扇區數+FAT個數*每個FAT所占扇區數。
1.3 文件分配表
FAT(File Allocation Table),文件分配表。在FAT32文件中,由于FAT對文件管理的重要性,有兩個相同的FAT,第一個稱為主FAT,另一個是FAT1的備份,稱為備份FAT。FAT是位于DBR之后,同一個文件的數據并不一定完整地存放在磁盤的一個連續區域內,往往分成若干段,像一條鏈子一樣存放。文件的這個存儲方式稱為鏈式存儲,硬盤上必須準確記錄已被文件占用的簇,為每個已經占用的簇指明存儲后續內容的下一個簇的簇號,每一個文件最后一個簇,還要指明本簇無后續簇,實現鏈式存儲的記錄都保存在FAT表中。
1.4 文件系統目錄項
FAT32文件系統中,沒有獨立的根目錄區,分區根目錄下的文件及文件夾的目錄項存放在根目錄區中,分區子目錄下的文件及文件夾的目錄項存放在子目錄區中,根目錄區的和子目錄區都在數據區中。文件目錄項(FDT)占32字節,子目錄項的長度為零,已刪除目錄項的首字節值為E5H。
1.5 數據區
FAT32的根目錄、子目錄及文件內容主要存放在數據區中,是真正意義上數據存儲的地方,位于FAT2之后。對數據區中數據定位,首先通過分區表信息,定位相應的DBR扇區,讀取出DBR扇區的OEH~OFH偏移信息,得到DBR保留扇區數值,進一步讀取到DBR扇區的24H~27H,得到每個FAT扇區數,通過相應的計算公式得到分區的數據區起始扇區[2-4]。
2.1 數據刪除時文件系統的變化
FAT32文件系統中,誤刪除的文件在回收站時,文件的FAT不發生任何變化,可直接從回收站中復原文件。但當使用“Delete+Shift”組合鍵徹底刪除文件時,此時文件分配表和文件目錄項均發生變化。FDT中的首字節改為刪除標志“E5H”,所對應的FAT表項值改為空簇標志“00000000H”。當文件的起始簇號大于兩個字節所表示的最大值時,文件目錄項中偏移14H~15H處用來存儲超出部分的值,在徹底刪除的時候,起始簇號14H~15H處的兩個高字節被清零,對文件起始簇號小于兩個字節所能表示最大值時,不存在這樣的情況。數據是以二進制的方式存儲在磁盤上的,在徹底刪除后,數據仍存在數據區中,只要未寫入新數據,原數據未被覆蓋,這就為數據恢復提供了可行性[5-6]。
2.2 DBR破壞后的恢復
在FAT32文件系統中,6號扇區作為DBR扇區的備份。當6號扇區沒被損壞時,可直接復制6號扇區DBR的備份信息。當DBR扇區和備份DBR扇區都損壞時,則需要我們通過手動方式重新構建DBR扇區。找到一個完好的FAT32分區,復制DBR扇區到需要恢復的DBR扇區。重建的DBR扇區需要手動修改的關鍵參數包括:保留區扇區數、根目錄簇號、每簇扇區數、FAT表個數及每個FAT表總扇區數等內容。具體操作過程中我們使用WinHex軟件。
主要做法如下:
1)保留區扇區數的確定。從恢復文件系統的0扇區開始搜索“F8FFFF0F”,找到此位置后,讀取出扇區數,此扇區數既是保留區扇區數,又是FAT1表的起始位置。
2)FAT表總扇區數的確定。接上一步操作,繼續搜索“F8FFFF0F”,確定此位置后,讀取出扇區數,此扇區數是FAT2表的起始位置。用FAT2表位置減去FAT1表位置就得到每個FAT表總扇區數。
3)每簇扇區數的確定。根據讀取到總扇區數由公式(1)可以確定數據區的總扇區數,進一步可通過公式(2)可得到每簇扇區數。

4)當DBR中的BPB表參數確定好以后,復制當前DBR表,找到當前分區的第6扇區粘貼,完成DBR表的修復。
2.3 FAT損壞后的恢復
由于FAT1和FAT2完全相同,FAT32文件系統中FAT1損壞后,考慮通過FAT2進行恢復。主要做法如下:
1)查找兩個子目錄。分別查找第一個子目錄和第二個子目錄,記下對應的扇區號和所在簇號。
2)計算每簇扇區數。兩個子目錄所在硬盤開始扇區號之差除以兩個子目錄簇號之差就是每簇扇區數。
3)計算根目錄開始扇區號。根據(2)得到每簇扇區數計算公式,反代入得到根目錄開始扇區號,根目錄開始扇區號減1就是FAT2表結束扇區號。
4)計算每個FAT表所占扇區數。搜索“F8FF FF0F”找到FAT2開始扇區號,確定每個FAT表所占扇區數。
5)復制當前FAT2表,通過每個FAT表所占扇區數確定FAT1起始扇區,并粘貼,完成FAT1表的修復。
2.4 特征碼恢復文件
通過上述分析可知,一般的格式化、誤刪除或病毒感染等操作都只是針對文件分配表和文件目錄項,并沒有直接刪除數據,因此可以通過搜索一些文件的特征碼在數據區中定位文件,估算出相應大小,提取相對應的數據,放在一個完好的FAT32分區中恢復文件。常見文件格式的特征碼如:擴展名為“.doc”以“DOCF11E0A1B11AE1”開頭,擴展名為“.docx”以“0x504B030414”開頭等。
數據安全越來越受到人們的重視,但在日常中會遇到存儲設備損壞、病毒感染、誤刪除或者突然斷電等一些不可控因素造成的數據丟失,通過上文分析,我們看到只要分析到位,采取合理的方法,數據就可以恢復。為了能更好的恢復數據,盡可能挽回最大損失,一旦發生數據丟失情況,使用者應當停止數據讀寫操作,避免數據被覆蓋,造成二次損害。同時向專業維修人員詳細描述問題,以便他們能做出恰當的決策。恢復數據時,防止破壞原文件,對原文件做好鏡像,操作在鏡像文件中進行。
[1] 戴士劍,涂彥輝.數據恢復技術[M].北京:電子工業出版社, 2005.
[2] 劉偉.數據恢復技術深度揭秘[M].北京:電子工業出版社, 2010.
[3] 蔣笑天.FAT32文件系統的DBR恢復研究與實踐[J].軟件導刊,2014,13(12):46-49.
[4] 張明旺.基于FAT32文件系統的數據恢復技術[J].電子科技,2012,25(11):112-113.
[5] 魯恩銘,袁丁.WindowsFAT32下格式化數據恢復方案設計與實現[J].計算機應用與軟件,2010,27(6):165-168.

表1 平衡系數分析
本文對電梯的平衡系數的原理以及電梯的平衡系數的影響因素進行了研究,研究表明:影響電梯平衡系數的因素主要包括:曳引電動機的功率、轎廂的重量和對重的重量等,由于電梯的平衡系數對電梯的安全運行起著關鍵的重要作用。因此研究電梯平衡系數的影響因素具有重大的理論意義與工程意義,本文的研究為電梯平衡系數的設置提供了理論依據,能夠有效的減少由于電梯平衡系數不合理導致的電梯事故的發生。
參考文獻:
[1] 鄭祥盤.福建省老舊電梯缺陷與故障統計分析[J].質量技術監督研究2014(5).
[2] 李中興平衡系數對電梯安全的影響及測試方法優化[J].中國安全科學學報2015(11).
[3] 陳偉森平衡系數對電梯運行的影響及其測量方法探究[J].機電工程技術2013(5).
[4] 劉德勇對電梯曳引力和平衡系數的研究及相關影響[J].機電工程技術2015(4).
[5] 劉利文曳引電梯平衡系數的測量方法及其對電梯運行的影響分析[J].機電信息2016(9).
[6] GB/T7588-2003.電梯制造與安裝安全規范[S].
TP399
甘肅省科技支撐計劃社會發展類(編號1504FKCA039)。
△ 通訊作者:達虎(1987-),男,甘肅皋蘭人,甘肅省計算中心,碩士。Tel:18109445908。