fsck failed: проверка файловой системы остановила загрузку
При загрузке systemd проверяет файловые системы перед монтированием. Если проверка вернула ошибку, которую нельзя исправить автоматически, монтирование отменяется, а загрузка уходит в аварийный режим. Это признак проблем с диском или неаккуратного выключения.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Ошибки файловой системы после аварийного выключения
Отключение питания или зависание оставляют журнал файловой системы в незавершённом состоянии. Часть ошибок исправляется автоматически, часть требует подтверждения.
-
Аппаратные проблемы диска
Если проверка падает повторно или ядро пишет ошибки ввода-вывода, дело не в файловой системе, а в носителе.
-
Проверка отключена или настроена неверно
Последнее поле в строке fstab задаёт порядок проверки. Значение 1 для корня, 2 для остальных, 0 — не проверять. Ошибочные значения дают неожиданное поведение при загрузке.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Сообщения проверки за текущую загрузку: там код возврата и раздел.
journalctl -b --no-pager | grep -i fsckОбщее состояние диска: отличает проблему файловой системы от умирающего носителя.
sudo smartctl -H /dev/sdaСостояние файловой системы ext: чистая она или требует проверки.
sudo dumpe2fs -h /dev/sdb1 2>/dev/null | grep -iE "state|mount count|check"Решение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Отключение питания или зависание оставляют журнал файловой системы в незавершённом состоянии. Часть ошибок исправляется автоматически, часть требует подтверждения.
- Как проверить
-
Посмотрите сообщения проверки.
journalctl -b --no-pager | grep -iE "fsck|systemd-fsck" | head -20
- Как исправить
-
Запустите проверку вручную на размонтированном разделе и подтвердите исправления.
sudo fsck -y /dev/sdb1
- Почему происходит
- Если проверка падает повторно или ядро пишет ошибки ввода-вывода, дело не в файловой системе, а в носителе.
- Как проверить
-
Посмотрите записи ядра и состояние диска.
journalctl -k -b --no-pager | grep -iE "I/O error|ata[0-9]|medium error" | head sudo smartctl -H -A /dev/sda 2>/dev/null | head -20
- Как исправить
- Снимите образ данных и замените диск. Повторная проверка на умирающем носителе ускоряет потерю данных.
- Почему происходит
- Последнее поле в строке fstab задаёт порядок проверки. Значение 1 для корня, 2 для остальных, 0 — не проверять. Ошибочные значения дают неожиданное поведение при загрузке.
- Как проверить
-
Посмотрите записи fstab.
cat /etc/fstab | grep -v "^#"
- Как исправить
- Приведите последнее поле в порядок: 1 у корня, 2 у прочих локальных разделов, 0 у сетевых и подкачки.
Пример вывода
Проверка вернула ошибку, монтирование отменено. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
systemd-fsck[412]: /dev/sdb1: Inodes that were part of a corrupted orphan linked list found.
systemd-fsck[412]: /dev/sdb1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
systemd-fsck[412]: fsck failed with exit status 4.
systemd[1]: systemd-fsck@dev-sdb1.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Dependency failed for data.mount - Data volume.
Связанные ошибки
- You are in emergency mode: система не загрузилась Загрузка остановилась в аварийном режиме. Что проверять: fstab, файловые системы, цель по умолчанию. Как войти и починить.
- Mount process exited, code=exited, status=32: не найдено устройство Монтирование не проходит: устройство или UUID не найдены, неверная файловая система, недоступен сетевой ресурс. Код 32 от команды mount.
- Read-only file system в журнале службы Служба не может писать: файловая система только для чтения. Разбор: параметры изоляции unit, монтирование ro, ошибки файловой системы.
- A start job is running: загрузка висит на одной службе Загрузка останавливается с обратным отсчётом: служба не укладывается в таймаут. Как найти виновника и не ждать.
- Cannot assign requested address при привязке Ошибка 99 при привязке: адрес не принадлежит машине или ещё не поднят. Разбор с network-online.target и ip_nonlocal_bind.
- Dependency failed for … и результат 'dependency' Сообщение Dependency failed for: служба не запускалась, потому что упала её зависимость. Как найти настоящего виновника.
- Failed with result 'exec-condition' и condition failed Состояния exec-condition и condition failed: запуск не состоялся, потому что условие не выполнено. Это не сбой, а задуманное поведение.
- File corrupted or uncleanly shut down, renaming and replacing Журнал повреждён после жёсткой перезагрузки: что означает сообщение и когда нужно вмешательство.
Источники
-
systemd-fsck@.service(8)
Порядок проверки файловых систем при загрузке. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено на разделе с намеренно повреждённой файловой системой в тестовой среде.