我的 btrfs 文件系统以某种方式损坏(父 transid,内部错误,...)。我尝试了修复选项,但我认为某些文件系统现在只是搞砸了。btrfs 卷用于备份。因此,丢失一些备份并不是什么大问题。但我只想让文件系统恢复健康状态。
如何?
root@openmediavault:/home/christian# btrfs check /dev/sdf
Opening filesystem to check...
Checking filesystem on /dev/sdf
UUID: dc7ca9ad-6af0-47e9-9c3a-860127d2c362
[1/7] checking root items
[2/7] checking extents
ref mismatch on [739855515648 16384] extent item 0, found 1
tree backref 739855515648 parent 2 root 2 not found in extent tree
backpointer mismatch on [739855515648 16384]
...
ref mismatch on [1407768510464 16384] extent item 1, found 0
backref 1407768510464 root 2 not referenced back 0x5642911036f0
incorrect global backref count on 1407768510464 found 1 wanted 0
backpointer mismatch on [1407768510464 16384]
owner ref check failed [1407768510464 16384]
ERROR: errors found in extent allocation tree or chunk allocation
[3/7] checking free space cache
cache and super generation don't match, space cache will be invalidated
[4/7] checking fs roots
更新
root@openmediavault:/home/christian# btrfs rescue super-recover /dev/sdf
All supers are valid, no need to recover
root@openmediavault:/home/christian# btrfs rescue zero-log /dev/sdf
Clearing log on /dev/sdf, previous log_root 0, level 0
Failed to find [1407768215552, 168, 16384]
btrfs unable to find ref byte nr 1407768248320 parent 0 root 2 owner 0 offset 0
transaction.c:195: btrfs_commit_transaction: BUG_ON `ret` triggered, value -5
btrfs(+0x3b748)[0x5588027c3748]
btrfs(btrfs_commit_transaction+0x12a)[0x5588027c3bcc]
btrfs(+0x5ae38)[0x5588027e2e38]
btrfs(main+0x1f3)[0x55880279be63]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb)[0x7f0ef5be609b]
btrfs(_start+0x2a)[0x55880279beaa]
Abgebrochen