从 ext4 卷恢复数据(结构需要清理等)

从 ext4 卷恢复数据(结构需要清理等)

总结:如何从给出“结构需要清理”等错误的 ext4 卷中恢复数据?我尝试了很多方法,如下所述,但仍然没有成功。

编辑:根据评论者的要求,请参阅下面的原始帖子,了解 e2fsck 和 dumpe2fs 的输出。原始帖子如下。


今天,在尝试安装我经常使用的 Truecrypt 7.1 卷时,出现了这个可爱的错误:

错误:mount:在 /media/truecrypt1 上挂载 /dev/mapper/truecrypt1 失败:结构需要清理

然后我尝试在另一个系统上使用命令行 truecrypt 7.1a 安装它,并出现此错误:

错误:挂载:错误的 fs 类型、错误的选项、/dev/mapper/truecrypt1 上的错误超级块,

以下是我目前已采取的步骤:

1 – 已解密但未使用 Truecrypt 安装:

truecrypt --filesystem=none /dev/xxx。

这似乎给了我一个未加密但未挂载的分区。然后我使用 dd 备份了该分区,并尝试备份中的所有其他操作。

2 – 然后我尝试安装它:

挂载 sda3.1 /mnt/tmp

...我得到的结论并不令人意外:

mount:在 /mnt/tmp 上挂载 /dev/loop0 失败:结构需要清理

3 – 因此我尝试:

消息 |尾巴

...这给了我:

[ 1283.815816] EXT4-fs (loop0): ext4_check_descriptors: 组 64 的块位图不在组中 (块 1312711560940789246)!
[ 1283.815825] EXT4-fs (loop0): 组描述符已损坏!

我应该说一下,我不确定这是否是 ext4 卷。老实说,我不记得它是 2、3 还是 4。但从上面的消息来看,我推测它是 ext4。只是觉得这可能很重要。

4 – 现在我尝试 fsck.ext4,但结果很糟糕。如果我自动运行它,我会得到:

sda3.1:注意:如果多个 inode 或块位图块或部分 inode 表需要重新定位,您可能希望首先尝试使用“-b 32768”选项运行 e2fsck。问题可能只出在主块组描述符上,而备份块组描述符可能没有问题。sda3.1

:组 64 的块位图不在组中。(块 1312711560940789246)

sda3.1:意外不一致;手动运行 fsck。(即,不使用 -a 或 -p 选项)

5 – 所以现在我想也许我应该尝试手动运行 fsck。所以我这样做了。问题是发生了以下两种情况之一:

i)我选择“y”代表一切,最终结果是我挂载卷,但它完全是空的,或者

ii) 我必须决定对什么说“y”和“n”,但我完全不知道该如何辨别。我已经阅读了一些有关文件系统的内容,但仍然只能靠猜测。此外,还出现了数百个问题(第一个问题确实是关于第 64 组...然后是第 65、66 组等),所以即使我知道该怎么做,我也要花很多时间才能做到——我不能犯任何错误,否则我可能会丢失数据,对吧?

6 – 我读过这个帖子:如何恢复 ext4 文件系统并且我还“尝试使用备用超级块位置进行挂载”,如下所示:

安装-t ext4-o sb = 131072,ro sda3.1 /mnt/data_c

正如他所做的那样,“我按照上述操作,将 sb 选项设置为以下所有数字的 4 的倍数:32768、98304、163840、229376、294912、819200、884736、1605632、2654208、4096000。” 每次,我都会收到相同的错误:

mount:错误的 fs 类型、错误的选项、/dev/loop0 上的错误超级块、缺少代码页或辅助程序或其他错误

在某些情况下,在 syslog 中发现有用的信息 - 尝试 dmesg | tail 等。7 - 我运行了 testdisk,有很多选项,但在 sda3.1 文件上选择 Intel/PC 分区表给了我:

分区扇区没有结束标记 0xAA55

...并且 testdisk 看不到任何分区。


这就是我现在的处境。如果你能帮忙,我将不胜感激。显然,如果这些数据不重要,我就不会在意。它不会危及生命,但对我来说非常有用。你可能会问,为什么我没有备份它。因为有时你直到丢失它才意识到它有多重要。而且因为我有时是个白痴。

先感谢您。


编辑:根据评论者的要求,我将输出附加到我的原始帖子中:

(一)dumpe2fs

dumpe2fs 1.43.3(2016 年 9 月 4 日)
文件系统卷名:   
最后挂载于:/mnt/truecrypt1
文件系统 UUID:26177e9d-7268-48e8-86ff-47373c24d454
文件系统魔数:0xEF53
文件系统修订号:1(动态)
文件系统功能:has_journal ext_attr resize_inode dir_index filetype scope 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
文件系统标志:signed_directory_hash
默认挂载选项:user_xattr acl
文件系统状态:清除错误
错误行为:继续
文件系统操作系统类型:Linux
Inode 计数:1501440
区块数量:5998016
保留块数:299900
空闲区块:2303431
空闲 inode:1393801
第一个区块:0
区块大小:4096
片段大小:4096
组描述符大小:64
保留 GDT 块:1024
每组块数:32768
每组碎片:32768
每组的 Inode 数:8160
每组的 Inode 块:510
弹性块组大小:16
文件系统创建时间:2016 年 4 月 9 日星期六 17:57:07
上次装载时间:2016 年 12 月 19 日星期一 02:11:03
最后写入时间:2016 年 12 月 19 日星期一 03:24:29
坐骑数量:382
最大挂载数量:-1
最后检查时间:2016 年 4 月 9 日星期六 17:57:07
检查间隔:0()
终身写入:95 GB
保留块 uid: 0 (用户 root)
保留块 gid:0(组根)
第一个 inode:11
Inode 大小:256
所需额外尺寸:32
所需额外尺寸:32
日志 inode:8
默认目录哈希:half_md4
目录哈希种子:65bfc178-1879-4c35-ab2c-39bf976dff4c
日志备份:inode 块
FS 错误计数:9760
第一次错误时间:2016 年 12 月 19 日星期一 03:24:13
第一个错误函数:ext4_read_inode_bitmap
第一个错误行号:186
第一个错误 inode 编号:0
第一个错误块编号:0
最后错误时间:2016 年 12 月 19 日星期一 03:24:21
最后一个错误函数:ext4_iget
最后错误行号:4095
最后一个错误 inode 编号:14
最后一个错误块编号:0
校验和类型:crc32c
校验和:0x989a676a
dumpe2fs:读取日志 inode 时,inode 校验和与 inode 不匹配

(二)e2fsck -fy

这个输出太长了,无法发布。所以这里有一个链接:e2fsck 输出

最终产品可以安装,但无法恢复。失物招领处有一个文件,而且该文件非常大。如果您需要,我可以提供详细信息。

感谢您的帮助。我期待您对上述内容的看法。

相关内容