徐杰 占邵旻
摘 ? ?要: 本文對硬盤的結(jié)構(gòu)和文件存儲機制進行了分析,探究了硬盤的文件刪除和數(shù)據(jù)恢復的原理,并介紹了常用的數(shù)據(jù)恢復軟件。
關鍵詞: 文件目錄表 ? ?文件分配表 ? ?數(shù)據(jù)恢復 ? ?刪除標記
硬盤具有容量大、價格便宜的特點,是我們存儲數(shù)據(jù)的主要設備,但是硬盤中存儲的數(shù)據(jù)在一些情況下可能被損壞,如果沒有對數(shù)據(jù)進行備份,給個人和社會會造成很大的損失,因此硬盤數(shù)據(jù)的恢復很重要。本文針對其數(shù)據(jù)恢復原理進行了深入的探討。
1.物理結(jié)構(gòu)
硬盤主要由盤片和磁盤驅(qū)動器兩部分組成,其中盤片是用來存儲數(shù)據(jù)的,磁盤驅(qū)動器負責讀取其中的數(shù)據(jù)。硬盤由多張盤片構(gòu)成的,盤片由涂有磁性材料的鋁合金構(gòu)成的,一個盤片有上下兩個面,從上至下的順序自0開始編號,每個盤面對應一個讀寫磁頭,磁頭數(shù)等于盤面數(shù)。硬盤在使用之前要進行低級格式化,格式化后形成磁道,磁道從外向內(nèi)自0開始編號,盤面上的同一磁道就構(gòu)成一個圓柱,稱為柱面。一個磁道被劃分為許多大小相同的圓弧,每一段圓弧就是一個扇區(qū),扇區(qū)是硬盤的最小物理存儲單元,一個扇區(qū)是521字節(jié)。操作系統(tǒng)無法對數(shù)量眾多的扇區(qū)進行尋址,對相鄰的扇區(qū)組成一個簇,對簇進行尋址,簇由2n個連續(xù)的扇區(qū)構(gòu)成,硬盤的容量是盤面數(shù)、磁道數(shù)、扇區(qū)數(shù)和512字節(jié)的乘積。磁盤驅(qū)動器[1][2]主要由讀寫磁頭、主軸系統(tǒng)和定位驅(qū)動系統(tǒng)三部分組成,磁頭負責讀寫盤面上的數(shù)據(jù)信息,主軸系統(tǒng)是固定多張盤片,并驅(qū)動它們以額定速度旋轉(zhuǎn),定位驅(qū)動系統(tǒng)驅(qū)動磁頭運動沿盤面徑向運動尋找目標磁道。
2.數(shù)據(jù)存儲方法
硬盤在使用之前,進行分區(qū)和高級格式化,在硬盤上建立相應的數(shù)據(jù)存儲結(jié)構(gòu)。數(shù)據(jù)存儲結(jié)構(gòu)[3]包括主引導扇區(qū)(MBR)、DOS引導扇區(qū)(DBR)、文件分配表區(qū)(FAT)、文件目錄表區(qū)(FDT)和數(shù)據(jù)區(qū)(DATA),實現(xiàn)對數(shù)據(jù)的存儲與管理。主引導扇區(qū)位于整個硬盤的0磁頭0柱面1扇區(qū),包括主引導程序、分區(qū)表和結(jié)束標志字,由分區(qū)程序產(chǎn)生,它的主要作用是檢查硬盤分區(qū)表是否正確及確定哪個分區(qū)為引導分區(qū),并把該分區(qū)的啟動程序調(diào)入內(nèi)存加以執(zhí)行。DOS引導扇區(qū)位于硬盤各分區(qū)的第一邏輯扇區(qū),是操作系統(tǒng)可直接訪問的第一個扇區(qū),包括一個引導程序和一個本分區(qū)參數(shù)記錄表(BPB)。DOS引導扇區(qū)由高級格式化程序產(chǎn)生,其作用是判斷本分區(qū)根目錄前兩個文件是否為操作系統(tǒng)的引導文件。如果就把第一個文件讀入內(nèi)存,并把控制權(quán)交予該文件。文件分配表是用于文件索引和定位的一種鏈式結(jié)構(gòu),它記錄了在數(shù)據(jù)區(qū)中全部簇的分配和使用情況,前兩項是保留項,第三項開始記錄簇的占用和使用情況,把分布硬盤不同位置上文件的占用簇連接起來,形成一個簇鏈。文件分配表有兩個,文件分配表2是文件分配表1的備份。目錄表位于文件分配表2之后,記錄著每個文件的起始單元、文件的屬性等,它的主要作用向操作系統(tǒng)提供文件的起始單元,操作系統(tǒng)再結(jié)合文件分配表確定位文件的位置。數(shù)據(jù)區(qū)主要負責硬盤中數(shù)據(jù)的存放,當數(shù)據(jù)復制到硬盤時,數(shù)據(jù)就存儲在這個區(qū)中。
3.文件操作
在硬盤中對文件的存儲是以簇為單位進行的,同一個文件的數(shù)據(jù)不一定完整地存放在一片連續(xù)的簇中。數(shù)據(jù)訪問首先磁頭主動尋找目標磁道,然后目標簇主動迎合磁頭。磁頭從當前磁道移動到目標磁道的時間稱為尋道時間,磁頭等待盤片從目標簇旋轉(zhuǎn)到磁頭下方所花的時間稱為延遲時間,尋道時間、延遲時間和數(shù)據(jù)訪問時間三者之和就是數(shù)據(jù)訪問時間,數(shù)據(jù)訪問時間越短,說明硬盤的性能越好。對硬盤上存儲文件的主要操作有讀文件、寫文件和刪除文件三種。
3.1讀文件
讀文件時,操作系統(tǒng)首先從FDT中讀取該文件的文件名和首簇號,然后根據(jù)首簇號訪問FAT,在FAT中獲取文件占用其余簇的信息,兩者相配合在DATA中讀取文件的數(shù)據(jù),直到遇到文件結(jié)束標志FFFFH,將目錄項中的文件長度和實際讀取的數(shù)據(jù)長度進行比較,兩者一致,表明讀取正確,該文件的讀操作完成。
3.2寫文件
寫文件就是把文件存放到硬盤中相應的物理位置。保存文件時操作系統(tǒng)首先在FDT中找到空位置寫入文件名、大小和創(chuàng)建時間等信息,然后在DATA中找到空閑位置來寫入文件,接著將文件占用的第一個簇的首簇號和文件大小等信息寫入FDT中,最后將文件占用其他簇的信息寫入FAT中。
3.3刪除文件
文件的刪除是把FDT中該文件的第一個字符改成成E5H,就是對該文件目錄項的文件名做了改寫。E5H是一個刪除標記,表示該文件的位置可以寫入新的文件。文件在刪除時,同時改寫引導扇區(qū)的第二個扇區(qū)中表示該分區(qū)占用空間大小的相應信息,并對文件分配表中的相關項進行清零操作,這樣簇鏈被剪斷,但是文件中的數(shù)據(jù)還保存在數(shù)據(jù)區(qū)。以HELLO.TXT文件的刪除為例,利用數(shù)據(jù)恢復軟件WinHex查看刪除前后該文件的數(shù)據(jù)存儲結(jié)構(gòu)。刪除前后數(shù)據(jù)區(qū)的數(shù)據(jù)沒有發(fā)生變化。這說明刪除操作沒有把數(shù)據(jù)真正刪除掉,除非寫入新的數(shù)據(jù)把原來的數(shù)據(jù)覆蓋掉。
4.數(shù)據(jù)恢復策略
硬盤上數(shù)據(jù)丟失的原因與它的數(shù)據(jù)存儲結(jié)構(gòu)和數(shù)據(jù)相關操作原理有關,主要包括兩個方面的原因:硬故障和軟故障。只要真正存儲數(shù)據(jù)的數(shù)據(jù)區(qū)沒有被新的數(shù)據(jù)徹底覆蓋,就可使采用相應的技術手段加以恢復。對于硬件故障,可以采用專用數(shù)據(jù)恢復硬件設備讀取盤片上的數(shù)字信號,然后用相應的軟件分析工具進行修復。對于軟故障可以采用專業(yè)數(shù)據(jù)恢復工具來進行數(shù)據(jù)恢復。由于刪除操作的第一步是給文件名加了一個刪除標記E5H,第二步斷開簇鏈,因此恢復對應也做兩步工作。首先把文件名的刪除標記修改成正常值,第二步把簇鏈給接上。簇鏈接上的過程非常復雜,可以利用數(shù)據(jù)恢復軟件來自動實現(xiàn)。常用的數(shù)據(jù)恢復軟件有EasyRecovery、WinHex、FinalData,其中EasyRecovery是利用Ontrack公司復雜的模式識別技術,找回分布在硬盤上不同區(qū)域的文件碎片,并根據(jù)統(tǒng)計信息對這些文件碎片進行重整,并在內(nèi)存中建立一個虛擬文件系統(tǒng),并列出文件和目錄,進而找回文件。該軟件還可以對分區(qū)和高級格式化后硬盤進行數(shù)據(jù)恢復。原理是FDISK分區(qū)操作只修改MBR和DBR,沒有把數(shù)據(jù)從DATA中直接刪除,而FORMAT操作:僅僅把FAT表清零,沒有對DATA中的數(shù)據(jù)清零。由此可以得知,文件刪除、分區(qū)和格式化操作,都不能把文件從硬盤上徹底地清除掉,原來的數(shù)據(jù)是可能被恢復的。
5.結(jié)語
當遇到硬盤數(shù)據(jù)被誤刪或者丟失的情況,要立即關機,不要在硬盤上進行任何操作,避免原數(shù)據(jù)被新寫入的數(shù)據(jù)覆蓋,導致無法恢復的現(xiàn)象發(fā)生。利用軟件恢復數(shù)據(jù),要深入了解各種文件系統(tǒng)和文件的數(shù)據(jù)存儲結(jié)構(gòu),并熟練掌握數(shù)據(jù)恢復軟件的原理和操作方法,從而有效地恢復數(shù)據(jù),把損失降到最低。
參考文獻:
[1]張堯?qū)W,史美林,張高.計算機操作系統(tǒng)教程[M].第三版.北京:清華大學出版社,2006(3):52-58.
[2]朱亞飛.確保珍貴數(shù)據(jù),移動硬盤存儲安全解密[J].網(wǎng)絡與信息,2010(1):34-36.
[3]沈丹丹.計算機恢復數(shù)據(jù)解析[J].網(wǎng)絡與信息,2013(4):78-80.