Как принудительно проверить файловую систему при перезагрузке Linux
tune2fs
fsck
forcefsck
blkid
tune2fs - утилита управления файловой системой. С ее помощью мы можем получить некоторую важную информацию, связанную с проверкой работоспособности файловой системы. Следующая команда покажет, когда в последний раз /dev/sdX проверялась файловая система:
tune2fs -l /dev/sdbX | grep Last c
Last checked: Sun Dec 11 09:14:22 2019
Anther useful information which can be retrieved by tune2fs
command relates to how many times our /dev/sdX
filesystem was mounted:
Еще одна полезная информация, которую можно получить с помощью tune2fs, касается того, сколько раз была смонтирована наша файловая система:
tune2fs -l /dev/sdbX | grep Mount
Mount count: 157
И, наконец, сколько монтирований разрешено до принудительной проверки файловой системы:
tune2fs -l /dev/sdbX | grep Max
Maximum mount count: -1
Из приведенных выше выводов следует следующее:
- последний /dev/sdbXраз файловая система проверялась 11 декабря 09:14:22 2019
- c момента последней проверки эта файловая система была смонтирована 157 раз
- максимальное количество раз до следующей проверки файловой системы fsck: в нашем примере значение
-1
означает, что fsck отключен.
Теперь рассмотрим параметры конфигурации системы PASS, который находится в файле /etc/fstab, содержащем все разделы, монтируемые при загрузке, и соответствующие параметры монтирования.
# blkid | grep sdb1
/dev/sdb1: UUID="c6e22f63-e63c-40ed-bf9b-bb4a10f2db66" TYPE="ext2"
# grep c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /etc/fstab
UUID=c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /mnt ext2 errors=remount-ro 0 0
Последний столбец #6, он же столбец
fsck PASS
, используется, чтобы определить, должна ли fsck проверять файловую систему перед ее монтированием,
и в каком порядке /etc/fstab должны проверяться заданные разделы. Возможные записи для столбца PASS fstab: 0,1 и 2.
- 0 - отключено, т.е. не проверять файловую систему
- 1 - раздел с этим значением PASS имеет более высокий приоритет и проверяется первым. Это значение обычно устанавливается для корневого /раздела.
- 2 - разделы с этим значением PASS будут проверены последними
Связь между значением PASS fstab, последним проверенным значением и значением количества подключений выглядит следующим образом:
Во время загрузки системы первым проверяется значение fstab PASS. Если это значение равно 0, другие значения не проверяются.
Это значит, что fsck НЕ будет выполняться. Если найденное значение PASS /etc/fstab отличается от 0,
то проверяются значения максимального и общего количества подключений.
Если значение максимального количества монтирований больше или равно общему количеству монтирований, то будет выполнена проверка файловой системы fsck.
Несколько примеров:
FSCK DISABLED
fstab PASS: 1
Maximum mount count: -1
Mount count: 157
----
FSCK DISABLED
fstab PASS: 0
Maximum mount count: -1
Mount count: 157
----
FSCK ON NEXT REBOOT
fstab PASS: 1 or 2
Maximum mount count: 1
Mount count: 157
----
FSCK DISABLED
fstab PASS: 0
Maximum mount count: 1
Mount count: 1
----
FSCK ON NEXT REBOOT
fstab PASS: 1 or 2
Maximum mount count: 1
Mount count: 1
----
NO FSCK ON NEXT REBOOT
fstab PASS: 1 or 2
Maximum mount count: 200
Mount count: 157
Принудительная проверка fsck для корневого раздела
Самый простой способ принудительно проверить файловую систему fsck на корневом разделе, заключается в создании пустого файла с именем forcefsck в корневом каталоге раздела.
touch /forcefsck
После проверки файловой системы forcefsck файл будет удален, поэтому при следующей перезагрузке ваша файловая система НЕ будет проверяться снова.
Чтобы включить постоянное решение и принудительно проверять файловую систему при каждой перезагрузке, нужно настроить параметр файловой системы «Максимальное количество монтирований».
Следующая команда гарантирует, что файловая система /dev/sdb1 будет проверяться каждый раз при перезагрузке вашей системы Linux.
Обратите внимание, что для этого значение PASS в fsck /etc/fstab должно быть установлено на положительное целое число, как обсуждалось выше.
tune2fs -c 1 /dev/sdb1
Принудительная проверка fsck для некорневых разделов
В отличие от корневого раздела, создание пустого forcefsck файла НЕ будет запускать проверку раздела при перезагрузке.
Единственный способ заставить fsck на всех других некорневых разделах - это установка значения PASS равно 2 в /etc/fstab.
UUID=c6e22f63-e63c-40ed-bf9b-bb4a10f2db66 /mnt ext2 errors=remount-ro 0 2
Кроме того, мы можем настроить fsck для проверки файловой системы после каждых 5 перезагрузок:
tune2fs -c 5 /dev/sdb1
Чтобы отключить запуск fsck:
tune2fs -c 0 /dev/sdb1