針對損壞磁碟機(IO 錯誤)的高階 NTFS 分割檔案復原技術?

針對損壞磁碟機(IO 錯誤)的高階 NTFS 分割檔案復原技術?

最近,我的 ESXi 主機上的硬碟遭受了極其微小但相當嚴重的損壞,影響了幾個虛擬機器。有一個我非常想恢復的文件,當然它不知何故從我的常規備份中刪除了。最近的副本是 6 個月前的。原來我需要那個......哎呀。

細節:

1) 我在 Parted Magic 可啟動 ISO 中使用了 ddrescue (很棒的工具)來恢復 99.98% 的相關虛擬機器磁碟機。不幸的是,這些錯誤似乎幾乎完全是最近的文件寫入造成的……所以當然它們正是我最需要恢復的扇區。

2) 驅動器在讀取壞扇區時出現 IO 錯誤,但偶爾會成功讀取以前的壞扇區!所以,恢復還是有可能的。比這稍微多一點的情況是,會出現某種重大故障,導致驅動器旋轉或旋轉。哦,大約 1/4 的轉速下降不會恢復。 (需要硬重啟,關機不起作用)最後,幾乎每個壞扇區讀取都會發出悅耳的咔嗒聲。

3)重要的VM磁碟是NTFS格式的。

4) 我(通常)可以以唯讀方式掛載損壞的 NTFS 卷,並且可以(稍微少一些)導航到包含我需要的文件的資料夾。但是,當我對資料夾執行“ls”操作時,相關檔案似乎總是給出 IO 錯誤。資料夾中的其他檔案不會出現IO錯誤。

5)我嘗試過使用ntfsinfo/etc...這聽起來正是我需要的...但它根本不會打開分割區。 (令人沮喪,因為“安裝”通常會)

6) 該文件是 Excel 2003 時代的 XLS 文件,因此我不確定是否可以提供任何字串來搜尋原始磁碟映像。 (可能是 6 個月前版本的一部分?)

我真的很想使用 debugfs 之類的工具。然而,從手冊頁來看,只要 ntfs 工具能夠打開分區,它們就可以完成這項工作。特別是,我想知道 IO 錯誤是否可能純粹在檔案的元資料中,以及目錄記錄是否可以很好地恢復以複製檔案內容。作為最後的手段,我能檢索到的任何部分文件內容都會很棒。

我之前編寫過(相對簡單的)核心模組,因此我可以編譯一個特殊的 NTFS 模組,並啟用(或新增)更多偵錯資訊。 (該文件至少值得花幾天的時間來嘗試恢復......而且我在這個過程中學到了很酷的東西)

有什麼指點嗎?

編輯:

更多驅動器錯誤訊息:

/var/log/messages 當然顯示了很多 NTFS-fs 錯誤...但我終於費心翻譯了我通常收到的未處理的感知代碼訊息:感知密鑰 0x3、ASC=0x11、ASCQ=0x4。 (這似乎翻譯為“未恢復的讀取錯誤 - 自動重新分配失敗”)。

當驅動器旋轉時,我看到“scsi0:*BusLogic BT-958 已初始化」訊息。我不確定是否是 Linux SCSI 驅動程式、ESXi 驅動程式或驅動器本身決定使驅動器停止旋轉。如果是 Linux 驅動程序,那麼也許我可以修改該驅動程式為了避免轉速下降,整個解救過程因需要電源週期的轉速下降而變得更加痛苦。

編輯2:

在「ls」包含相關檔案的目錄後,立即使用「end_request:I/O 錯誤,dev sda,磁區 7238859」日誌訊息,將 ddrescue 操作定位到該磁區。我目前計劃抓住機會,如果成功的話,將該扇區寫回活動磁碟。也許我可以透過這種方式慢慢重建有問題的文件。儘管如此,大多數可恢復的壞扇區在重試次數不到 20 次的情況下就能恢復...到目前為止,重試次數已超過 150 次...*嘆息*

編輯3:

我需要的檔案中來自「ls」的磁區錯誤完全不合作(一夜之間嘗試了 1000 多次,但沒有成功)。我希望這只是您執行“ls”時的元資料? :)

我確實有大部分 ddrescue 副本,但無法安裝(或在沒有文件的情況下安裝)。損壞的驅動器在大多數情況下都能正確安裝...也許損壞的驅動器上的 IO 錯誤會強制“安裝”回退到正常工作的鏡像?

** 編輯4:**

我暫時放棄了,等待進一步的建議。我已經卸下了驅動器並重建了盒子。我會保留驅動器以防萬一出現問題。

答案1

根據我的經驗,有幾點注意事項:

  1. (原因)如果您在嘗試高清存取期間聽到不尋常的聲音,並且(或多或少)隨機磁碟位置沒有出現問題,那麼根本原因很可能是在磁碟表面(而不是電子設備)上- 不幸的是,這就是可悲的設想。如果「只是」電子設備,您可能有機會恢復大部分甚至全部資料。
  2. (壞扇區)如果您還沒有,請在網上搜尋磁碟製造商的可啟動診斷/恢復工具,下載它,啟動,運行深度測試並讓它嘗試重新映射壞扇區 - 這是免費方法中最好的。 請注意,壞扇區有增長的趨勢- 因此,即使您在第2314 次讀取嘗試後設法捕獲文件的一大塊,這些嘗試也很可能只會使附近的壞扇區增長,從而有效地降低恢復其他部分的機會文件的。
  3. (恢復NTFS)沒有什麼可以像 MS Windows 本機工具那樣修復 NTFS 檔案系統。如果 NTFS 映像無法安裝(也確保您嘗試安裝分割區,而不是整個磁碟!),您可以嘗試testdisk在 Linux 下進行類似的操作,但如果失敗,Windowschkdisk可以提供協助。如果您在虛擬機器下安裝了 Windows,則可以將取得的原始映像轉換ddrescue為該虛擬機器支援的格式(例如VDIVMDK),將其新增至 VM 並以命令列模式啟動 Windows 以修復檔案系統。VBoxManage convertfromraw <filename> <outputfile>如果您使用 VirtualBox,則可以選擇轉換此類影像的命令以--format VDI|VMDK|VHD獲得指定的輸出格式。

答案2

這可能適用於您的情況,也可能不適用於您的情況,但最後的手段之一是「冷凍技巧」。看從損壞的硬碟中恢復資料:“冷凍技巧”來討論該方法。

相關內容