Ошибка «Cannot open access to console, the root account is locked»

При возникновении следующей ошибки:

You are in emergency mode. After logging in, type 'journalctl -xb' to view system logs, 'systemctl reboot'
'systemctl default' or "exit" to boot into default mode.
 
Cannot open access to console, the root account is locked.
 
See sulogin(8) man page for more details.
 
Press Enter to continue.
 
Reloading system manager configuration
emergency-root-locked.png

После нажатия Enter всё может повториться.

Данное сообщение гласит, что система загрузилась в аварийном режиме (emergency mode). На самом деле это не так плохо — иногда для восстановления ОС системный администратор может намеренно загрузиться в аварийном режиме.

Настоящая проблема в том, что аккаунт root заблокирован (об этом говорит сообщение Cannot open access to console, the root account is locked) и вы не можете попасть в консоль чтобы начать решать проблемы.

Ситуация становится патовой — никуда, кроме как в консоль root, система вас не пускает, а в консоль root она не пускает тоже, поскольку этот пользователь заблокирован...

Как разблокировать пользователя root в аварийном режиме

Тем не менее, выход из данной ситуации есть. Начните с того, что загрузитесь в однопользовательский режим — это тот же самый режим, который используется для сброса пароля Linux. Ниже приведена обобщённая инструкция, если у вас что-то не получается, то отдельные инструкции для разных дистрибутивов по загрузке в однопользовательский режим вы найдёте здесь.

Остановите загрузку удерживая клавишу SHIFT при запуске компьютера, вы увидите:

linux-single-mode.png

Нажмите клавишу «e» и вы перейдёте к редактированию настроек загрузки:

Найдите строку, начинающуюся с linux

linux-single-mode-2.png

Перейдите в конец этой строки, поставьте пробел и допишите:

single init=/bin/bash

Должно получиться примерно так (номер ядра может отличаться):

linux-single-mode-3.png

Когда всё готово нажмите Ctrl+x или F10, чтобы загрузка продолжилась с установленными опциями.

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

Командой

passwd

устанавливаем пароль пользователя root.

Если команда passwd завершилась ошибкой:

passwd: Authentication token manipulation error

passwd: password unchanged

то скорее всего файловая система смонтирована только для чтения. Чтобы в этом убедиться введите команду:

mount


Буквы ro говорят о том, что файловая система смонтирована только для чтения и по этой причине сделанные изменения не могут быть сохранены. Перемонтируем файловую систему:

mount -rw -o remount /

После этого смена пароля должна пройти успешно.

Снимаем блокировку с входа по паролю для пользователя root:

passwd -u root

Если пользователь root заблокирован, то этого может быть недостаточно. Проверьте, какая оболочка установлена для root:

less /etc/passwd

Если для root в качестве оболочки указана строка «/usr/sbin/nologin», то выполните одну из следующих команд.

  • Чтобы назначить пользователю root оболочку Bash:

sudo usermod -s /usr/bin/bash root

  • Чтобы назначить пользователю root оболочку ZSH:

sudo usermod -s /usr/bin/zsh root

Для выхода наберите:

sync

umount /

Чтобы выключить компьютер выполните:

poweroff -f

Или перезагрузите компьютер командой:

reboot -f

Если после перезагрузки вы увидели «Give root password for maintenance», то это означает, что первый этап восстановления прошёл успешно — мы активировали пользователя root и теперь может приступить к восстановлению системы.

 

emergency-root-shell.png

Как восстановить компьютер, попавший в аварийном режиме

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

journalctl -xb

и попробуйте найти причину проблемы там.

Проверка дисков на ошибки

Если вы считаете, что причиной ошибки являются неполадки жёстких дисков, то используйте команды следующего вида для проверки разделов:

umount /dev/sda2

fsck -y /dev/sda2

Номер раздела и имя диска могут отличаться от «sda2», чтобы узнать точное имя, используйте команду

fdisk -l

или

mount

Неудачное обновление

Если система не загружается из-за прерванного обновления, то попробуйте следующие команды:

apt install -f -y

dpkg --configure -a

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

dpkg-reconfigure ПАКЕТ

Эта команда проведёт повторную конфигурацию уже установленного пакета.

Например, следующая команда выполнит повторную конфигурацию ядра Linux:

dpkg-reconfigure linux-image-`uname -r`

Система не загружается из-за неправильной записи в /etc/fstab

В случае неудачного монтирования (это может случиться, если вы сделали неправильную запись в файле /etc/fstab, система не сможет загрузиться, она перейдёт в аварийный режим и будет выведено примерно следующее сообщение:

You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode.

Give root password for maintenance

(or press Control-D to continue):

Чтобы исправить проблему, введите пароль рута, и откройте для редактирования файл /etc/fstab:

nano /etc/fstab

Закомментируйте или удалите проблемную строчку. Сохраните файл (Ctrl+o), закройте его (Ctrl+x) и перезагрузитесь:

reboot

 

Метаданные статьи

Идентификатор статьи:
167
Категория:
Рейтинг :

Связанные статьи