張珈銘 馬昊



摘要:在數字化進程中,數據丟失造成的破壞難以衡量。該文基于Winhex軟件,介紹了數據恢復的原理,以FAT32誤格式化為例,介紹了數據恢復的詳細過程,重點介紹了一種快速計算簇大小的方法,提高數據恢復的速度和準確度。
關鍵詞:數據恢復;Winhex;簇大小
中圖分類號:TP319 文獻標識碼:A
文章編號:1009-3044(2020)13-0284-02
在信息數字化高速發展的今天,存儲在計算機中的數據資源極其重要。而一些人為,病毒,甚至存儲介質自身缺陷造成的數據丟失,往往無法用金錢來衡量。因此,如何預防存儲介質中的數據免受破壞,如何快速恢復丟失的數據,引起了越來越多的重視。在常見的數據恢復方法中,把數據恢復分為:硬恢復和軟恢復,如果保存數據的存儲介質出現了物理故障,比如盤體有壞道,電路板芯片燒壞,盤體異響等故障,導致用戶取不出里面的數據,在這種情況下對該介質中丟失的數據進行恢復,就稱為硬恢復;如果保存數據的存儲介質沒有任何物理故障,由人為或病毒破壞所造成的數據丟失(比如誤格式化,誤分區),那么這樣的數據恢復就叫軟恢復。本文主要介紹的是一種基于Winhex工具的數據恢復。
1Winhex介紹
Winhex是一款功能十分強大的數據恢復軟件,占用內存小,它主要用來檢查和修復各種文件、恢復刪除文件、硬盤損壞造成的數據丟失等。同時它還可以讓你看到其他程序隱藏起來的文件和數據。
Winhex還是一款十六進制磁盤編輯軟件,用它來進行數據恢復時,如圖l所示先用Winhex打開磁盤,邏輯驅動器是指電腦中的C、D、E、F盤格式化時產生的盤符;物理驅動器是指:電腦中看得見摸得著的物理硬盤、u盤、移動硬盤、光盤等。一般數據恢復都是從物理硬盤中打開需要恢復的分區。Winhex界面主要由工具欄,文件顯示區,偏移,十六進制區,文本字符區,硬盤分區信息組成,如圖2所示。
2數據恢復原理
數據是存儲在硬盤上,硬盤一般劃分為四個部分。分別是主引導扇區MBR,文件分配表FAT,目錄區DIR和數據區Data。
硬盤的MBR分區表也叫Dos分區表,0號扇區是主引導記錄(MBR),Dos分區體系常用分區表來記錄每個分區的類型起始位置和分區的大小,如圖3所示。其中分區表就位于0號扇區,所以0號扇區如果損壞,那么硬盤就不能正確地識別分區。分區表的00H-00H偏移長度有1字節,OOH:不可引導;80H:可引導(一般是系統盤)。01H-03H偏移長度有3字節,內容是分區的起始CHS地址。04H-04H偏移長度有1字節,為分區的類型。05H-07H偏移長度有3字節,內容為CHS地址(可空)。08H-0BH偏移長度有4字節,為分區的起始扇區號。0CH-0FH偏移長度有4字節,為分區所包含的扇區數。07H為NTFS、EX-FAT格式。0CH、OBH為FAT32格式,0FH、05H表示擴展分區表。EEH表示為GPT格式。MBR硬盤的分區是連續的,一個緊挨著一個。所以在做數據恢復時,往往找到一個分區時,很快就能找到所有的分區。
每個硬盤一般都有幾億到幾十億個扇區,為了方便查看所需的信息首先需要找到對應的字符。可以通過搜索界面查找所需信息(如圖4所示),偏移條件是指每512個字節從第幾個字節開始比較,比如搜索扇區結尾55AA(如圖3所示),可以設置偏移計算512=510(即跳過前面510個字節,只搜后兩字節),這樣可以大大縮短搜索信息所需的時間,提高工作效率。也可以選擇列出搜索結果(如圖5所示),判斷出所需要的字符串具體有幾個,在第幾個扇區,由此判斷出硬盤有什么問題,最后對癥下藥進行恢復。
3FAT32誤格式化成NTFS恢復方法
在數據丟失中,有一種常見的故障,就是誤格式化。比如,硬盤或磁盤被誤格式化,引起數據全部丟失。這種數據丟失,可以依靠專門的數據恢復工具Winhex,手工計算,恢復分區表等辦法,來實現數據恢復。
首先,在計算機下附加FAT32格式的磁盤,在磁盤里存放一些文件,然后將其格式化成NTFS格式,再用Winhex軟件打開。看一下6號扇區它的備份DBR是否存在,備份DBR一般是已經消失的。搜索F8FF,尋找FAT表,然后分別在2048扇區找到了FATl,在30720扇區找到了FAT2,兩個扇區數相減等于28672,求得整個FAT表的大小了。FAT表的大小加上FAT2的位置為59392,求得根目錄的位置。FAT表的大小為28672,每個FAT表有128個扇區,整個文件系統有128"28672=3670016個簇,用總扇區數232763737減去根目錄位置59392差值為232704345再除以3670016,商為63,最接近的數為64,即簇的大小為64。
除了上面介紹的常規方法之外,還有一種快速計算簇大小的方法。先搜索F8FF,用來尋找FAT表。之后在2048號扇區找到了FAT表1,在131072號扇區找到了FAT表2。用兩個子目錄來計算簇大小,在260160找到了一個子目錄,按F3繼續搜索,在260224找到了第二個子目錄,那么簇大小就是260224-260160=64,這樣能準確地算出簇大小而不是算出近似值。
隨意打開一個FAT32格式的磁盤,查找它的DBR,將其復制到被格式化盤的0號扇區,修改關鍵參數:簇大小,FAT表大小,文件系統總扇區數,保存之后再重新打開,被破壞的文件就能被看到了。如果不能直接打開就只能復制文件出來,FAT32文件系統的文件不像NTFS文件系統,NTFS的文件是全都保存在一塊地方,可以用命令恢復,而FAT32的文件保存的相對比較分散,所以還是直接復制出來更好。
4結語
FAT32文件系統格式化成NTFS,對文件的破壞主要是對NTFS文件系統的特點進行的。NTFS在格式化時會產生一些源文件,會分布在硬盤的各個地方,但是它對文件的破壞是很小的,不像FAT文件系統格式化成FAT32,要將前面的那些關鍵的FAT表,根目錄直接破壞掉,一般格式化成NTFS是沒有那么嚴重的,是隨機的。最后,快速計算簇大小的方法,可以精確計算,節省時間和避免誤差。