ZaLinux.ru

Ошибка «Cannot open access to console, the root account is locked» (РЕШЕНО)

После внезапного отключения электричества, неудачного обновления или добавления нового диска в /etc/fstab вы можете столкнуться с проблемой, что ваша система не загружается, а точнее говоря, загружается в консоль или в чёрный экран. Иногда проблема усугубляется тем, что системный администратор не может попасть даже в аварийную консоль. Рассмотрим, как решить следующую ошибку:

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

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

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

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

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

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

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

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

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

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

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

single init=/bin/bash

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

Когда всё готово нажмите 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

Смотрите также: Как в Linux изменить login shell (оболочку входа в систему). Инструкция по команде chsh

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

sync
umount /

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

poweroff -f

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

reboot -f

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

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

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

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

Рекомендуемые статьи:

1 Комментарий

  1. Kali

    По статье получилось разблокировать root`a, с неполадками пока борюсь…

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *