Назад | Перейти на главную страницу

Доступ к подсказке входа pty в виртуальную машину

Я создал виртуальную машину с помощью virt-install, используя в качестве установочного носителя ISO-образ сервера Ubuntu 14.04.01 LTS. На этапе установки я был подключен к виртуальной машине через графическую консоль.

Теперь у меня работает виртуальная машина: я могу подключиться к ней по ssh, а в остальном она работает нормально. Я могу следить за процессом загрузки с помощью:

virsh console my-vm

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

Можно получить доступ к гостевой системе KVM напрямую через интерфейс последовательной консоли, и в этом случае настройка мостовой сети, SSH и т.п. не требуется. Доступ через последовательную консоль предоставляет альтернативный способ доступа к вашим серверам, дополняющий или заменяющий доступ VNC по умолчанию.

Это делается с помощью virsh Утилита, которая является оболочкой для libvirt.

  1. Проверьте, было ли определено консольное устройство:

virsh ttyconsole my_vm Если вывод отображается (например, / dev / pts / 41), это означает, что у гостя уже есть консольное устройство.

В противном случае определите один с помощью virsh edit. Вот пример, который нужно добавить внутрь <device></device>. См. Подробности в формате XML libvirt.

<console type='pty'>

  1. Настройте последовательную консоль в гостевой системе Сначала нам нужно настроить последовательную консоль в гостевой системе, чтобы она принимала соединение:

Это метод настройки для (гостевой) Ubuntu 9.10 (Karmic) и более поздних версий.

sudo editor /etc/init/ttyS0.conf

Добавьте конфигурацию:

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L 115200 ttyS0 xterm
  1. Выполните следующую команду, чтобы запустить последовательную консоль (или перезапустить виртуальную машину):

sudo start ttyS0

Здесь мы используем «xterm» в качестве типа терминала, который хорошо работает, если мы подключаемся с помощью экземпляра gnome-terminal (или xterm). Вероятно, предпочтительнее установить это в соответствии с типом терминала, который будет использоваться для подключения. Это можно найти с помощью этой команды в терминале хоста / клиента, который вы будете использовать для подключения:

echo $TERM

Например, если вы запускаете screen, это будет screen, byobu - screen-bce и т. Д.

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

export TERM=screen

  1. Подключиться с помощью virsh

Сначала мы подключаемся к (локальной) сессии qemu:

virsh -c qemu:///session (это необязательно, и если вы предпочитаете не использовать консоль virsh, вы можете просто добавить команды с помощью virsh в баше. Т.е. virsh start my_vm, virsh console my_vm и т.д)

Теперь в оболочке virsh запустите виртуальную машину:

start my_vm

Когда он начал подключаться к консоли:

console my_vm

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

  1. Ты в!

  2. Разные примечания

Использовать Ctrl + ] для выхода из консоли.

Если консоль ведет себя странно или неправильно отображается, проверьте правильность установки переменной TERM (см. Выше).

Если кажется, что терминал срезает верхнюю часть вывода, измените его так, чтобы область просмотра составляла 80x24, например в byobu это означает, что вам нужно будет учитывать строку состояния и иметь само окно размером 80x26

Набор инструкций был беззастенчиво скопирован с небольшими поправками из https://help.ubuntu.com/community/KVM/Access