それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

kvm+qemuの仮想マシンのVMへ、シリアルコンソールで接続する。

仮想マシンVMへ、シリアルコンソールで接続する。

virt-managerVGAを使うより、コンソールで接続したい。と思いました。 サーバー版のLinux を使っていて思うんだけど、インストールしても利用しても、本当ににVGAって必要?

Ubuntu Server や openWRT x86をインストールした仮想マシンVGAによるディスプレイモニタが必要なんでしょうか。

昔からのシリアルコンソールでいいんじゃないんですかね。

やったこと

  • シリアルで接続できること確認。
  • VGAをdisabledにする。
  • シリアルコンソールにログを書き出したい。
  • シリアルコンソールにログインを出したい。

これらを実現させれば、仮想マシンマネージャーからも、virsh からもコンソールでテキストだけで解決するしスクロールバッファも取れるしコピペもしやすくなるよね。

仮想マシンマネージャーでの設定例

設定を変更して、シリアルのみにした

f:id:takuya_1st:20200130013333p:plain

ディスプレイをクリックしたらコンソールのみになる。嬉しい。

f:id:takuya_1st:20200130013338p:plain

スクリーンショットは、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パワーを取られるんだけど、シリアルコンソールならあんまり気にしなくていいね