BTRFS 分区未挂载父级 transid 验证失败且子级 eb 损坏

BTRFS 分区未挂载父级 transid 验证失败且子级 eb 损坏

在过去 3 个月中使用 BTRFS 的经验很好……直到今天……BTRFS 非常好,但是一旦出现问题,就会带来很大的麻烦。使用 Lubuntu 20.04 64 位作为 root 分区和 home 分区,两者都是 BTRFS。不是交换分区。home 分区 BTRFS 在 fstab 中配置如何

defaults,noautodefrag,compress-force=zlib:9,nospace_cache,noatime,commit=36000,max_inline=0

当系统崩溃时我总是运行以下命令

sudo btrfs check --force --readonly --progress /dev/sda

如果有任何错误几乎总是“缓存和超级生成不匹配,空间缓存将失效”我运行下面的命令来修复

sudo btrfs check --force --readonly --progress --clear-space-cache v1 /dev/sda

之后

sudo btrfs check --force --repair --progress /dev/sda 做这件事从来没有遇到过问题。

今天系统崩溃了,因此在分区主目录中按顺序运行以下命令。

sudo btrfs check --force --readonly --progress /dev/sda
sudo btrfs check --force --readonly --progress --clear-space-cache v1 /dev/sda
sudo btrfs check --force --repair --progress /dev/sda

当系统在用户登录屏幕重新启动时,如果主分区未挂载,则无法继续加载系统。在恢复模式下启动并运行以下命令

sudo btrfs check --force --readonly --progress /dev/sda

结果

parent transid verified failed on 30638080 wanted 73427 found 73667
ignoring transid failure
error child eb corrupted : parent byte nr=305725544 item=1 parent level=2 child level=0
error failed to read block groups input/output error
error cannot open filesystem

无法挂载主分区

在我尝试了其他几个命令之后

btrfs resuce zero-log sda
restarting adding in fstab
usebackuproot
mount -t btrfs -o usebackuproot /dev/<btrfs-device
and again
sudo btrfs check --force --readonly --progress /dev/sda

但没有修复任何错误,但结果却是一样的。

不是坏块或者磁盘的其他问题。如何恢复该分区?

我已经使用电脑多年了,从来没有见过这样的事情发生。当 BTRFS 出现问题时,请参阅链接 https://www.youtube.com/watch?v=qHalOdCZO9Q 现在尝试了解 ZFS 是否适合压缩并且易于修复。非常感谢您的回复。

相关内容