救命,我的 ext4 分区刚刚损坏了

救命,我的 ext4 分区刚刚损坏了

在对我的 mdadm 配置和内核设置问题进行了大约一周的故障排除后,我粗心大意,在启动测试成功后将数据驱动器插入电源。

我试图更改 MDADM 超级块,以便内核通过重新创建阵列来自动检测我的系统驱动器。有一个操作系统的备份,所以这不是什么大问题。

我忘记了我把数据驱动器留在里面,而且 udev 喜欢摆弄 /dev/sd* 分配,最后我将一个包含数据的驱动器添加到我的系统启动驱动器(Grub 和内核,ext2,100mb)mdadm 然后将该阵列重新同步到启动驱动器。现在,在我的 ext4 数据分区的最开始处有一个 100mb 的 ext2 分区,里面有内核和 grub 配置。

超过那 100mb 之后我希望仍然有完整的数据,我可以使用什么样的工具来尝试恢复一些数据。它不是非常非常重要的数据,但我真的很想把它找回来。

Gentoo Linux 2.6

答案1

不幸的是,尽管驱动器的其余部分有数据,但可能无法将其与单个文件关联。在典型的 UNIX/Linux 文件系统(包括 ext2 和 3...不确定 4)中,有关文件的信息存储在磁盘的开头(包括前七个 inode 的名称、属性和位置,加上两个引用,第一个双 inode 列表和一个三重链接 inode 列表;总共 10 个引用)。

这样,文件 inode 本身(通常为 2k 到 4k,具体取决于您格式化系统的方式)可以分布在整个文件系统中。与 NTFS/FAT32 不同,其中文件信息存储在文件头中(包括名称的一部分),而大多数 Linux 文件系统中都不存在此类信息。它全部位于磁盘的头部,因此当您删除文件时,仅通过查看 inode 无法恢复该文件链接到的内容。没有引用,前 10 个块之间也没有引用。

您可以尝试查看恢复删除程序的源代码,例如http://extundelete.sourceforge.net/,但它看起来使用日志来恢复您可能已经丢失的信息。

如果您没有丢失存储文件信息的分区的整个头部,您仍然可以通过编写筛选磁盘以恢复文件的程序来恢复一些文件。

相关内容