Машина уходит в аварийный режим из-за одной точки монтирования
Обязательная точка монтирования, которую не удалось смонтировать, останавливает загрузку и уводит систему в аварийный режим. Для дополнительных дисков это почти всегда лишнее: параметр допустимого отказа позволяет загрузиться без них, а зависящие службы объявить отдельно.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Точка монтирования обязательна для загрузки
Без параметра допустимого отказа неудача монтирования считается критической. Загрузка останавливается.
-
Диск не появляется к моменту монтирования
Медленные контроллеры и сетевые диски не успевают. Монтирование отказывает по таймауту.
-
Идентификатор устройства изменился
После замены диска или клонирования идентификатор в описании указывает на несуществующее устройство.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Какие точки монтирования не смонтировались.
systemctl list-units --type=mount --state=failed --no-legendЧто именно остановило загрузку.
journalctl -b --no-pager | grep -iE "Dependency failed|emergency|Timed out waiting for device" | headФактические устройства и их идентификаторы.
lsblk -o NAME,UUID,SIZE,MOUNTPOINTРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Без параметра допустимого отказа неудача монтирования считается критической. Загрузка останавливается.
- Как проверить
-
Посмотрите точки монтирования и их параметры.
grep -vE "^#|^$" /etc/fstab systemctl list-units --type=mount --state=failed --no-legend
- Как исправить
- Добавьте параметр допустимого отказа для дополнительных дисков. Для корневого раздела так делать нельзя: без него системы нет.
- Почему происходит
- Медленные контроллеры и сетевые диски не успевают. Монтирование отказывает по таймауту.
- Как проверить
-
Посмотрите таймаут монтирования и время появления устройства.
systemctl show data.mount -p TimeoutUSec 2>/dev/null journalctl -b --no-pager | grep -iE "dev-|Found device" | head -10
- Как исправить
- Увеличьте таймаут ожидания устройства в параметрах монтирования и добавьте допустимый отказ. Для сетевых дисков нужен ещё и параметр сетевой файловой системы.
- Почему происходит
- После замены диска или клонирования идентификатор в описании указывает на несуществующее устройство.
- Как проверить
-
Сравните идентификаторы в описании и фактические.
lsblk -o NAME,UUID,MOUNTPOINT grep -E "UUID=" /etc/fstab
- Как исправить
- Приведите идентификаторы в соответствие. Монтирование по идентификатору надёжнее, чем по имени устройства, но требует правки после замены диска.
Пример вывода
Дополнительный диск недоступен, загрузка остановлена. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
systemd[1]: Timed out waiting for device /dev/disk/by-uuid/9c2f-1a2b.
systemd[1]: Dependency failed for /srv/data.
systemd[1]: Dependency failed for Local File Systems.
systemd[1]: Starting emergency.service - Emergency Shell...
Связанные ошибки
- Mount process exited, code=exited, status=32: не найдено устройство Монтирование не проходит: устройство или UUID не найдены, неверная файловая система, недоступен сетевой ресурс. Код 32 от команды mount.
- fsck failed: проверка файловой системы остановила загрузку Проверка файловой системы при загрузке завершилась неудачей. Как прочитать причину, запустить проверку вручную и что делать с корневым разделом.
- Dependency failed for … и результат 'dependency' Сообщение Dependency failed for: служба не запускалась, потому что упала её зависимость. Как найти настоящего виновника.
- You are in emergency mode: система не загрузилась Загрузка остановилась в аварийном режиме. Что проверять: fstab, файловые системы, цель по умолчанию. Как войти и починить.
- Параметры x-systemd в описании точек монтирования Как задать таймаут устройства, автомонтирование по обращению и зависимости прямо в описании точек монтирования.
- A start job is running: загрузка висит на одной службе Загрузка останавливается с обратным отсчётом: служба не укладывается в таймаут. Как найти виновника и не ждать.
- Automount: каталог монтируется не вовремя или отваливается Автомонтирование через .automount: как работает TimeoutIdleSec, почему ресурс отваливается и когда лучше обычный .mount.
- Cannot assign requested address при привязке Ошибка 99 при привязке: адрес не принадлежит машине или ещё не поднят. Разбор с network-online.target и ip_nonlocal_bind.
Источники
-
systemd.mount(5)
Параметры монтирования из описания и допустимый отказ. -
systemd-fstab-generator(8)
Как описание точек монтирования превращается в unit. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено описанием с идентификатором несуществующего устройства.