提示“目錄或文件損壞且無法讀取”的恢復

提示“目錄或文件損壞且無法讀取”的恢復
2009-11-17 21:38:21
版權聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://wnving.blog.51cto.com/801842/228879
        遠程做的一個“目錄或文件損壞且無法讀取”的恢復。232G的NTFS分區D,XP系統,每簇扇區數8,用winhex無法讀取分區,提示錯誤,通過物理磁盤訪問該分區,根目錄下看不到任何文件,檢查DBR,沒有發現明顯的異常
 
    跳轉到第分區E的EBR(虛擬MBR)位置的上一個扇區,找到損壞的分區的備份的DBR,通過winhex提供的計算hash功能,計算哈希值。再與第一個DBR的hash值對比。完全一樣。(也可以通過winhex提供的同步和對比功能進行驗證,winhex會不同的字節上顯示黑色)
    跳轉到$MFT的開始位置,也即是$MFT自身的記錄。發現其起始特徵本應該是ASCII碼的“FILE”四個字節,現在變成了ASCII碼的“BAD?”。這是造成提示“文件或目錄損壞且無法讀取”的關鍵問題所在。
跳轉到偏移512=242位置,也就是這個MFT項的文件名起始位置。文件名正常:UNICODE碼的“$MFT”。檢查標準屬性(10H),文件名屬性(30H),數據流屬性(80H)屬性,到80屬性的時候,發現從80屬性開始的第三行開始,都被清零,其他的重要的四個元數據文件中,$Volume屬性也出現了同樣的錯誤。

        找到備份的前四個元數據文件的記錄。覆寫錯誤的記錄。根據DBR找到了MFT前四個元數據文件的備份,備份的元數據文件幾乎跟前面四個一摸一樣的錯誤。只能是手工修復$MFT。在$MFT自身的記錄當中,發現”結束VCN”並沒有遭到破壞,這爲後期的修復工作節省了很多時間,複製一個正常分區(分區E)的第一個扇區到損壞的$MFT中,修改其中的一些數值。在80屬性中,第三行字節的開始位置應該是描述的datarun的起始位置,根據起始VCN和結束VCN得出$MFT的大小,計算方法:起始 VCN+1=LCN,根據這個數值,寫入datarun。將LCN * 8 * 512=0000FE6DH。分別寫入偏移(想對於80H)48H,50H,和58H,如圖:

        寫入方法:根據DBR中的描述的$MFT起始位置(000000C000H)786432號簇,$MFT的大小爲VCN+1個簇 ,那麼datarun就是 “33 E0 DF 06 00 00 0C 00H”,按同樣的方法修復備份的$MFT的前四個元數據文件。
 
        保存,重新載入分區,winhex打開,所有的元數據文件全部顯示出來。文件、目錄損都可以正常讀取
  提示“目錄損壞且無法讀取的原因有很多”。具體情況具體分析,以上方法僅供參考!
本文出自 “北京天問數據恢復” 博客,請務必保留此出處http://wnving.blog.51cto.com/801842/228879
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章