运行btrfsck
,或者更正式地说,btrfs check --repair
给出此输出,说明存在根索引节点错误。修复命令无法解决问题,重新运行将显示相同的输出。该系统是完全可安装且可操作的,但我无法对分区执行高级操作(调整大小)。
sudo btrfs check --repair /dev/sda9
enabling repair mode
Checking filesystem on /dev/sda9
UUID: 82fca3c2-703b-4fae-aec2-6b7df1be71c1
checking extents
Fixed 0 roots.
checking free space cache
cache and super generation don't match, space cache will be invalidated
checking fs roots
root 257 inode 452001 errors 400, nbytes wrong
root 257 inode 452004 errors 400, nbytes wrong
root 257 inode 452005 errors 400, nbytes wrong
root 257 inode 452006 errors 400, nbytes wrong
root 257 inode 452010 errors 400, nbytes wrong
root 257 inode 452011 errors 400, nbytes wrong
root 257 inode 452012 errors 400, nbytes wrong
root 257 inode 1666032 errors 400, nbytes wrong
checking csums
checking root refs
found 33957216263 bytes used err is 0
total csum bytes: 32206988
total tree bytes: 968933376
total fs tree bytes: 886636544
total extent tree bytes: 35323904
btree space waste bytes: 199109273
file data blocks allocated: 41090113536
referenced 32584159232
btrfs-progs v4.0.1
如果损坏的索引节点是唯一存在的问题,解决方案就是简单地删除它们。可能有更快的方法可以做到这一点,但这是对我有用的方法。从这里我收集到您可以使用 find 命令搜索索引节点,如下所示:
find / -inum XXXXXX -print
当然,从 btrfsck 命令中给它有问题的索引节点。它将显示有问题的文件,您可以将其删除。当全部删除后,btrfsck 将清除,系统将正常运行。