Как определить, почему Linux загружается в Emergency mode
Как определить точную причину, почему Systemd входит в emergency mode
Система Linux при возникновении проблем во время загрузки может переходить в оболочку emergency mode (аварийный режим).
Экран предлагает выполнить команду
journalctl -xb
для поиска причин неполадок в системе.
Также предлагается выполнить
systemctl default
exit
чтобы система попыталась загрузиться в нормальном режиме.
Вы можете попробовать ввести systemctl default — иногда это действительно помогает, но иногда требуется разрешить проблему, которая стала причиной Emergency mode.
Вывод journalctl -xb довольно обширный и его изучение без фильтров не всегда даёт подсказку, почему выбрасывает в аварийную оболочку. Рассмотрим способы, которые могут помочь отыскать проблему.
1. Поиск проблем с монтированием
Причин, по которой система переходит в Emergency mode не так уж много, обычно это проблемы с монтированием дисков и разделов. Посмотрите, что вам скажут следующие команды?
systemctl status local-fs.target journalctl -xb | grep -i -E 'local-fs.target'
2. Поиск ошибок
Что необычного показывает journalctl -xb? Попробуйте поискать сообщения, связанные с монтированием и ошибками — возможно, там есть ответ.
journalctl -xb | grep -i mount journalctl -xb | grep -i -E '(error|fail|warn|\(EE\))'
3. Неудачный запуск fsck
Проверьте записи, связанные с fsck:
journalctl -xb | grep -i -E 'fsck' systemctl status systemd-fsck*
4. Неудачный запуск любых служб
Следующие команды (они идентичны) выведут список служб, которые не удалось запустить:
systemctl --state=failed systemctl --failed
5. Поиск по журналу в Emergency mode и Maintenance mode
Вы можете выполнять поиск ошибок по журналу journald без использования команд — возможно, вам это будет удобнее. Поскольку journalctl использует для многостраничного просмотра команду less, то вы можете применять все сочетания клавиш этой утилиты для ваших поисков.
journalctl -xb
Если вы полагаетесь на функцию поиска (/) и ищите что-то вроде «error», «warning» или «fail», то с помощью -i убедитесь, что выполняется поиск без учёта регистра букв.
Список команд и клавиш для поиска по journalctl (и в целом по less):
- -i (без учёта регистра)
- g (перейти к началу)
- /error (найти «error»)
- nnnn (пропустить nnnn результатов)
- g (перейти к началу)
- /fail (найти «fail»)
- nnnn (пропустить nnnn результатов)
- g (перейти к началу)
- /warn (найти «warn»)
- nnnn (пропустить nnnn результатов)
Связанные статьи:
- Как отремонтировать диск LVM с помощью fsck (100%)
- Ошибка «Cannot open access to console, the root account is locked» (РЕШЕНО) (81.2%)
- Ubuntu/Mint/Kali загружается в initramfs BusyBox (РЕШЕНО) (70.5%)
- Как загрузиться в режиме восстановления или в аварийном режиме в Ubuntu 20.04 / 18.04 (70.5%)
- Ошибка «Initramfs unpacking failed: invalid magic at start of compressed archive» (РЕШЕНО) (70.5%)
- Ошибка «ERROR 1114 (HY000) at line 19894: The table ‘en’ is full» (РЕШЕНО) (RANDOM — 1.2%)
Не запускается Linux с ошибкой Welcome to emergency mode

17.01.2020

VyacheslavK

CentOS, Linux

комментария 4
В своей работе мне приходилось неоднократно сталкиваться с проблемой загрузки Linux в аварийном режиме с ошибкой Welcome to emergency mode. Чаще всего проблема возникает при аварийном отключении питания на сервере, при краше системы или других подобных воздействиях. В 90% случаев это ошибка связана с повреждением файловой системы Linux, которую можно решить.
В данной статье мы рассмотрим варианты решения подобной проблемы, их может быть несколько.
Исправляем ошибки файловой системы с помощью LiveCD
Рассмотрим пример, когда у вас был какой-то сбой на сервере, например, аварийное отключение питания и при загрузке Linux сервера в remote console или vnc, вы видите следующую картину:
Welcome to emergency mode! After logging in, type “journalctl -xb” to view system logs, “systemctl reboot” to reboot, “systemctl default” or ^D to try again boot into default mode. Give root password for maintained (or press Control-D to continue).

Аварийный режим emergency mode обеспечивает минимально возможную среду Linux для восстановления система, если ОС не может войти в режим восстановления (Rescue mode). В аварийном режиме система монтирует корневую файловую систему на для чтение. Другие локальные файловые системы не монтируются, сетевые интерфейсы не поднимаются.
Если нажать сочетание клавиш Control + D, то начинается загрузка системы, но в конечном итоге все возвращается к тому же Emergency mode:

Чтобы решить данную проблему, вам нужно загрузиться на сервере с LiveCD или LiveUSB и использовать утилиту SystemRescueCd. Я загрузил образ с утилитой systemrescuecd:

Теперь запустите проверку файловой системы сервера с исправлением всех найденных ошибок с помощью команды:
# fsck -y /dev/sda1 — где sda1 ваш раздел диска.
Проверку нужно выполнить со всеми разделами, после чего выполнить рестарт системы и в большинстве случаев, это решает вашу проблему.
Проблема с монтирование в fstab
Второй вариант, который может случиться, это повреждение или некорректная конфигурация файла fstab. В моем случае, при загрузке с systemrescuecd и проверки системы, проблем не было обнаружено и это не помогло. Но при открытии fstab я увидел, в конфигурации нет разделов диска для монтирования, а есть только запись о загрузочном диске:

Чтобы решить вопрос, нужно получить UUID ваших дисков через утилиту blkid:

После этого нужно все данные в fstab, сохранить и перезапустить сервер, если все сделали правильно, то сервер запуститься в обычном режиме.
Linux установлен с USB флешки
Так же в работе были моменты, когда установкуLinux производили с установочного флеш-накопителя и после рестарта сервера, ОС загружалась с ошибкой “Welcome to emergency mode!“. При проверке fstab было обнаружено, что этот флеш-накопитель был прописан в fstab как рабочий раздел. В таком случае помогает удаление строки с монтированием и перезапуск системы. Как и в первом случае, вам нужно загрузиться с systemrescuecd и открыть fstab. Скорее всего вы сразу увидите, что там есть подобный раздел — /mnt/usb1:

Просто удалите данную строку, если вы теперь не используете флеш-накопитель.
Dualboot конфигурация Windows и Linux
Еще один из вариантов проблемы, замеченный пользователями — это параллельное использование Windows и СentOS на одном компьютере. При загрузке часто возникает ошибка emergency mode при монтировании разделов Windows. Обычное решение проблемы заключается в отключении быстрого запуска Windows.
Чтобы отключить быстрый запуск, перейдите в меню Электропитание -> Системные параметры и выбрать пункт «Изменение параметров, которые сейчас недоступн».

Снимите галочку в блоке «Включить быстрый запуск».

Сохраните изменения и перезапустите ваш сервер. После выполненных рекомендаций, CentOS должен запуститься.
Если вы используете LVM разделы, данная ошибка так же может появиться, в целом решение проблемы схоже с обычным разделом, нужно проверить fstab и исправить ошибки, допущенные в нем.
Предыдущая статья Следующая статья
Welcome to emergency mode в Ubuntu 16.04
У меня есть сервер, который работает под управлением Ubuntu GNU/Linux 16.04 LTS. После того как внезапно вырубило электричество сервер перестал загружаться. Я начал разбираться в вопросе.
Сообщение, до которого доходил сервер:
Welcome to emergency mode! After logging in, type «journalctl -xb» to view system logs, «systemctl reboot» to reboot, «systemctl default» to try again to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):
В моём случае ошибка оказалось в том, что в /etc/fstab был прописан внешний диск, подключаемый через USB, который я отмонтировал вручную и отключил от сервера без перезапуска компьютера, забыв убрать его упоминание из /etc/fstab.
Как обнаружил?
Спасибо Google и StackOverflow, которые навели меня на мысль проверить fstab.
После появления сообщения я нажал на клавиатуре Enter. Появилась консоль, работающая от root, в которой я выполнил:
journalctl -xb | grep failed
В выводе я увидел сообщение, что не получилось примонтировать съёмный диск. Зашёл в /etc/fstab и закомментровал строчку относящуюся к внешнему диску:
nano /etc/fstab # после открытия редактора закомментировал строку, относящуюся к внешнему HDD
shutdown -r now # перезапуск системы
Что делать, если в /etc/fstab ничего лишнего нет?
Самый частый совет, который я встречал:
- Загрузиться с LiveCD или LiveUSB.
- Открыть терминал ( Ctrl+Alt+T ), развернуть его на весь экран ( F11 ).
- Стать root: sudo su —
- Вывести все доступные разделы: fdisk -l
- Если успели примонтировать разделы, относящиеся к жёстким дискам, то нужно отмонтировать их: umount /dev/sda1 ( Ещё возможные часто встречающиеся варианты: /dev/sda2, /dev/sda3, /dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdc1, /dev/sdc2, /dev/sdc3… думаю, принцип понятен. Если нет, то читаем что предложит Google по запросу «разделы linux» )
- Проверить файловую систему на разделах, относящихся к жёстким дискам: fsck -y /dev/sda1 Флаг -y указывает, что восстановление, если потребуется, нужно попытаться сделать в автоматическом режиме.
После этого можно смело перезапускать компьютер и запускаться со своего основного диска — всё должно работать как по маслу.
Welcome to emergency mode в Ubuntu 16.04: 11 комментариев
Алексей :
Спасибо вам большое! У меня было точь-в-точь как в вашей статье, инструкция помогла.
Как же легко нарушить работу Ubuntu.
Большое спасибо! Даже не верится, что в очередном крахе, этот чёртов Линукс ВНЕЗАПНО так легко вернулся к жизни…
Виталий :
Огроное спасибо. Заработало.
Этот продвинутый и расхваливаемый линукс, которым пользуются супер люди, иногда проявляя снисхождение, что бы объяснить тупым пользователям как устранить тот или иной баг отказался загружаться, когда я отключил от него внешний бокс… Ну как бы да, от бы на автомоунте, но это бред. Система не загружается без блеать шлешки. Это фиаско… Это конечно больше сарказм, но согласитесь, такие вещи можно и доработать, что бы «все» могли пользоваться. И таких недоработок куча с мелких и не очень.
Просто, когда разрабатывали Linux, забыли учесть, что когда он станет мейнстримом в него полезут все кому не лень
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.042 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.