
Возможно, я не понимаю, на что способен KVM, но возможность добавлять/удалять оборудование на виртуальной машине, похоже, подразумевает, что я могу добавить последовательный порт, который затем будет работать как терминал.
Итак, мои вопросы:
- Какие настройки лучше всего подходят для гостевого дистрибутива FreeBSD? (Их много!)
- Как мне получить доступ к этому терминалу с моего Linux-хоста?
решение1
Теперь я могу ответить на свой вопрос, основываясь наСтефанкомментарий и две связанные статьи:
- https://askubuntu.com/questions/1733/какая-причина-могла-предотвратить-вывод-консоли-из-virsh-c-qemu-system-console-gu
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507650#29
Вот решение:
- Вам не нужно ничего редактировать в конфигурации хоста, если в нем есть последовательное устройство по умолчанию, указывающее на pty.
- Убедитесь, что параметр загрузки для вашего ядра имеет следующее добавление:
serial=tty0 console=ttyS0,115200n8
. Обычно достигается путем редактирования/boot/grub/menu.lst
- Настройте
/etc/inittab
и добавьте строкуT0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100
для запуска getty и отображения приглашения на вход в систему.
Я могу подтвердить, что это работает у меня, используя систему Fedora (хотя мне пришлось установить enforcing=0
дополнительный параметр, поскольку рассматриваемая система — Fedora Rawhide, работающая под управлением SELinux MLS).
Думаю, теперь я смогу придумать, как сделать то же самое для FreeBSD.
Спасибо, Стефан!
решение2
В ответ на вопрос о том, как настроить машину FreeBSD, есть два основных случая получения последовательного порта. Если вы устанавливаете FreeBSD только с последовательным портом, вам понадобятся инструкции по последовательному порту загрузчика. Если у вас уже есть консоль и вы просто хотите получить последовательный доступ, следуйте инструкциям по последовательному порту после установки.
Серийный номер загрузчика
- Нажмите
2
на экране параметров загрузки FreeBSD, чтобы выйти в приглашение загрузчика. - тип
set console=comconsole
- Если на этом этапе вы теряете интерактивность, проверьте, равна ли скорость передачи данных виртуального терминала 9600 бод.
- тип
autoboot
Это должно позволить выполнить остальную часть установки через последовательный интерфейс. Если вы хотите продолжить иметь последовательный доступ после установки FreeBSD, то перед перезагрузкой в конце установки вам нужно будет перейти в командную строку.
Послеустановочный серийный номер
На консоли:
- тип
echo 'console="comconsole"' >> /boot/loader.conf
- загрузить
/etc/ttys
в vi - Измените строку, начинающуюся с ttyu0 (в других версиях FreeBSD это может быть ttyd0)
- На этой строке измените
dialup
наvt100
иoff
наon
- На этой строке измените
- После перезагрузки последовательный терминал должен отобразить процесс загрузки и завершиться приглашением на вход в систему.
- Примечание: настройка
console="comconsole"
может/boot/loader.conf
привести к тому, что сообщения о загрузке будут появляться только на последовательном интерфейсе. Просто измените,/etc/ttys
если вы не хотите, чтобы журнал загрузки отображался через последовательный интерфейс.
- Примечание: настройка
Рекомендации
http://www.freebsd.org/doc/handbook/serialconsole-setup.html
решение3
Ну, конечно, вам нужно эмулировать последовательный порт в эмуляторе и сделать его доступным на хосте. Гостевая ОС должна поместить что-то на свой «аппаратный последовательный порт», например, приглашение на вход через, например, getty_ps. Лично мне не приходилось использовать его таким образом. В основном эмулируемый последовательный порт в гостевой ОС используется для отладочной информации (Haiku все еще использует его по умолчанию), а затем он захватывается эмулятором (например, VMware) как простой текстовый файл, чтобы отладочная информация была доступна. Я попробую здесь запустить что-нибудь на эмулируемой последовательной консоли в qemu.
решение4
Ответ OP работает, но когда я попробовал с моей средой (хост Linux, клиент Linux)
serial=tty0
не было необходимости- использование xterm вместо vt100
/etc/inittab
работает лучше (вы получаете цвет)