Как исправить ошибки корневого индекса узла btrfs

Бег 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

1 ответ

Решение

При условии, что сломанные иноды являются единственной проблемой, решение состоит в том, чтобы просто удалить их. Возможно, есть более быстрый способ сделать это, но вот что сработало для меня. Отсюда я понял, что вы можете использовать команду find для поиска инода:

find / -inum XXXXXX -print

конечно, давая ему соответствующий inode из команды btrfsck. Он покажет вам оскорбительный файл, и вы можете удалить его. Когда все будет удалено, btrfsck будет очищен, и система будет работать нормально.

PS Я спросил и ответил на это, потому что на самом деле не было никакой полезной информации об этом. Надеюсь, это будет полезно.

Другие вопросы по тегам