Появилась задача протестировать одну штуку через 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-порт.
2 коментарі “Перенаправление вывода консоли FreeBSD в VirtualBox’e”
А не подскажешь случайно такое дело – перенаправил консоль на ком0 в openbsd. Чтоб по клику кнопки терминала в GNS3 работало. А оно зараза выводит, но не работает нормально т.е. пишу что-то постоянно проклинивает нужно enter постоянно топтать на клаве? Один раз только залогинится смог.
Может быть что угодно