仮想マシンをシリアルコンソールで起動する
Linuxへシリアルコンソールでターミナルを使って接続するには
いくつかのポイントで使ってるオプションが違う
ブート時点で動いてるモノが違うので、それぞれにシリアルコンソールの設定が必要
インストール前にインストーラーを起動するとき
インストール後には
ということで。
大まかな流れ
- シリアルコンソールで「grub起動する」
- シリアルを有効にして起動する
- シリアルコンソールを有効にして 「カーネル」を起動する
- カーネルを起動。
- grubからカーネルを起動する場合
- カーネル直接起動の場合
インストール時
インストール後
Linux起動後
- シリアルコンソールをagettyを待ち受け
シリアルコンソールのインストールのパターン
以上を踏まえると、
インストールから起動までをすべてシリアルコンソールで行う。つまりSSH経由でホストに仮想ゲストを作る方法は
- ISOファイルで起動してGUIで grub を書き換える。(Debian/Ubuntu)
- ISOファイルの中のカーネルイメージを直接起動する(Ubuntu)
- netinst からカーネルイメージを取得する(Debian)
という3つのインストールパターンがるが、
最初から最後までシリアルコンソールでやるには、次の2つが選択肢
これらは、--location
を指定して、 extra-ages
を指定する。
debian をシリアルコンソールでインストール
いろいろと、やり方はあるが、サクッとインストールできるのは次やりかた
virt-install\ --connect=qemu:///system \ --initrd-inject=/home/takuya/preseed.cfg \ --name d03 \ --ram 8192 \ --disk path=/var/lib/libvirt/images/d03.qcow2 \ --vcpus 8 \ --virt-type kvm \ --os-type linux \ --os-variant debian10 \ --graphics none \ --location http://ftp.kddilabs.jp/pub/Linux/distributions/Debian/debian/dists/buster/main/installer-amd64/ \ --extra-args="console=ttyS0"
ただし、preseedは任意
ubuntu をシリアルコンソールでインストール
netinstall でやるより、ISOのほうがダウンロードができるんで確実
curl https:// ... /ubuntu-20.04.3-live-server-amd64.iso virt-install\ --connect=qemu:///system \ --name u05 \ --ram 8192 \ --disk path=/var/lib/libvirt/images/u05.qcow2 \ --location /var/lib/libvirt/images/ubuntu-20.04.3-live-server-amd64.iso,kernel=casper/hwe-vmlinuz,initrd=casper/hwe-initrd \ --vcpus 8 \ --virt-type kvm \ --os-type linux \ --os-variant ubuntu20.04 \ --graphics none \ --extra-args "console=tty0 console=ttyS0,115200n8" \
22.04 では試してないので、動くかはわからない、ubuntuのカーネルイメージのファイル名が変わってなかったら動くと思う。