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

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

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

 

 

Настроить fsck при загрузке системы

В 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 представляют три параметра:
  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 при таких настройках будет выполняться каждый раз при загрузке системы, а также согласно заданным интервалам.