Перенаправление вывода консоли FreeBSD в VirtualBox’e

Появилась задача протестировать одну штуку через VirtualBox. Но вот не задача: нужное мне сообщение пишет ядро после того как перегружаю виртуалку. Я, конечно не успеваю его прочитать. Вот если бы можно было куда-то перенаправить вывод консоли виртуалки и оттуда уже прочитать.

Можно конечно воспользоваться ПО, которое пишет видео с экрана, но и тут меня ждала неудача: слишком быстро промелькнуло сообщение и на видео оно не видно.

Решение подсказали в рассылке FreeBSD. Суть следующая: будем дублировать вывод так же на com-порт, а в качестве com-порта пропишем путь к сокету, который создадим на хост-машине (та, собственно где запущен VirtualBox).

Тестовый стенд: Linux (на ней установлен VirtualBox), FreeBSD (запущена внутри VirtualBox’a)

1) Создание сокета.

Для создания сокета понадобиться установить socat (есть в портах FreeBSD и репозиториях Debian/Ubuntu). Далее используем такой скрипт:

#!/bin/sh
trap "stty sane" 0 1 2 3 15
socat unix-listen:/tmp/sock stdio,raw,echo=0,icanon=0

Он одинаково работает как Linux/FreeBSD

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

Так же, после запуска скрипта не забудьте поставить ему нужные права, что бы VirtualBox мог в него читать/писать. Для удобства я ставил права 777.

2) Настройка виртуалки.

Сама виртуалка на момент следующих действий должна быть выключена. В свойствах виртуалки включаем com-порты. В соответствующих полях ставим такое:

Номер порта -> COM1
Режим порта -> Хост-канал
Путь к порту/файлу -> /tmp/sock

Обязательно снимаем галочку «Создать канал»

3) Настройка FreeBSD

Непосредственно в самой FreeBSD делаем следующее. В файл /boot/loader.conf добавляем такие строки

boot_multicons="YES"
console="comconsole vidconsole"

и выполняем такую команду:

echo "-D" >> /boot.config

После этого перегружаем FreeBSD и наслаждаемся выводом загрузки на консоль в Linux.

При желании в /etc/ttys повесить getty на /dev/cuau0 что бы получить возможность управлять консолью через COM-порт.

Перенаправление вывода консоли FreeBSD в VirtualBox’e: 2 комментария

  1. Юзер

    А не подскажешь случайно такое дело — перенаправил консоль на ком0 в openbsd. Чтоб по клику кнопки терминала в GNS3 работало. А оно зараза выводит, но не работает нормально т.е. пишу что-то постоянно проклинивает нужно enter постоянно топтать на клаве? Один раз только залогинится смог.

Добавить комментарий

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