使用DDRescue进行恢复无法完成(写入错误:只读文件系统)

我正在尝试使用vdfuse来恢复损坏的VDI来安装VDI并使用dd_rescue来挽救borked分区。

dd_rescue似乎工作正常,但一旦达到大约一半的分区,它只是停止并给出以下错误:

 ddrescue: write error: Read-only file system 

等等..什么? 它突然将FS正在将恢复的分区写入只读文件系统。 那么…为什么? 我永远无法完成这个吗? 这是怎么回事?

更新 – 2012年12月2日

我的电脑在运行VBox的时候失去了电源,当我开始备份并试图运行vbox实例时,它告诉我这个硬盘没有操作系统。

因此,在检查了该configuration文件的BIOS选项和VBox设置之后,我使用该VDI创build了一个新的configuration文件,并得到了相同的错误,certificateVDI的确是不可读的,而且该configuration文件不仅仅是搞砸了。

VDI是一个500GB的磁盘,上面有4个分区。 当我使用vdfuse将VDI安装到文件夹时,它将4分区作为回送设备( Partition1Partition2等)

当我尝试安装第一个分区时,它工作正常。 这是启动分区,所以它没有任何用处。 但是,当我尝试挂载Partition4 ,我的用户主分区,它说Bad superblock at offset ######几次,并无法安装。

所以,我运行ddrescue Partition4 ../partition4_restore.img ,它工作正常,直到达到(“救助”)大约260 GB,当它停止并给出“只读文件系统”错误。

放置img文件的位置有660GB免费。

1.解决ddrescue错误:

由于涉及目标卷的错误,您的写入失败。 我会build议validation是否可以将这么大的文件写入目标卷:

  `dd if=/dev/zero of=testfile bs=32M count=15000` 

如果该操作成功,则可以合理确信问题是针对您的ddrescue操作的。 如果失败,则说明问题出在目标卷上。

2.解决原来的问题:

当然,从你select的策略退后一步,简单地尝试使用fsck -b来恢复一个备用的超级块是非常有意义的。

使用testdisk安装后,我使用了testdisk ,它允许我查看和复制Partition4文件中的文件列表。

而不是dd_rescue,你应该使用GNU dd_rescue( http://www.gnu.org/software/ddrescue/ddrescue.html ),这是不一样的。 原来的dd_rescue在GNU dd_rescue是不是很安全。

但是,如果出现写入错误,我会首先检查目标分区,如果它可以保存这样的大文件(大多数FAT分区不能),并且目标分区有足够的可用空间。