从截断的分区映像中恢复数据

从截断的分区映像中恢复数据

我正在尝试从损坏的 3TB 驱动器中恢复数据。我在用着解救制作它的图像,但需要很长时间,而且存在很多读取错误。我想知道我是否可以对我已经复制的前 200GB(其中有大的整体)有一些运气。我用以下命令读取分区表g磁盘并找到了我有兴趣阅读的 ext4 文件系统的偏移量。然后创建了循环设备,以便有一种与分区交互的好方法:
sudo losetup -f --show -o $((xxxxxxxxxxx*512))

sudo tune2fs -l /dev/loop16给我一些信息,所以我认为我走在正确的轨道上。

不幸的是,由于文件系统错误,我无法安装它e2fsck不会修复任何问题,因为它试图读取超出图像文件边界的内容。我想分区的后面区域可能有一些重要的文件系统数据。您对如何欺骗系统忽略错误并尝试使用不完整的 inode 结构和截断的图像有什么建议吗?

谢谢。

答案1

如果镜像尺寸太小,可以使用fallocatetruncate使其变大,或者使用dmsetup创建线性设备映射来创建虚拟的更大设备。

$ ls -lh somefile
-rw-r--r-- 1 user user 200G Sep  9 13:27 somefile
$ truncate -s 2T somefile
$ ls -lh somefile
-rw-r--r-- 1 user user 2.0T Sep  9 13:28 somefile

ddrescue在第一遍中跳过坏区域,请尝试类似的操作--min-read-rate=10M

至于循环设备,它应该是只读的,或者对图像的副本进行读写,或者使用写时复制覆盖进行实验。否则,您可能最终会修改图像,并且必须重新执行此操作,这是一个坏主意,因为源驱动器已经快要死了。

相关内容