仮想マシンのVMへ、シリアルコンソールで接続する。
virt-manager でVGAを使うより、コンソールで接続したい。と思いました。 サーバー版のLinux を使っていて思うんだけど、インストールしても利用しても、本当ににVGAって必要?
Ubuntu Server や openWRT x86をインストールした仮想マシンでVGAによるディスプレイモニタが必要なんでしょうか。
昔からのシリアルコンソールでいいんじゃないんですかね。
やったこと
- シリアルで接続できること確認。
- VGAをdisabledにする。
- シリアルコンソールにログを書き出したい。
- シリアルコンソールにログインを出したい。
これらを実現させれば、仮想マシンマネージャーからも、virsh からもコンソールでテキストだけで解決するしスクロールバッファも取れるしコピペもしやすくなるよね。
仮想マシンマネージャーでの設定例
設定を変更して、シリアルのみにした
ディスプレイをクリックしたらコンソールのみになる。嬉しい。
スクリーンショットは、OpenWrt のx86_64 を起動したところです。
シリアルからのttyログインを有効にする。
Ubuntu server の場合、tty ログインを有効にするには、次のようにする。
sudo systemctl enable serial-getty@ttyS0.service sudo systemctl start serial-getty@ttyS0.service
昔ながらのmingetty じゃないんですね。
Grubのブート画面もシリアルコンソールへ
GRUB のOS選択画面もシリアルコンソールに出力したいよね。
/etc/default/grub
grub の起動オプションを次のように追記して。
GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
grub のメニューを更新する
sudo update-grub
起動時のGRUBへのアクセスも許可するなら
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200"
を追記する
コンソールをssh経由で呼び出す。
コンソールでログインできる環境を作っておくと、virsh でかんたんに管理ができる
virsh コマンドでコンソールに接続ができる。便利だわ
takuya@host:~$ virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # console OpenWrt Connected to domain OpenWrt Escape character is ^] OpenWRT login:root
シリアルコンソールにして便利
VGAだと画面の拡大率やVGAに割り振るメモリや画像処理に余計なCPUパワーを取られるんだけど、シリアルコンソールならあんまり気にしなくていいね