天天看點

《資料修複技術與典型執行個體實戰詳解》——1.5 檔案配置設定表的恢複

本節書摘來自異步社群《資料修複技術與典型執行個體實戰詳解》一書中的第1章,第1.5節,作者:葉潤華著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

資料修複技術與典型執行個體實戰詳解

1.5.1 檔案配置設定表的基礎知識

磁盤經過格式化後主要包括的區域有:主引導記錄區(隻有硬碟有)、引導記錄區、檔案配置設定表(fat)、目錄區和資料區。

檔案配置設定表用于表示存儲磁盤檔案空間資訊。此表包含所有未配置設定的、已配置設定的或标記為壞的盤簇的資訊。盤簇是dos進行磁盤空間配置設定的最小機關,一個簇可以是兩個扇區,也可以是4個扇區或更多,視dos版本及硬碟分區的大小而不同。雖然fat記錄檔案所用的磁盤空間的資訊,但引導區、兩個fat表、檔案目錄區等本身的盤簇并不由fat中的盤簇表示。

fat中每個磁盤上的可用盤簇就隻有一個登記項。這些登記項表示該盤簇是否在使用、空閑或損壞。壞的盤簇是在格式化過程中通過format指令發現的。每個盤簇中隻要一個扇區有問題就整個不能使用,這樣會浪費掉一些扇區。

檔案配置設定表是檔案管理系統用來給每個檔案配置設定盤區空間的表格,該表格在磁盤上有兩個相同的文本。檔案配置設定表的表頭占3個表項,其中第一個位元組是磁盤媒體說明符,第2、第3個位元組總是ffffh,這是系統設定的,其内容含義如表1.1所示。

《資料修複技術與典型執行個體實戰詳解》——1.5 檔案配置設定表的恢複

dos是以簇為機關給檔案配置設定磁盤空間的,每個簇在fat中占一個表項,簇編号即為表項号。fat在磁盤上每一簇由一個12位(1.5位元組)、16位(2位元組)項或由一個32位項(4位元組)組成。對于fat12,每個分區最多能夠管理4096個簇,每個簇的容量恒定為4096位元組,是以fat12系統所能管理的分區上限為16mb;fat16系統最多能夠管理2gb的硬碟分區(32768×65536);多于2gb的硬碟分區隻能采用fat32分區表。采用fat32分區表的突出優點是每簇包含的扇區數相對較少,因為檔案是以簇為機關配置設定的,即使隻有幾個位元組的檔案,系統也會配置設定一個完整的簇,fat32分區表能有效節省硬碟空間,避免資源浪費。

在fat中,0号表項和1号表項是表頭。從2号表項開始,每一個表項作為一個簇的标志資訊,占兩個位元組。其内容含義如表1.2所示。

《資料修複技術與典型執行個體實戰詳解》——1.5 檔案配置設定表的恢複

系統隐含檔案io.sys所在的首簇号總是0002。fat對每個檔案來說其資料結構是一個單向連結清單,檔案在檔案目錄表fdt中占一個檔案目錄項,每個檔案的首簇号存放在該檔案的目錄項中,一個檔案目錄項占32個位元組,其中第26、第27位元組就是存放該檔案的首簇号,系統依據fdt中的首簇号乘以2(對于16位的fat)得到該檔案在fat表頭的偏移位址,并得到第2簇的簇号,由該檔案的單連結清單即可找到該檔案的全部内容。

檔案配置設定表總是放在dos引導記錄之後,若fat大于一個扇區,則占用緊挨着的扇區,兩個fat拷貝連在一起存放,一個挨一個,連成整體。需要使用fat時,将其讀到dos的一個緩沖區中。系統的檔案配置設定表存放在邏輯1扇區開始的若幹個扇區内,一個檔案配置設定表占多少個扇區依硬碟分區情況的不同而不同。

檔案配置設定表對于硬碟的使用是非常重要的,假若丢失檔案配置設定表,那麼硬碟上的資料就會因無法定位而不能使用了。

1.5.2 檔案配置設定表的修複

1.用ndd修複配置設定表

fat記錄着硬碟資料的存儲位址,每一個檔案都有一組fat鍊指定其存放的簇位址。fat損壞意味着檔案内容的丢失。慶幸的是dos系統本身提供了兩個fat,如果目前使用的fat損壞,可用第二個進行覆寫修複。但由于不同規格的磁盤其fat的長度及第二個fat的位址也是不固定的,是以修複時必須正确查找其正确位置,采用debug也可實作這種操作,即采用其移動“m”指令把第二個fat移到第一個表處即可(不建議這樣做)。如果第二個fat也損壞了,則也無法把硬碟恢複到原來的狀态,但檔案的資料仍然存放在硬碟的資料區中,可采用chkdsk或scandisk指令進行修複,最終得到*.chk檔案,這便是丢失fat鍊的扇區資料。如果是文本檔案則可從中提取出完整的或部分的檔案内容。

具體方法是:運作debug,将fat2讀入緩沖區,用緩沖區的fat2資料覆寫磁盤中的fat1。但由于不同規格的磁盤其fat的長度及第二個fat的位址也是不固定的,是以修複時必須正确查找其正确位置,但這對于不熟悉debug指令和fat存放位置的一般使用者來說确實很困難。

可以通過norton 8.0中的ndd.exe來很友善地恢複損壞的fat。将ndd.exe拷貝到一張系統軟碟上,然後用此軟碟啟動機器,進入純dos,執行ndd.exe程式。選擇第一項“diagnose disk”,如圖1.107所示。接着選檔案配置設定表損壞的分區,程式開始逐項掃描,當掃描到第四項“analyzing file allocation tables”時出現分區表出錯資訊,提示“do you wish to correct this problem?”(是否需要糾正錯誤),回答“yes”,程式将自動掃描第二個fat,用第二個fat來替換第一個fat。按“esc”鍵退出後,重新開機機器,故障排除。

《資料修複技術與典型執行個體實戰詳解》——1.5 檔案配置設定表的恢複

2.檔案配置設定表丢失的資料修複

有時會遇到這樣的情況,就是第二個fat也損壞了,無法通過第一種辦法來恢複fat,但是檔案資料仍然存放在硬碟資料分區中,這時可以用修複法來挽救資料。

通過“scandisk.exe”程式可以找回丢失fat鍊的扇區資料。啟動機器後,在dos狀态運作scandisk.exe程式,選擇相應分區,按“開始”按鈕對磁盤進行掃描,如遇錯誤會出現“磁盤掃描程式在某分區找到錯誤”的提示資訊。選擇“将丢失的檔案碎片轉換成檔案”選項,單擊“确定”按鈕後程式開始修複錯誤,最後出現“磁盤掃描結果”資訊,單擊“關閉”按鈕退出。這時用“dir”指令檢查該分區目錄,會發現有若幹擴充名為“.chk”的檔案,這便是丢失fat鍊的檔案。如果是文本檔案則可從中提取并合并成完整的檔案,隻要将檔案名改過來就行了;如果是二進制的資料檔案,則很難恢複出完整的檔案。