手工恢復NTFS卷中誤刪除的文件
日期:2017/2/8 9:06:37   編輯:系統工具
對於數據恢復來說,雖然文件刪除後所有的數據運行都能夠在殘留的MFT中找到,但是數據運行的個數越少即文件碎片越少或者沒有碎片,文件被覆蓋的可能性就越小,數據恢復的概率也就越高。以下是手工恢復NTFS卷中誤刪除文件的過程。
1.需要恢復的文件
NTFS卷中一個文件被刪除時,其MFT並沒有被刪除,前面已經介紹過,這裡以恢復一個NTFS卷中一刪除的文件為例,假設在用戶的NTFS卷D盤中有一個名為photo的目錄,該目錄下有一個名為“penquan.jpg”的文件,如圖5-1所示。假設用戶不小心將此文件刪除。
圖 5-1 NTFS 卷中將被刪除的文件
2. 找到要恢復文件的 MFT
首先通過 WinHex 選擇文件所在的邏輯磁盤將其打開,如圖 5-2 所示。
圖 5-2 選擇磁盤分區
打開磁盤的分區後找到該分區的 MFT ,如圖 5-3 所示。
圖 5-3 轉到 MFT 的起始位置
3. 恢復數據
找到分區的 $MFT 後,通過文件名查找文件的 MFT ,如圖 5-4 所示。
圖 5-4 查找文件的 MFT
查找到的結果如圖 5-5 所示。
圖 5-5 已刪除文件的 MFT
先來看看MFT頭,偏移15.16H為0表示該文件已經被刪除了,系統根據這個標志來決定建立新文件時是否能夠覆蓋這個MFT而創建自己的MFT。10H 屬性就不分析了,除非希望恢復的文件所有的時間屬性和以前一樣,用戶對此要求一般沒有那麼高,所以跳過10H屬性不分析。30H屬性這裡也不分析。關鍵是要分析80H屬性,即數據屬性,在該屬性所有的描述中,對恢復數據最有用的信息有兩個,一個是偏移00C12DD160H開始的8個字節的屬性是該文件的實際大小506E,單位是字節。還有一個地方是偏移00C12DD170H開始的數據運行位置描述,這裡為十六進制數41H 06H 83H 0BH 90H 00H。其中41H定義了其後面有1個字節表示該文件的數據運行所占的簇的個數,4個字節表示該數據運行的起始邏輯簇號,這裡定義了其運行占用了06個簇,其起始邏輯簇號為900B83H。知道了起始簇號和數據運行的真實大小,甚至知道運行所占的簇的個數,要恢復文件數據就很容易了。
在WinHex中選擇“位置”|“轉換到扇區”命令,打開對話框,在“簇”文本框中輸入9440131(900B83H轉換後的十進制數),然後單擊確定,即可找到數據的起始位置,其中FFH DBH是.jpg照片的文件頭標志。在找到的數據起始位置右擊,選擇“選塊開始”命令。如圖5-6所示。
圖 5-6 文件的起始位置