Home » Проверка и восстановление ФС в Linux с fsck
Проверка и восстановление ФС в Linux с fsck

Проверка и восстановление ФС в Linux с fsck

Если ты когда-нибудь админил сервер или просто работал с Linux, то рано или поздно сталкивался с тем, что файловая система (ФС) начинает чудить. Вроде всё крутится, но вдруг fsck тебе говорит: “Эй, тут беда — inconsistent superblock!” или что-то в этом духе. В этот момент многие начинают гуглить, судорожно искать, что делать, и как бы не угробить данные. Вот тут и начинается самое интересное.

В этом посте разберёмся, что такое fsck, как он работает, зачем нужен, как им пользоваться, и что делать, если ФС уже не подаёт признаков жизни. Будет много практики, лайфхаков, разбор косяков и даже чуть-чуть магии. Всё на примерах, без лишней теории, но с пониманием, что происходит “под капотом”. Цель — чтобы ты мог быстро и безопасно восстановить сервер, а не сидел потом ночью и думал, где взять бэкап.

Почему тема важна: проблема и значимость

Серверы — это не только uptime и красивые дашборды. Это ещё и диски, которые иногда умирают, битые сектора, внезапные ребуты, баги ядра, кривые скрипты и просто человеческий фактор. В любой момент может случиться сбой питания или внезапный kernel panic, и вот уже твоя файловая система начинает разваливаться на глазах.

  • Сломанная ФС = потеря данных, простоев, нервов и денег.
  • Большинство проблем можно предотвратить или быстро решить — если знаешь, как работает fsck.
  • Правильная настройка и регулярная проверка — залог спокойной жизни админа.

Так что если хочешь, чтобы твой сервер не превратился в кирпич, а данные не улетели в никуда — читай дальше.

Что такое fsck и как это работает?

fsck — это аббревиатура от File System Consistency Check. Это утилита, которая проверяет и (по возможности) чинит файловые системы на Linux и Unix-подобных системах. Она работает почти со всеми популярными ФС: ext2/3/4, XFS, Btrfs, ReiserFS, JFS и т.д.

Когда ты запускаешь fsck, он проходит по метаданным файловой системы (суперблоки, индексы, таблицы inodes и т.д.), сверяет их между собой и с реальным содержимым, ищет несоответствия и предлагает их исправить. Если всё плохо — может даже восстановить потерянные файлы или каталоги (ну, или хотя бы их куски).

Алгоритмы и структура работы

  • Сканирование суперблока — проверка ключевых параметров ФС.
  • Проверка inodes — сверка таблиц файлов и директорий.
  • Анализ связей — поиск “висячих” файлов, битых линков, дырок в структуре.
  • Восстановление — попытка починить найденные ошибки (с согласия пользователя).

В зависимости от типа ФС, могут быть свои нюансы. Например, для ext4 есть свои опции и особенности, для XFS — отдельная утилита xfs_repair, а для Btrfs — btrfs check.

Как быстро и просто всё настроить? Практические советы

1. Проверка ФС вручную: базовые команды

Самый частый кейс — сервер не грузится или диск смонтирован в read-only. Что делать?

  1. Перезагружаешься в recovery mode или single user mode (initramfs, rescue, live-образ — неважно, главное, чтобы ФС была отмонтирована или в read-only).
  2. Проверяешь, какие устройства и разделы есть:
    lsblk
    blkid
  3. Запускаешь fsck:
    fsck /dev/sda1
    или, если знаешь тип ФС:
    fsck.ext4 /dev/sda1
  4. Следуешь подсказкам — обычно надо жать y (yes) для исправления ошибок.

Важно! Никогда не запускай fsck на смонтированной файловой системе (кроме некоторых случаев с read-only), иначе можно всё угробить.

2. Автоматизация: проверка при загрузке

Если сервер критичный, можно настроить автоматическую проверку при каждом перезапуске:


touch /forcefsck

или прописать параметры в /etc/fstab (шестое поле — частота проверки):


UUID=xxxx-xxxx / ext4 defaults 0 1

Значение “1” — проверять при загрузке, “2” — проверять после root, “0” — не проверять.

3. Настройка периодических проверок

Для ext4 можно задать интервал проверки:


tune2fs -c 20 /dev/sda1 # Проверять каждые 20 монтирований
tune2fs -i 1m /dev/sda1 # Проверять раз в месяц

Проверь параметры:


tune2fs -l /dev/sda1 | grep -i 'mount count\|check interval'

4. Проверка всех файловых систем

Для проверки всех ФС, указанных в /etc/fstab:


fsck -A

Можно добавить -y, чтобы автоматически отвечать “yes” на все вопросы:


fsck -A -y

5. Восстановление после краха

Если всё совсем плохо (например, “Superblock corrupt” или “Bad magic number”), попробуй восстановить суперблок:


# Найти резервные суперблоки
mke2fs -n /dev/sda1

# Использовать резервный суперблок
fsck.ext4 -b 32768 /dev/sda1

Значение 32768 — это пример, смотри вывод mke2fs -n.

Примеры, кейсы и сравнение

Ситуация Что делать Результат Рекомендации
Сервер не грузится, пишет “fsck failed” Зайти в recovery, выполнить fsck -y /dev/sda1 Обычно чинится и грузится Проверь SMART диска, сделай бэкап
Файлы пропали после сбоя питания fsck, искать в lost+found Часть файлов восстановится, часть — повреждена Проверь UPS, настрой авто-бэкапы
Ошибка “Bad magic number” mke2fs -n, fsck.ext4 -b … Часто помогает, если не убит диск Проверь диск на badblocks, подумай о миграции
Очень большой раздел (10+ ТБ) fsck занимает часы, иногда сутки Может “залипнуть” на сутки Используй XFS или Btrfs, там быстрее

Ошибки новичков, мифы и похожие решения

  • Миф: “fsck можно запускать на живой системе”.
    Реальность: Только если ФС в read-only или не смонтирована!
  • Миф: “fsck всегда всё чинит”.
    Реальность: Если диск умирает физически — fsck может только усугубить ситуацию. Сначала делай ddrescue/бэкап, потом fsck.
  • Ошибка: Удалять lost+found — там могут быть восстановленные файлы после fsck!
  • Ошибка: Не читать вывод fsck — иногда он предлагает не чинить, а удалить файл/директорию. Внимательно читай!
  • Похожее ПО:
    • xfs_repair — для XFS
    • btrfs check — для Btrfs
    • ntfsfix — для NTFS (но лучше chkdsk в Windows)

Статистика и сравнение с другими решениями

ФС Утилита Время проверки (1ТБ) Возможности ремонта Особенности
ext4 fsck.ext4 ~30-60 мин Высокие Много резервных суперблоков
XFS xfs_repair ~10-20 мин Средние Быстрее, но меньше вариантов восстановления
Btrfs btrfs check ~15-30 мин Средние Есть свои нюансы, поддержка снапшотов
NTFS ntfsfix Зависит от Windows Минимальные Лучше чинить в Windows

По статистике, 80% проблем с ФС на серверах связаны с внезапными выключениями, а 15% — с физическими сбоями диска. Остальное — баги и “рукожопство”.

Интересные факты и нестандартные способы использования

  • Можно запускать fsck в dry-run режиме (только проверка, без исправлений): fsck -N /dev/sda1
  • Можно автоматизировать оповещения — парсить вывод fsck и слать алерты в Telegram/Slack.
  • Для SSD лучше уменьшить частоту автоматических проверок (tune2fs -c 50), чтобы не изнашивать память.
  • Можно запускать fsck в initramfs через скрипты, чтобы сервер сам “лечился” после сбоев.
  • fsck можно “подружить” с systemd — смотри [email protected]
  • Если нужно проверить только ошибки без ремонта — fsck -n /dev/sda1

Новые возможности: автоматизация и скрипты

В связке с cron, systemd и bash-скриптами можно делать магию:

  • Периодические проверки ночью, когда сервер не загружен.
  • Автоматические оповещения о найденных ошибках.
  • Восстановление суперблока по расписанию (если на сервере частые сбои).
  • Интеграция с мониторингом (Prometheus, Zabbix — парсить вывод fsck и слать алерты).

Пример простого скрипта для автоматической проверки и оповещения:


#!/bin/bash
FS="/dev/sda1"
LOG="/var/log/fsck-check.log"
fsck -n $FS > $LOG
if grep -q "errors found" $LOG; then
echo "FSCK: Errors found on $FS!" | mail -s "FSCK Alert" root
fi

Можно расширить и добавить авто-ремонт, если ты уверен в железе.

Заключение и рекомендации

Проверка и восстановление файловых систем — не только про “починил и забыл”. Это часть грамотного обслуживания любого сервера. fsck — мощный инструмент, который может спасти твои данные, если использовать его с умом.

  • Планируй регулярные проверки, особенно если сервер критичен.
  • Не бойся автоматизировать — скрипты, systemd, cron тебе в помощь.
  • Всегда делай бэкапы перед ремонтом — иногда fsck может “съесть” файлы, а не починить их.
  • Изучи особенности своей ФС — для XFS и Btrfs свои нюансы!
  • Следи за состоянием дисков (SMART, мониторинг), чтобы не лечить мёртвого.

Если ты ищешь сервер для своих проектов, где можно спокойно экспериментировать и быть уверенным, что всегда сможешь восстановить данные — посмотри VPS или выделенные серверы. А если что — теперь ты знаешь, как быстро и правильно поднять ФС после сбоя!

Официальная документация и полезные ссылки:

Пусть твоя файловая система всегда будет целой, а fsck — только для профилактики!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked