Beware of btrfs-zero-log
btrfs-zero-log文档
明确指出,这不是一个通用的工具,可以使用。
btrfs-zero-log
不是一个通用的修复一切的工具
,
尽管许多人相信并在互联网上声明
.你一般不需要使用它。
这个工具只有一个用例:当你有
BTRFS: failed to read log tree
日志时。
Fixing
parent transid verify failed
errors with
usebackuproot
The 3.2 Linux kernel
于2012年1月推出
的
recovery
选项。
然后,在2016年5月的4.6版本中。
它被取代了
作者:
usebackuproot
。
你也可以看到
the commit
if you're interested.
The
文件
清楚地解释它的作用。
usebackuproot
nousebackuproot
(since: 4.6, default: off)
Enable autorecovery attempts if a bad tree root is found at mount time.
Currently this scans a backup list of several previous tree roots and
tries to use the first readable. This can be used with read-only mounts as well.
Note: This option has replaced recovery.
A 官方常见问题部分的说明指出,这是解决这个 "父代transid "错误的正确方法。
我如何从 "父代转录验证失败 "的错误中恢复?
parent transid verify failed on 29360128 wanted 1486656 found 1486662
如果后两个数字(想要1486656和发现1486662)接近
在一起(大约在20以内),那么就用
-o ro,usebackuproot
可能会有帮助。如果在只读挂载的情况下成功了,那么再试一次
不加ro
选项,进行读写挂载。
如果usebackuproot不起作用,那么FS基本上就无法恢复了在其当前状态下,使用当前的工具。你应该使用btrfs restore来刷新你的备份,然后再从备份中恢复。
Commands to use
这些命令只是Fedora安装中btrfs磁盘故障的例子。
用你的设备替换/dev/sda2
,用你的挂载点替换/sysroot
。
在只读模式下第一次尝试。
mount -t btrfs -o ro,usebackuproot /dev/sda2 /sysroot
如果成功了,再试一次,不使用readonly命令。
mount -t btrfs -o usebackuproot /dev/sda2 /sysroot
如果这样做了,你应该能够启动你的Linux。