Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 11 из 13

Система не загрузилась: аварийный режим

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 7 · теория · 6 мин

Аварийный режим

Здесь — что делает systemd, когда загрузка не может продолжаться, и чем аварийный режим отличается от режима восстановления.

Строки fstab без nofail подключает цель local-fs.target, и от неё зависит дальнейшая загрузка. Строка не смонтировалась — цель не достигнута, и systemd запускает аварийный режим — цель emergency.target. На консоли машины — сообщение You are in emergency mode и оболочка root, а systemctl is-system-running печатает maintenance: машина ждёт человека.

Перед оболочкой systemd спрашивает пароль root. На учебной машине вход root заблокирован, но аварийная оболочка настроена открываться без пароля. На сервере пароль root задают заранее: без него в аварийный режим не войти.

Второй такой режим — rescue.target, режим восстановления. В него переводят сами, когда файловые системы в порядке, а остановиться нужно до служб:

emergency rescue
файловые системы корень и то, что успело смонтироваться все из fstab
как попадают systemd сам, когда не монтируется ФС командой systemctl rescue или из меню загрузчика
для чего починить fstab или файловую систему починить службу или настройку
Проверь себя 1 вопрос

Служба падает при загрузке из-за своего конфига, а конфиг лежит на разделе /var/lib/app из fstab. Исправить его нужно до старта служб. В какой режим переведёшь машину?

  • При обычной загрузке служба стартует со сломанным конфигом раньше правки, а задача — исправить его до старта служб.

  • В emergency смонтирован корень и то, что успело подключиться: раздела /var/lib/app может не оказаться, и править будет нечего. Все файловые системы из fstab монтирует rescue.

Rescue монтирует все файловые системы из fstab и останавливается до служб, поэтому конфиг на /var/lib/app доступен, а служба ещё не запущена. Emergency для этого не годится — там смонтировано не всё.

Главное в шаге

  • Строка fstab без nofail, которая не монтируется, останавливает загрузку: systemd запускает emergency.target.
  • В аварийном режиме на консоли — оболочка root, а systemctl is-system-running печатает maintenance.
  • Rescue монтирует все файловые системы из fstab, emergency — корень и то, что успело подключиться.
Ubuntu 24.04
Загрузка…