シリアル端末を KVM インスタンスに接続するにはどうすればよいですか?

シリアル端末を KVM インスタンスに接続するにはどうすればよいですか?

おそらく私は KVM の機能を誤解しているのでしょうが、VM 上でハードウェアを追加/削除できるということは、端末として機能するシリアル ポートを追加できることを意味しているようです。

私の質問は次のとおりです。

  1. ゲスト FreeBSD ディストリビューションに最適な設定はどれですか? (たくさんあります!)
  2. Linux ホストから上記の端末にアクセスするにはどうすればよいでしょうか?

答え1

私は今、自分自身の質問に答えることができるようになりましたステファンのコメントとリンクされた 2 つの記事:

解決策は次のとおりです。

  • デフォルトのシリアル デバイスが 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 をインストールする場合は、ブートローダーのシリアル手順が必要になります。コンソールが既にあり、シリアル アクセスも利用したい場合は、インストール後のシリアル手順に従ってください。

ブートローダーシリアル

  • 2FreeBSD ブートオプション画面で押すと、ローダープロンプトに戻ります。
  • タイプset console=comconsole
    • この時点で対話性が失われた場合は、仮想ttyボーレートが9600であるかどうかを確認してください。
  • タイプautoboot

これにより、残りのインストールをシリアル インターフェイス経由で実行できるようになります。FreeBSD のインストール後もシリアル アクセスを続行したい場合は、インストールの最後に再起動する前に、コマンド プロンプトに切り替える必要があります。

インストール後のシリアル

コンソールで:

  • タイプecho 'console="comconsole"' >> /boot/loader.conf
  • /etc/ttysviで読み込む
  • ttyu0 で始まる行を変更します (FreeBSD の他のバージョンでは ttyd0 になる場合があります)
    • その行をとdialupに変更しますvt100offon
  • 再起動後、シリアル端末にブートプロセスが表示され、ログインプロンプトで終了します。
    • 注意: を設定するconsole="comconsole"と、/boot/loader.confブート メッセージがシリアル インターフェイスにのみ表示されるようになります。/etc/ttysシリアル経由でブート ログを表示したくない場合は、変更してください。

参考文献

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.html

答え3

まあ、もちろんエミュレータ内でシリアルポートをエミュレートして、ホスト上でアクセスできるようにする必要があります。ゲスト OS は、たとえば getty_ps 経由でログインプロンプトのような何かを「ハードウェアシリアルポート」に配置する必要があります。今のところ、私は個人的にこの方法を使用する必要はありませんでした。ほとんどの場合、ゲスト OS 上のエミュレートされたシリアルポートはデバッグ情報に使用され (Haiku はデフォルトでまだそれを使用しています)、その後、エミュレータ (VMware など) によって単純なテキストファイルとしてキャプチャされ、デバッグ情報を利用できるようになります。ここでは、qemu 内のエミュレートされたシリアルコンソールで何かを実行できるようにしてみます。

答え4

OPの回答は機能しますが、私の環境(Linuxホスト、Linuxクライアント)で試したところ

  1. serial=tty0必要なかった
  2. vt100 の代わりに xterm を使用すると/etc/inittabより良く動作します (カラーが表示されます)

関連情報