fsck при загрузке


В Linux можно задавать необходимость fsck при загрузке — файловая система при этом будет проверяться каждый раз и исправлять ошибки если они имеются.



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

Исправляется ситуация в большинстве случаев загрузкой системы с внешнего носителя и исправлением ошибок при помощи fsck -y /dev/vda.  Для облачных серверов это делается через режим восстановления.



Полезным может быть настройка fsck при загрузке — файловая система при этом будет проверяться каждый раз и исправлять ошибки если таковые имеются. Необходимость загрузки с USB или из rescue mode в этом случае отпадет.



В Debian необходимая опция находится в фале /etc/default/rcS

mcedit /etc/default/rcS



Приведенную ниже строку нужно найти и раскомментировать установив значение в YES

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes



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




Можно указать необходимость разовой проверки при следующей загрузке системы создав в корне пустой файл с именем forcefsck — это делается командой touch /forcefsck




Регулярная проверка файловой системы


Информацию по разделу (в примере корневому) можно получить используя утилиту tune2fs

tune2fs -l /dev/vda

tune2fs 1.42.5 (29-Jul-2012)
Filesystem volume name: rootfs
Last mounted on: /
Filesystem UUID: d1e9652f-b797-4f8c-90ed-62a632e11ac6

Filesystem state: clean

Mount count: 3
Maximum mount count: -1
Last checked: Fri Jan 12 06:20:42 2018
Check interval: 0 (<none>)



В случае если на диске созданы разделы нужно передавать tune2fs имя раздела.



Пример приведен на скриншоте:

fsck при загрузке


 Интерес в выводе tune2fs представляют три параметра:


  1. Filesystem state — показывает есть ли в настоящее время ошибки. clean означает, что ошибок нет.
  2.  Maximum mount counts  — максимальное количество монтирований раздела (включений/выключений машины в общем случае) между проверками
  3. Check interval — какой промежуток времени задан между автоматическими проверками. 0 означает, что регулярных проверок не производится


Первый параметр из приведенных исключительно информационный, второй и третий можно изменить задав тем самым необходимость проверки



Установим максимальное количество монтирований в 20

tune2fs -c 20 /dev/vda

tune2fs 1.42.5 (29-Jul-2012)
Setting maximal mount count to 20



Файловая система будет проверяться раз в месяц если tunefs использовать с ключом -i задав значение 1m

tune2fs -i 1m /dev/vda

tune2fs 1.42.5 (29-Jul-2012)
Setting interval between checks to 2592000 seconds



tune2fs -l /dev/vda

Maximum mount count: 20
Last checked: Fri Jan 12 06:20:42 2018
Check interval: 2592000 (1 month)

fsck для раздела /dev/vda при таких настройках будет выполняться каждый раз при загрузке системы, а также согласно заданным интервалам.



Читайте про выполнение fsck вручную с отмонтированием раздела.

Сказать спасибо