如何恢复损坏的、无法读取的 btrfs 分区

如何恢复损坏的、无法读取的 btrfs 分区

我在 btrfs 分区上使用 Manjaro。我回到笔记本电脑,发现它不接受我的密码,过去我通过重启解决了这个问题。我尝试从已登录的 tty 2 重启,但失败了,最后出现了类似 systemd 的“执行冻结”之类的信息。所以我强制关机,希望如果出现损坏问题,我可以使用 btrfs 工具来修复或恢复它。(至于为什么会发生这种情况,可能是因为系统驱动器是通过 USB 连接的,所以存在物理连接问题。这是我现在唯一的选择。)

GRUB 给出了“未知文件系统”。我尝试启动 Kubuntu,但它也无法识别 btrfs。从另一个答案中,我编写了 magic _BHRfS_M,让系统识别它是 btrfs 并在文件管理器中显示它,但它没有挂载,其他问题也没有得到解决。我尝试使用 btrfs-progs 工具,它之前在另一个驱动器上对我有用。我尝试了、、、和下的所有命令。所有命令都给出了错误,除了 chunk-recover 给出btrfs check /dev/sdb2btrfs check --rescue /dev/sdb2btrfs rescuebtrfs restorebtrfs scrubNo valid Btrfs found on /dev/sdb2

read super block error
recover prepare error
Chunk tree recovery failed

使用 cat 和 grep,我查找了一些代码,发现驱动器中的文件内容完好无损,包括多个备份。我不明白为什么会发生这种情况 - 怎么会所有的恢复工具都像这样立即失败,而我却无法得到任何结果?是否有希望恢复至少部分文件系统?

答案1

假设您没有最近的备份要恢复:我现在将对整个驱动器进行 dd 映像,然后处理该映像的副本。(如果是硬件故障,那么您不想对其进行破坏。)

fsck.btrfs 是我要向它抛出的第一个东西。

如果失败,则测试磁盘,以恢复分区表。然后查看它是否能正常安装和读取。

如果失败,则使用手术刀或照片记录器尝试恢复单个完整(或不完整)的文件。

一旦/如果您恢复了数据,请检查驱动器智能数据。如果没问题,则运行破坏性坏块。然后将数据恢复到其中。

相关内容