вторник, 28 февраля 2012 г.

VirtualBox Serial Console

Консоль может понадобиться, если по той или иной причине отстутсвует доступ к гостевой машине по ssh.


Для начала необходимо выполнить ряд действий в гостевой машине
  1. echo 'console="comconsole"' >> /boot/loader.conf
  2. Строку в /etc/ttys, начинающуюся с tty0 привести к виду:
ttyu0    "/usr/libexec/getty std.9600"    vt100    on secure
Здесь dialup заменено на vt100 (иначе не будет запрашиваться авторизация), и off заменено на on для включения консоли.
Далее необходимо в настройках виртуалбокса включить последовательный порт в режиме Host Pipe и указать путь на хостовой машине для создания пайпа.
VBoxManage modifyvm guestmachine --uart1 0x03f8  4
VBoxManage modifyvm guestmachine --uartmode1 server guestmachine.pipe
После этого следует перезагрузить гостевую машину для вступления настроек в силу. Разумеется, в ядре гостевой машины должна быть поддерка последовательного порта.

Дальнейшие действия выполняются на хостовой машине. Прежде всего понадобиться socat для подключения к ранее созданному пайпу:
make install clean -C /usr/ports/net/socat
Теперь можно подключится к ранее созданному пайпу командой:
# socat unix-connect:/tmp/guest.pipe stdio,raw,echo=0,icanon=0,escape=126
Запускать нужно от рута или от пользователя, под которым работает виртуалбокс из-за строгих пермишнов. Параметр escape задает код клавиши для escape последовательности, номер 126 соответсвует символу тильды (~).

2 комментария:

  1. А чем для тех же целей не годится VirtualBox GUI, без всякой настройки? Там прямо в консоль попадаешь.

    ОтветитьУдалить
    Ответы
    1. Вы держите на сервере иксы? ок, это ваш выбор. Мы не держим.

      Удалить