btrfs fi show
显示所有btrfs文件系统,但也有很多错误,如:
父母transid验证失败109973766144想要1823找到1821
文件系统仍然可以卸载并重新安装。
答案 0 :(得分:3)
btrfs-zero-log documentation 明确指出它不是一个通用的工具:
<块引用>btrfs-zero-log 不是通用的解决所有问题的工具,尽管互联网上有许多人相信和陈述的内容。您通常不需要使用它。
此工具只有一个用例:当您有 BTRFS: failed to read log tree
日志时。
usebackuproot
3.2 Linux 内核 introduced in January 2012 recovery
选项。
然后,在 2016 年 5 月的 4.6 版本中,usebackuproot
的 it was superseded。
如果您有兴趣,也可以查看 the commit。
documentation 清楚地解释了它的作用:
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.
note in the official FAQ section 声明这是解决此“父传输”错误的正确方法:
<块引用>如何从“父传输验证失败”错误中恢复?
例如:
parent transid verify failed on 29360128 wanted 1486656 found 1486662
如果后两个数字(想要 1486656 找到 1486662)接近 在一起(彼此之间大约 20 以内),然后与
一起安装-o ro,usebackuproot
可能会有所帮助。如果使用只读挂载成功,请重试
不带 ro
选项,用于读写挂载。
如果 usebackuproot 不起作用,那么使用当前工具基本上无法恢复 FS 的当前状态。您应该使用 btrfs restore 来刷新您的备份,然后从它们恢复。
这些命令只是 Fedora 安装中 btrfs 磁盘出现故障的示例。
将 /dev/sda2
替换为您的设备,将 /sysroot
替换为您的挂载点
首先尝试只读模式:
mount -t btrfs -o ro,usebackuproot /dev/sda2 /sysroot
如果可行,请在不使用 readonly 命令的情况下重试:
mount -t btrfs -o usebackuproot /dev/sda2 /sysroot
如果成功,您应该可以启动 Linux。
答案 1 :(得分:2)
我遇到了类似的情况:
parent transid verify failed on 109973766144 wanted 1823 found 1821
BTRFS 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
我的系统配置
Rockstor操作系统
RAID 10设置
其他信息
btrfs mount变为只读
btrfs-scrub因ERROR: scrubbing /dev/md124p2 failed for device id 1: ret=-1, errno=5
我通过删除nfs导出来解决它,即。从/ etc / export /然后重新安装卷,瞧一切都好了
更新2018年1月29日:工作几天后,它又回到了同一个州
答案 2 :(得分:1)
网上冲浪我发现很多answers建议使用btrfs
来清除btrfs-zero-log
'内部日志。我认为btrfsck
可能会有所帮助,但最终我发现official recommendation是 首先开始btrfs scrub
,然后再采取其他措施!
如果您仍然可以挂载文件系统,那么只需运行btrfs scrub /path/to/mountpoint
即可。也许它就像我的情况一样。
答案 3 :(得分:0)
这里有类似/相同的问题:
parent transid verify failed on 29605888 wanted 50 found 46
对我来说btrfs不再可挂载,因此btrfs scrub
是不可选择的。
我的/etc/exports
也是空的。
我尝试了btrfsck --init-extent-tree /dev/sda4
,但仍然出现错误。
...
btrfs check(main+0x82)[0x411ba2]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f8210fab555]
btrfs check[0x411ca8]
Aborted
#
链接到屏幕截图(无法上传): Screenshot
似乎唯一的解决方案是通过以下方式将数据还原到另一个磁盘上
btrfs restore /dev/sda4 /mnt/anotherdisk/folder
。