使用 DDRescue 恢復無法完成(寫入錯誤:只讀文件系統)
我正在嘗試恢復損壞
vdfuse
的 VDI,用於掛載 VDI 並dd_rescue
用於挽救損壞的分區。
dd_rescue
似乎工作正常,但一旦達到大約一半的分區,它就會停止並給出以下錯誤:ddrescue: write error: Read-only file system
等等……什麼?它突然將正在寫入已恢復分區的 FS 轉換為只讀文件系統。嗯……為什麼?我永遠無法完成這件事嗎?這是怎麼回事?
更新 - 2012 年 12 月 2 日
我的電腦在斷電時正在執行 VBox,當我重新啟動它並嘗試執行 vbox 實例時,它告訴我硬碟沒有作業系統。
因此,在檢查了該配置文件的 BIOS 選項和 VBox 設置後,我使用該 VDI 創建了一個新配置文件並得到了相同的錯誤,證明 VDI 確實不可讀,並且配置文件不僅僅是搞砸了。
VDI 是一個 500GB 的磁碟,上面有 4 個分區。當我使用
vdfuse
將 VDI 掛載到文件夾時,它包含 4 個分區作為環回設備(Partition1
、、Partition2
等)當我嘗試掛載第一個分區時,它工作正常。它是引導分區,因此它沒有任何用處。但是當我嘗試掛載
Partition4
我的使用者主分區時,它會說Bad superblock at offset ######
幾次並且無法掛載。所以,我執行
ddrescue Partition4 ../partition4_restore.img
並且工作正常,直到它達到(“救援”)大約 260 GB,當它停止並給出“只讀文件系統”錯誤時。放置 img 文件的位置有 660GB 可用空間。
使用掛載後
vdfuse
,我使用testdisk
它可以查看和復製文件中的Partition4
文件列表。
1. 錯誤排查
ddrescue
:您的寫入因據稱與目標卷有關的錯誤而失敗。我建議驗證是否真的可以將這麼大的文件寫入目標卷:
`dd if=/dev/zero of=testfile bs=32M count=15000`
如果該操作成功,您可以有理由相信該問題是您的
ddrescue
操作所特有的。如果失敗,您就知道問題出在目標卷上。2.修復原問題:
當然,從您選擇的策略中退後一步,簡單地嘗試使用
fsck -b
來恢復備用超級塊會很有意義。