linux:kvm
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| linux:kvm [2020/11/26 12:59] – Wiki Editor | linux:kvm [2022/01/06 10:40] (現在) – [ゲストOSの設定] Wiki Editor | ||
|---|---|---|---|
| 行 64: | 行 64: | ||
| # 「macvtap0」という名前でmacvtapデバイスを作成し、物理NICの「enp8s0f0」に接続 | # 「macvtap0」という名前でmacvtapデバイスを作成し、物理NICの「enp8s0f0」に接続 | ||
| - | # modeはbridgeとする。1つのVMで1つのNICを使うので今回は何でもよい | + | # modeはpassthruとする。1つのVMで1つのNICを使うので今回は何でもよい |
| # 複数VMが物理NICを共有する形で構成される場合、modeによってVM同士の通信の仕方が変わる。 | # 複数VMが物理NICを共有する形で構成される場合、modeによってVM同士の通信の仕方が変わる。 | ||
| - | ip link add link enp8s0f0 name macvtap0 type macvtap mode bridge | + | ip link add link enp8s0f0 name macvtap0 type macvtap mode passthru |
| # 作成したインタフェースを起動 | # 作成したインタフェースを起動 | ||
| ip link set macvtap0 up | ip link set macvtap0 up | ||
| 行 164: | 行 164: | ||
| -drive file=exam_vm_raw.img, | -drive file=exam_vm_raw.img, | ||
| -boot c \ | -boot c \ | ||
| - | -netdev tap, | + | -netdev tap, |
| - | -netdev tap, | + | |
| - | -monitor unix:/ | + | -netdev tap, |
| + | | ||
| + | -monitor unix:/ | ||
| + | -serial unix:/ | ||
| -display none \ | -display none \ | ||
| -daemonize \ | -daemonize \ | ||
| 行 205: | 行 208: | ||
| * 上記コマンドにパイプでモニタコマンドを与えてやると直接モニタを操作できる。例えば「echo " | * 上記コマンドにパイプでモニタコマンドを与えてやると直接モニタを操作できる。例えば「echo " | ||
| * telnetの場合は「-monitor telnet: | * telnetの場合は「-monitor telnet: | ||
| + | * -serial unix:/ | ||
| + | * LinuxやGrubのコンソールを出すためのシリアルポートを仮想マシン上に作成し、その出力をUNIXドメインソケットとして/ | ||
| * -display none | * -display none | ||
| * 本番でサーバ運用の場合はディスプレイは不要なのでnone。 | * 本番でサーバ運用の場合はディスプレイは不要なのでnone。 | ||
| 行 249: | 行 254: | ||
| | | ||
| - | | + | === シリアルポートにコンソールを出力 === |
| + | |||
| + | カーネルにシリアルポートのドライバ等を組み込む。「Console on 8250/16550 and compatible serial port」を有効にしないと、起動からログインプロンプトまでのカーネルメッセージや起動メッセージが表示できないので注意。PNPサポートは、どちらでもよい気がする。 | ||
| + | |||
| + | Device Drivers | ||
| + | Character devices | ||
| + | Serial drivers | ||
| + | Serial drivers | ||
| + | [*] 8250/16550 and compatible serial support | ||
| + | [ ] | ||
| + | [*] | ||
| + | [ ] | ||
| + | [ ] | ||
| + | [*] | ||
| + | |||
| + | 起動オプションの変更とGrub自体の出力先をコンソールにも出すようにする。 | ||
| + | / | ||
| + | |||
| + | # カーネルの「console」コマンドラインオプションを追加し、tty0とttyS0(シリアルポート)の両方に | ||
| + | # コンソールメッセージを出力するようにする | ||
| + | GRUB_CMDLINE_LINUX_DEFAULT=" | ||
| + | |||
| + | # Grub自体の出力もconsoleとシリアルポートの両方に出すようにする | ||
| + | GRUB_TERMINAL=" | ||
| + | # 上記パラメータにserialを追加すると以下がないと警告が出る | ||
| + | # シリアルポートの設定 | ||
| + | GRUB_SERIAL_COMMAND=" | ||
| + | |||
| + | |||
| + | |||
| + | 起動後の仮想コンソール(シリアルコンソール)をシリアルポートに出力する。 | ||
| + | |||
| + | この設定がなければ、起動時のカーネルメッセージや起動メッセージはシリアルコンソールに表示されるが、起動してからのログインプロンプトがシリアルポートに出ないので、シリアルコンソールには何も見えなくなる。 | ||
| + | |||
| + | / | ||
| + | # シリアルコンソールをttyS0に | ||
| + | s0: | ||
| + | |||
| + | socatコマンドでUNIXドメインソケット経由で仮想マシンのシリアルコンソールに接続 | ||
| + | # escape=0x11でCtrl+qをエスケープシーケンスに指定する。socat自体を終了させる際のシーケンス | ||
| + | socat stdin, | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
linux/kvm.1606363147.txt.bz2 · 最終更新: by Wiki Editor
