Как btrfs проверить корневой раздел
Я уверен, что причина, по которой у меня мозг пердит, в том, что уже поздно, но как мне выполнить проверку btrfs в корневом разделе?
Устройство должно быть размонтировано, что не может произойти, потому что это корневой раздел...
Спасибо
3 ответа
Если вы используете systemd
, вы можете передать параметр ядра fsck.mode=force
проверить все файловые системы. Это исправит все "безопасные" ошибки.
Если у вас все еще есть проблемы (проверьте ваши логи), пройдите fsck.repair=yes
в дополнение к вышесказанному, который попытается все починить.
Для источника этого и других вариантов (например, shutdown -F
) за upstart
а также sysvinit
init, смотрите здесь.
ВНИМАНИЕ: Утилита НИЧЕГО НЕ ДЕЛАЕТ и возвращает успех! На странице руководства объясняется, что необходимо использовать отдельную команду. См. здесь: https://man7.org/linux/man-pages/man8/fsck.btrfs.8.html .
Единственный способ проверить систему BTRFS — использовать собственный инструмент. У вас должен быть отключен корневой том, поэтому единственный вариант — действительно загрузиться с livecd.
Любой совет, который в конечном итоге приведет к звонкуfsck.btrfs
это просто неправильно и опасно , это просто заглушка, которая распечатывает сообщение и ничего не делает. Сюда входят ответы сfsck.mode
параметры командной строки ядра или.forcefsck
файлы тоже.
[root@nuc ~]# cat /usr/sbin/fsck.btrfs
#!/usr/bin/sh -f
AUTO=false
while getopts ":aApy" c
do
case $c in
a|A|p|y) AUTO=true;;
esac
done
shift $(($OPTIND - 1))
eval DEV=\${$#}
if [ ! -e $DEV ]; then
echo "$0: $DEV does not exist"
exit 8
fi
if ! $AUTO; then
echo "If you wish to check the consistency of a BTRFS filesystem or"
echo "repair a damaged filesystem, see btrfs(8) subcommand 'check'."
fi
exit 0
Однако, если вы просто не уверены, все ли в порядке после отключения электроэнергии или чего-то в этом роде,btrfs check
может выполнить проверку смонтированной файловой системы только для чтения:
[root@nuc ~]# btrfs check --readonly --force /dev/sda5
Opening filesystem to check...
WARNING: filesystem mounted, continuing because of --force
Checking filesystem on /dev/sda5
UUID: 8c44de9c-c91b-4ac4-857b-da191dc62274
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 3628683264 bytes used, no error found
total csum bytes: 3093864
total tree bytes: 136937472
total fs tree bytes: 126074880
total extent tree bytes: 6455296
btree space waste bytes: 23047273
file data blocks allocated: 5676253184
referenced 4705763328