我正在尝试使用vdfuse
安装 VDI 来恢复损坏的 VDI,并用它dd_rescue
来挽救损坏的分区。
dd_rescue
似乎工作正常,但一旦达到分区的一半左右,它就会停止并出现以下错误:
ddrescue: write error: Read-only file system
等一下……什么?它突然将正在写入恢复分区的文件系统变成只读文件系统。嗯……为什么?我永远无法完成这件事吗?发生了什么?
更新 - 2012 年 12 月 2 日
我的计算机在断电时正在运行 VBox,当我重新启动它并尝试运行 vbox 实例时,它告诉我 HDD 没有操作系统。
因此,在检查该配置文件的 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的可用空间。
答案1
1. 排除ddrescue
错误:
您的写入失败,据称是与目标卷有关的错误。我建议验证是否真的可以将如此大的文件写入目标卷:
`dd if=/dev/zero of=testfile bs=32M count=15000`
如果操作成功,您可以确信问题出在您的ddrescue
操作上。如果操作失败,您就知道问题出在目标卷上。
2.修复原问题:
当然,退一步来说,从你选择的策略来看,简单地尝试fsck -b
使用恢复备用超级块。
答案2
使用 安装后vdfuse
,我使用testdisk
它来查看和复制文件内的文件列表Partition4
。
答案3
您应该使用 GNU dd_rescue(而不是 dd_rescue)http://www.gnu.org/software/ddrescue/ddrescue.html),这是不一样的。原始的 dd_rescue 使用起来不太安全,而 GNU dd_rescue 则安全。
但是当您收到写入错误时,我会首先检查目标分区是否可以保存这么大的文件(大多数 FAT 分区不能)以及目标分区是否有足够的可用空间。