Перевірка дисків fsck

Рано чи пізно це трапляється, а саме крах системи або розділу, неможливість перевірити файлову систему і т.д. Тому системний адміністратор повинен знати що робити в таких ситуаціях, так би мовити знати як «Отче наш».

1) fsck при завантаженні ОС

Коли трапляється збій харчування в роботу вступає fsck: file system consistency check and interactive repair або якщо російською, то «перевірка цілісності файлової системи і інтерактивне відновлення». За замовчуванням перевірка дисків відключена. Що б її включити при завантаженні системи, додамо таку строчку

в файл /etc/rc.conf. В цьому випадку, при некоректному завершенні роботи сервера, буде автоматично запускатися перевірка всіх файлових систем.

Сама перевірка складається з 5-ти етапів:

** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups

Насправді, Phase 1 ще підрозділяється на 1a і 1b. Це можна помітити тільки тоді, коли трапився чесний крах.

Все це добре, але є одне АЛЕ! Коли відбувається перевірка файлової системи, то поки розділ не перевіритися, він не змонтують і стане доступним, відповідно, збільшується час завантаження сервера. Розробники і це передбачили і зробили можливим запуск перевірки в «тлі». Хоча насправді це тільки спроба, але все ж краще, ніж нічого. за замовчуванням вона включена. Правда з цього приводу Точа дискусії на тему «чи потрібно включати перевірку в тлі чи ні». Вирішувати вам.

Є один неприємний момент в процесі перевірки ФС при завантаженні. Якщо розділ досить великий, то його перевірка може зайняти тривалий час, при цьому, fsck як би зависає на кожному з етапів. Іншими словами візуально незрозуміло, чи то йде перевірка, чи то сервер завис. Ну і при всьому при цьому незрозуміло, скільки вже перевірено і скільки буде перевірятися. Що б трохи полегшити життя системним адміністраторам, розробники впровадили недокументірованую возмножность. натискання комбінації Ctrl + T показує поточний стан перевірки: скільки вже перевірено, в процентах. Якщо через пару хвилин захочете дізнатися знову стан - потрібно знову натиснути Ctrl + T і так кожен раз.

Є кілька параметрів, які прописуються в /etc/rc.conf і стосуються fsck. Нижче наведено їх дефолтні значення:

fsck_y_enable = "NO" # Включити перевірку при запуску, якщо робота була завершена некоректно.
fsck_y_flags = "" # Додаткові прапори для fsck -y
background_fsck = "YES" # Спроба запустити перевірку в тлі
background_fsck_delay = "60" # Час затримки перед запуском fsck в тлі.

Я рекомендую прописати в /etc/rc.conf тільки таке:

І так, ось приклади роботи fsck:

- якщо сервер вимикався коректно, то при завантаженні ми побачимо таке повідомлення:

- якщо некоректно, то таке

** / dev / ad2s1g (NO WRITE)
** Last Mounted on / var
** Phase 1 - Check Blocks and Sizes

INCORRECT BLOCK COUNT I = 446041 (4 should be 0)
CORRECT? yes
INCORRECT BLOCK COUNT I = 446045 (4 should be 0)
CORRECT? yes

** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts

** Phase 5 - Check Cyl groups

FREE BLK COUNT (S) WRONG IN SUPERBLK
SALVAGE? yes
SUMMARY INFORMATION BAD
SALVAGE? yes
BLK (S) MISSING IN BIT MAPS
SALVAGE? yes
2242 files, 1607116 used, 973436 free (2196 frags, 121405 blocks, 0.1% fragmentation)

2) Ручний запуск fsck

Відразу зауважу, що перевірка робиться ТІЛЬКИ НА не змонтовані РОЗДІЛІ! Інакше можете втратити всі дані.
І так, розглянемо тільки ті параметри, які часто використовуються. А саме

-y | -n. цей параметр буде відповідати відповідно YES | NO на всі питання при виникненні невідповідностей.
-B | -F. відповідно фоновий і нефоновий режими
-f. перевірити розділ, навіть якщо він був відключений коректно.

Рекомендую запускати з такими параметрами:

Якщо запустити без параметра -y. то при перевірці і знаходженні невідповідностей буде видаватися питання, на що можна відповісти Y або N. зазвичай відповідають Y. Не дуже зручно кожен раз відповідати Y. тому краще запускати з параметром Y

** / dev / ad2s1g (NO WRITE)
** Last Mounted on / var
** Phase 1 - Check Blocks and Sizes

INCORRECT BLOCK COUNT I = 446041 (4 should be 0)
CORRECT?

Є хороша новина: комбінація CTRL + T працює і в ручному режимі.

Схожі статті