btrfs fi show显示所有btrfs文件系统,但也显示了许多错误,例如:
父传递验证失败于109973766144 -1823年发现
文件系统仍然可以卸载和重新安装。
发布于 2017-09-28 15:06:46
浏览网页时,我发现很多答案建议使用btrfs-zero-log清除btrfs的内部日志。我认为btrfsck可以帮上忙,但最终我发现了正式建议,即首先启动一个 https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-scrub,然后再采取其他行动!
因此,如果您仍然可以挂载您的文件系统,只需运行btrfs scrub /path/to/mountpoint即可。也许在我的案子里起作用了。
发布于 2021-03-22 12:25:17
小心btrfs-零日志
btrfs-零日志文档清楚地指出,它不是一个通用的工具:
btrfs-零日志并不是一个通用的修复工具,,尽管许多人都相信它,并且在互联网上声明了这一点。你一般不需要用它。
这种工具只有一个用例:当您有BTRFS: failed to read log tree日志时。
用usebackuproot修复父传递验证失败错误
3.2linux内核于2012年1月推出 recovery选项。然后,2016年5月推出了4.6版的“它被取代了 by usebackuproot”。如果您感兴趣,也可以看到承诺。
文档清楚地解释了它所做的事情:
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.正式常见问题部分注记声明这是修复“父传递”错误的正确方法:
如何从“父传递验证失败”错误中恢复? 例如:
parent transid verify failed on 29360128 wanted 1486656 found 1486662如果第二个数字(想要1486656和发现1486662)紧密地在一起(大约在20之间),那么用-o ro,usebackuproot也许能帮上忙。如果它在只读挂载中是成功的,那么在没有ro选项的情况下再试一次,以获得读写挂载。 --如果usebackuproot链接不工作,那么FS基本上是当前状态下的不可恢复的,使用当前的工具。您应该使用btrfs还原刷新备份,然后从备份恢复。
要使用的命令
这些命令只是Fedora安装上失败的btrfs磁盘的例子。用设备替换
/dev/sda2,用挂载点替换/sysroot
首先在只读模式下尝试:
mount -t btrfs -o ro,usebackuproot /dev/sda2 /sysroot如果这有效,请在没有readonly命令的情况下再试一次:
mount -t btrfs -o usebackuproot /dev/sda2 /sysroot如果这样做有效,您应该能够引导您的Linux。
发布于 2018-01-22 13:47:09
我也遇到了类似的情况:
parent transid verify failed on 109973766144 wanted 1823 found 1821BTRFS info (device sda): no csum found for inode 16485445 start 73728和BTRFS warning (device sda): csum failed ino 16485465 off 36864 csum 2268363541 expected csum 0。my system的配置
附加信息
ERROR: scrubbing /dev/md124p2 failed for device id 1: ret=-1, errno=5失败我通过删除nfs导出来解决这个问题。从/etc/export/然后重新装订卷,瞧,一切都很好
更新2018年1月29日:工作了几天就回到了原来的状态
https://stackoverflow.com/questions/46472439
复制相似问题