
おそらく私は KVM の機能を誤解しているのでしょうが、VM 上でハードウェアを追加/削除できるということは、端末として機能するシリアル ポートを追加できることを意味しているようです。
私の質問は次のとおりです。
- ゲスト FreeBSD ディストリビューションに最適な設定はどれですか? (たくさんあります!)
- Linux ホストから上記の端末にアクセスするにはどうすればよいでしょうか?
答え1
私は今、自分自身の質問に答えることができるようになりましたステファンのコメントとリンクされた 2 つの記事:
- 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
- getty を起動してログイン プロンプトを表示するように設定し
/etc/inittab
て行を追加します。T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100
enforcing=0
私は、Fedora システムを使用してこれが機能することを確認できました (ただし、問題のシステムは SELinux MLS を実行する fedora rawhide であるため、追加のパラメータとして設定する必要がありました)。
そこから、おそらく FreeBSD でも同じことを実行する方法がわかると思います。
ありがとう、ステファン!
答え2
FreeBSD マシンの設定方法に対する答えとして、シリアルを取得する主なケースが 2 つあります。シリアルのみを使用して FreeBSD をインストールする場合は、ブートローダーのシリアル手順が必要になります。コンソールが既にあり、シリアル アクセスも利用したい場合は、インストール後のシリアル手順に従ってください。
ブートローダーシリアル
2
FreeBSD ブートオプション画面で押すと、ローダープロンプトに戻ります。- タイプ
set console=comconsole
- この時点で対話性が失われた場合は、仮想ttyボーレートが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
まあ、もちろんエミュレータ内でシリアルポートをエミュレートして、ホスト上でアクセスできるようにする必要があります。ゲスト OS は、たとえば getty_ps 経由でログインプロンプトのような何かを「ハードウェアシリアルポート」に配置する必要があります。今のところ、私は個人的にこの方法を使用する必要はありませんでした。ほとんどの場合、ゲスト OS 上のエミュレートされたシリアルポートはデバッグ情報に使用され (Haiku はデフォルトでまだそれを使用しています)、その後、エミュレータ (VMware など) によって単純なテキストファイルとしてキャプチャされ、デバッグ情報を利用できるようになります。ここでは、qemu 内のエミュレートされたシリアルコンソールで何かを実行できるようにしてみます。
答え4
OPの回答は機能しますが、私の環境(Linuxホスト、Linuxクライアント)で試したところ
serial=tty0
必要なかった- vt100 の代わりに xterm を使用すると
/etc/inittab
より良く動作します (カラーが表示されます)