Использование последовательной консоли для доступа к GRUB и однопользовательским режимам

Примечание.

CentOS, упоминаемая в этой статье, является дистрибутивом Linux и достигнет конца жизненного срока (EOL). Рассмотрите возможность использования и спланируйте соответствующие планы. Дополнительные сведения см. в руководстве по окончании жизненного циклов CentOS.

GRand Unified Bootloader (GRUB), скорее всего, является первым, что вы увидите при загрузке виртуальной машины. Так как он отображается до запуска операционной системы, GRUB недоступен через SSH. В GRUB можно, помимо прочего, изменить конфигурацию загрузки для загрузки в однопользовательском режиме.

Однопользовательский режим — это минимальная среда с минимальными функциональными возможностями. Он может быть полезен для изучения проблем с загрузкой, файловой системы или проблем с сетью. В фоновом режиме может выполняться меньшее количество служб, и в зависимости от уровня выполнения файловая система может даже не быть подключена автоматически.

Однопользовательский режим также полезен в ситуациях, когда виртуальная машина может быть настроена на прием только ключей SSH для входа. В этом случае вы можете использовать однопользовательский режим для создания учетной записи с проверкой подлинности по паролю.

Примечание.

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

Чтобы перейти в однопользовательский режим, введите GRUB при загрузке виртуальной машины и измените конфигурацию загрузки в GRUB. Подробные инструкции по вводу GRUB см. в следующем разделе. Как правило, если виртуальная машина настроена для отображения GRUB, можно использовать кнопку перезапуска в последовательной консоли виртуальной машины, чтобы перезапустить виртуальную машину и отобразить GRUB.

Снимок экрана: кнопка

Общий доступ к GRUB

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

Чтобы получить доступ к однопользовательским режиму, необходимо убедиться, что на виртуальной машине включен grub. В зависимости от дистрибутива может потребоваться выполнить некоторые действия по настройке, чтобы убедиться, что GRUB включен. Сведения о распространении см. в следующем разделе.

Перезапустите виртуальную машину для доступа к GRUB в последовательной консоли

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

Вы также можете перезапустить виртуальную машину, выполнив команду SysRq "b", если sysRq включен. Чтобы узнать, чего ожидать от GRUB при перезагрузке, ознакомьтесь с инструкциями по распространению в следующих разделах.

Анимированный GIF-файл показывает интерфейс командной строки. Пользователь выбирает Перезапустить виртуальную машину на панели инструментов, а затем V M в последовательной консоли перезапускается.

Общий доступ в однопользовательском режиме

Если вы не настроили учетную запись с проверкой подлинности по паролю, вам может потребоваться ручной доступ к однопользовательским режиму. Измените конфигурацию GRUB, чтобы перейти в однопользовательский режим вручную. После этого дополнительные инструкции см. в разделе "Использование однопользовательского режима для сброса или добавления пароля".

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

Использование однопользовательского режима для сброса или добавления пароля

После работы в однопользовательском режиме добавьте нового пользователя с правами sudo, выполнив следующие действия.

  1. Выполните команду useradd <username> , чтобы добавить пользователя.
  2. Выполните команду sudo usermod -a -G sudo <username> , чтобы предоставить новым привилегиям пользователя root.
  3. Используйте passwd <username> , чтобы задать пароль для нового пользователя. Затем вы можете войти в систему от имени нового пользователя.

Доступ для Red Hat Enterprise Linux (RHEL)

Если RHEL не может загрузиться нормально, вы автоматически переходите в однопользовательский режим. Однако если вы не настроили корневой доступ в однопользовательском режиме, у вас нет пароля root и вы не можете войти в систему. Существует обходной путь (см. раздел "Переход в однопользовательский режим в RHEL вручную"), но мы рекомендуем настроить корневой доступ изначально.

Доступ к GRUB в RHEL

RHEL поставляется с включенным GRUB из коробки. Чтобы ввести GRUB, перезагрузите виртуальную машину, запустив sudo reboot, а затем нажмите любую клавишу. Должна отобразиться панель GRUB. Если это не так, убедитесь, что в файле GRUB присутствуют следующие строки (/etc/default/grub):

Для RHEL 8

Примечание.

Red Hat рекомендует использовать Grubby для настройки параметров командной строки ядра в RHEL 8+. В настоящее время невозможно обновить параметры времени ожидания grub и терминала с помощью grubby. Чтобы изменить аргумент GRUB_CMDLINE_LINUX для всех загрузочных записей, выполните команду grubby --update-kernel=ALL --args="console=ttyS0,115200 console=tty1 console=ttyS0 earlyprintk=ttyS0". Дополнительные сведения см. здесь.

GRUB_TIMEOUT=5
GRUB_TERMINAL="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"

Для RHEL 7

GRUB_TIMEOUT=5
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 net.ifnames=0"

Примечание.

Red Hat также предоставляет документацию по загрузке в режиме спасения, аварийном режиме или режиме отладки, а также для сброса пароля root. Инструкции см. в разделе Изменение меню терминала во время загрузки.

Настройка корневого доступа для однопользовательского режима в RHEL

Корневой пользователь отключен по умолчанию. Для однопользовательского режима в RHEL требуется включить корневой пользователь. Если вам нужно включить однопользовательский режим, используйте следующие инструкции.

  1. Войдите в систему Red Hat по протоколу SSH.
  2. Переключитесь на корневой каталог.
  3. Включите пароль для корневого пользователя, выполнив следующие действия.
    • Выполните passwd root (задайте надежный пароль для корневого каталога).
  4. Убедитесь, что корневой пользователь может войти только через ttyS0, выполнив следующие действия: a. Запустите vi /etc/ssh/sshd_configи убедитесь, что параметр PermitRootLogIn имеет значение no. Б. Выполните команду vi /etc/securetty file , чтобы разрешить вход только через ttyS0.

Теперь, если система загружается в однопользовательском режиме, вы можете войти с помощью пароля root.

Кроме того, для RHEL 7.4+ или 6.9+, чтобы включить однопользовательский режим в запросах GRUB, см. статью Загрузка в однопользовательском режиме.

Ввод однопользовательского режима вручную в RHEL

Если вы настроили grub и корневой доступ с помощью предыдущих инструкций, вы можете перейти в однопользовательский режим, выполнив следующие действия.

  1. Чтобы ввести GRUB, нажмите клавишу ESC при перезапуске виртуальной машины.

  2. В GRUB нажмите клавишу E, чтобы изменить ОПЕРАЦИОННую систему, в которую вы хотите загрузиться. Операционная система обычно указана в первой строке.

  3. Найдите строку ядра. В Azure он начинается с linux или linux16.

  4. Нажмите клавиши CTRL+E, чтобы перейти к концу строки.

  5. В конце строки добавьте systemd.unit=rescue.target.

    Это действие загружает вас в однопользовательский режим. Если вы хотите использовать режим аварийного реагирования, добавьте systemd.unit=emergency.target в конец строки (вместо systemd.unit=rescue.target).

  6. Нажмите клавиши CTRL+X, чтобы выйти и перезагрузить с примененными параметрами.

    Перед переходом в однопользовательский режим вам будет предложено ввести пароль администратора. Этот пароль создан в предыдущих инструкциях.

    Анимированный GIF-файл показывает интерфейс командной строки. Пользователь выбирает сервер, находит конец строки ядра и вводит указанный текст.

Переход в однопользовательский режим без включения корневой учетной записи в RHEL

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

Примечание.

Если вы используете SELinux, при сбросе пароля root обязательно выполните дополнительные действия, описанные в документации по Red Hat.

  1. Чтобы ввести GRUB, нажмите клавишу ESC при перезапуске виртуальной машины.

  2. В GRUB нажмите клавишу E, чтобы изменить ОПЕРАЦИОННую систему, в которую вы хотите загрузиться. Операционная система обычно указана в первой строке.

  3. Найдите строку ядра. В Azure он начинается с linux16.

  4. В конце строки добавьте rd.break в конец строки. Оставьте пробел между строкой ядра и rd.break.

    Это действие прерывает процесс загрузки перед передачей элемента управления из initramfssystemdв , как описано в документации Red Hat.

  5. Нажмите клавиши CTRL+X, чтобы выйти и перезагрузить с примененными параметрами.

    После перезагрузки вы переходите в режим аварийной ситуации с файловой системой только для чтения.

  6. В оболочке введите mount -o remount,rw /sysroot , чтобы повторно подключить корневую файловую систему с разрешениями на чтение и запись.

  7. После загрузки в однопользовательском режиме войдите chroot /sysroot , чтобы переключиться в тюрьму sysroot .

  8. Теперь у вас есть корень, и вы можете приступить к устранению неполадок с системой.

  9. В RHEL режим применения SELinux защищает ОС от любых изменений. Вы можете выполнить команду touch /.autorelabel для повторной маркировки файловой системы после изменения пароля.

  10. По завершении введите reboot -f для перезагрузки.

Анимированный GIF-файл показывает процесс ввода однопользовательского режима без включения корневой учетной записи в RHEL в интерфейсе командной строки.

Примечание.

При выполнении предыдущих инструкций вы попадаете в оболочку аварийного реагирования, чтобы вы также могли выполнять такие задачи, как редактирование fstab. Однако обычно рекомендуется сбросить пароль root и использовать его для однопользовательского режима.

Доступ для CentOS

Как и в Red Hat Enterprise Linux, однопользовательский режим в CentOS требует включения GRUB и корневого пользователя.

Доступ к GRUB в CentOS

CentOS поставляется с включенным GRUB из коробки. Чтобы ввести GRUB, перезагрузите виртуальную машину, введя sudo reboot, а затем нажмите любую клавишу. Это действие отображает панель GRUB.

Однопользовательский режим в CentOS

Чтобы включить однопользовательский режим в CentOS, следуйте приведенным выше инструкциям для RHEL.

Доступ для Ubuntu

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

Доступ к GRUB в Ubuntu

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

По умолчанию образы Ubuntu могут не отображать панель GRUB автоматически. Вы можете изменить параметр, выполнив следующие действия:

  1. В текстовом редакторе откройте файл /etc/default/grub.d/50-cloudimg-settings.cfg .

  2. Измените GRUB_TIMEOUT значение на значение, отличное от нуля.

  3. В текстовом редакторе откройте /etc/default/grub.

  4. Закомментируйте GRUB_HIDDEN_TIMEOUT=1 строку.

  5. Убедитесь, что есть GRUB_TIMEOUT_STYLE=menu строка.

  6. Запустите sudo update-grub.

Однопользовательский режим в Ubuntu

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

  1. В GRUB нажмите клавишу E, чтобы изменить запись загрузки (запись Ubuntu).
  2. Найдите строку, которая начинается с Linux, а затем найдите ro.
  3. Добавьте один послеro, гарантируя наличие пробела до и после одного.
  4. Нажмите клавиши CTRL+X, чтобы перезагрузиться с этими параметрами и перейти в однопользовательский режим.

Использование GRUB для вызова bash в Ubuntu

После выполнения описанных выше инструкций может возникнуть ситуация (например, забытый пароль root), в которой вы по-прежнему не можете получить доступ к однопользовательским режиму на виртуальной машине Ubuntu. Вы также можете указать, что ядро выполняется /bin/bash как инициализация, а не системный инициал. Это действие предоставляет оболочку bash и позволяет обслуживать систему. Используйте следующие инструкции:

  1. В GRUB нажмите клавишу E, чтобы изменить запись загрузки (запись Ubuntu).

  2. Найдите строку, которая начинается с Linux, а затем найдите ro.

  3. Замените roна rw init=/bin/bash.

    Это действие подключает файловую систему как чтение и запись и использует /bin/bash в качестве процесса инициализации.

  4. Нажмите клавиши CTRL+X, чтобы выполнить перезагрузку с этими параметрами.

Доступ для CoreOS

Однопользовательский режим в CoreOS требует включения GRUB.

Доступ GRUB в CoreOS

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

Однопользовательский режим в CoreOS

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

  1. В GRUB нажмите клавишу E, чтобы изменить запись загрузки.

  2. Найдите строку, начинающуюся с linux$. Должно быть два экземпляра строки, каждый из которых инкапсулирован в разный , если... предложение else .

  3. Добавьте coreos.autologin=ttyS0 в конец каждой строки linux$ .

  4. Нажмите клавиши CTRL+X, чтобы перезагрузиться с этими параметрами и перейти в однопользовательский режим.

Доступ для SUSE SLES

Более новые образы SLES 12 с пакетом обновления 3 (SP3) разрешают доступ через последовательную консоль, если система загружается в аварийном режиме.

Доступ GRUB в SUSE SLES

Для доступа к GRUB в SLES требуется конфигурация загрузчика через YaST. Чтобы создать конфигурацию, выполните следующие действия.

  1. Используйте SSH для входа на виртуальную машину SLES, а затем запустите sudo yast bootloader. Нажмите клавишу TAB, нажмите клавишу ВВОД, а затем используйте клавиши со стрелками для перехода по меню.

  2. Перейдите в раздел Параметры ядра и установите флажок Использовать последовательную консоль проверка.

  3. Добавьте serial --unit=0 --speed=9600 --parity=no в аргументы Консоли .

  4. Нажмите клавишу F10, чтобы сохранить параметры и выйти из нее.

  5. Чтобы войти в GRUB, перезагрузите виртуальную машину и нажмите любую клавишу во время последовательности загрузки, чтобы отобразить панель GRUB.

    Время ожидания по умолчанию для GRUB — 1s. Этот параметр можно изменить, изменив GRUB_TIMEOUT переменную в файле /etc/default/grub .

Анимированный GIF-файл показывает процесс создания конфигурации загрузчика с помощью YaST.

Однопользовательский режим в SUSE SLES

Если SLES не удается загрузиться нормально, вы автоматически попадаете в оболочку для экстренного реагирования. Чтобы ввести оболочку аварийного реагирования вручную, сделайте следующее:

  1. В GRUB нажмите клавишу E, чтобы изменить запись загрузки (запись SLES).

  2. Найдите строку ядра, которая начинается с Linux.

  3. Добавьте systemd.unit=emergency.target в конец строки ядра.

  4. Нажмите клавиши CTRL+X, чтобы выполнить перезагрузку с этими параметрами и войдите в оболочку аварийного реагирования.

    Примечание.

    Это действие переназначает вас в оболочку аварийного реагирования с файловой системой, доступной только для чтения. Чтобы изменить файлы, повторно подключите файловую систему с разрешениями на чтение и запись. Для этого введите mount -o remount,rw / в оболочке.

Доступ для Oracle Linux

Как и в Red Hat Enterprise Linux, однопользовательский режим в Oracle Linux требует включения GRUB и корневого пользователя.

Доступ к GRUB в Oracle Linux

Oracle Linux поставляется с включенным GRUB из коробки. Чтобы ввести GRUB, перезагрузите виртуальную машину, запустив sudo reboot, а затем нажмите клавишу ESC. Это действие отображает панель GRUB. Если панель GRUB не отображается, убедитесь, что значение GRUB_TERMINAL строки содержит последовательную консоль (т. е. GRUB_TERMINAL="serial console"). Перестройте GRUB с помощью grub2-mkconfig -o /boot/grub/grub.cfg.

Однопользовательский режим в Oracle Linux

Чтобы включить однопользовательский режим в Oracle Linux, следуйте приведенным выше инструкциям для RHEL.

Дальнейшие действия

Дополнительные сведения о последовательной консоли см. в разделе:

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.