1. Чому важливо перевіряти файлову систему?
Файлова система в Linux — це насправді один із най"завантаженіших" співробітників ОС. Вона працює, поки ти зберігаєш файли, відкриваєш програми або просто читаєш дані. А тепер уяви: у найвідповідальніший момент цей співробітник втомився і вирішив впасти в обморок (читай: система вимкнулася через відключення електроенергії). Це може призвести до пошкодження таблиці файлів, втрат даних або купи інших неприємних проблем.
А що може піти не так?
- Різке вимкнення живлення — твій пристрій раптово вимкнувся, не встигши завершити запис даних.
- Помилка зберігання — жорсткий диск або SSD можуть мати апаратні збої, які пошкодять файлову систему.
- Програмні помилки — не виключені баги в драйверах або системних утилітах.
Часто після таких подій файлова система приходить в непридатність, і система сама може попросити тебе перевірити її стан. Ось тут-то і приходить на допомогу fsck, що розшифровується як File System Check.
2. Що таке fsck і як він працює?
Ідея інструмента
fsck — це універсальна утиліта, яка перевіряє цілісність файлової системи та виправляє виявлені помилки. Працює вона, як лікар: проводить тести, знаходить проблему і, якщо можливо, "лікує". Якщо проблема занадто серйозна, fsck може хоча б діагностувати, що саме пішло не так.
Коли використовується fsck?
- При явних збоях роботи файлів (наприклад, вони раптом "зникли").
- Якщо система не завантажується і повідомляє про помилку файлової системи.
- Для регулярної профілактики, щоб переконатися, що все в порядку.
3. Основний синтаксис fsck
Для використання fsck зазвичай застосовується наступна команда:
fsck [ключі] <пристрій>
Основні ключі:
-y— Автоматично підтвердити виправлення. Це зручно, якщо не хочеться сидіти і натискатиyesна кожне питання.-n— Тільки перевірка, без виправлень (сухий прогін). Корисно для аналізу ситуації, якщо боїшся щось зіпсувати.-t— Вказати тип файлової системи (наприклад,ext4,xfs).-r— Увімкнути інтерактивний режим (треба буде підтверджувати кожне виправлення).
4. Практика: перевірка файлової системи
Давайте почнемо з простої перевірки. Припустимо, у нас є пристрій /dev/sdb1, який ми хочемо перевірити.
Крок 1: Перевірка без виправлень
Для початку оцінимо стан файлової системи без внесення змін:
fsck -n /dev/sdb1
Після виконання команди ви побачите список виявлених проблем, якщо вони є. Ось приклад виводу:
Inodes that were part of a corrupted orphan linked list found.
Filesystem errors detected. Run fsck to repair.
Крок 2: Автоматичне виправлення
Тепер ми увімкнемо режим виправлення помилок:
fsck -y /dev/sdb1
fsck буде намагатися виправити кожну знайдену помилку і автоматично підтверджувати дії. Це може зайняти трохи часу, якщо пристрій великий.
5. Що робити, якщо файлова система використовується?
Помилка при запуску fsck
Якщо ви спробуєте запустити fsck на розділі, який вже змонтований, то отримаєте попередження:
fsck: cannot check a mounted filesystem.
Це відбувається, тому що перевірка змонтованої файлової системи може призвести до пошкодження даних. Є декілька способів вирішити цю проблему.
- Змонтуйте пристрій у режимі тільки для читання.
mount -o remount,ro /dev/sdb1
- Використовуйте LiveCD або LiveUSB.
Завантажтеся з завантажувального диску чи флешки, щоб виконати перевірку на вже відмонтованому пристрої.
- Використовуйте режим відновлення.
Перезавантажте систему в режимі відновлення, який зазвичай пропонує безпечне середовище для виконання перевірки.
Особливості перевірки кореневої файлової системи /
Коренева файлова система — унікальний випадок, оскільки вона активно використовується системою. Щоб запустити fsck для такого розділу, знадобиться:
- Перейти в режим однокористувацького режиму за допомогою команди:
systemctl isolate rescue.target
- Ручно запустити
fsck:
fsck -y /
6. Типові помилки та їх виправлення
Пошкоджені inodes
Якщо fsck повідомляє про пошкоджені inode'и (структури, що зберігають інформацію про файли), він запропонує їх видалити. Це безпечно, оскільки пошкоджений inode вже не пов’язаний з поточними файлами.
Загублені файли
Іноді після запуску fsck загублені файли потрапляють в каталог lost+found у корені файлової системи. Ви можете перевірити це місце вручну, щоб відновити важливі дані.
Важливі рекомендації
Завжди робіть резервні копії перед перевіркою. Хоча
fsckзазвичай працює безпечно, виправлення можуть призвести до втрати даних.Не запускайте
fsckна змонтованих розділах. Це може призвести до пошкодження даних.Використовуйте прапор
-nдля первинного аналізу. Якщо не впевнені, чи варто виправляти помилки автоматично, почніть із сухого запуску.
7. Приклад: Симуляція помилки і виправлення
- Створіть віртуальний диск і створіть на ньому файлову систему:
dd if=/dev/zero of=./disk.img bs=1M count=100
mkfs.ext4 ./disk.img
- Змонтуйте диск:
sudo mount ./disk.img /mnt/test/
- Симулюйте пошкодження:
sudo dd if=/dev/zero of=/mnt/test/randomfile bs=512 count=10
- Відмонтуйте диск і перевірте його:
sudo umount /mnt/test/
fsck ./disk.img
Слідуючи висновкам команди, виправте помилки.
На цьому етапі ви впевнено розбираєтесь у перевірці файлової системи, можете коректно усувати помилки і запобігати збоям. Попереду нас чекають нові інструменти для роботи з файловими системами, але fsck тепер ваш вірний інструмент для діагностики і виправлення.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ