最初からシリアルコンソールに入れる状態のVMを作る
先日自宅サーバのVMを新たに作りたくなったのがだ、スケルトンとして用意しておいたVMにインストールされていたのがdebian squeezeだった。そのため、あらたにdebian wheezyがインスールされたスケルトンを作ろうと思い立った。
VMを作った後には普通OSをインストールするわけだが、従来はVNCでノートPCからサーバに接続して作業を行なっていた。しかし、これがシリアルコンソールでできると楽である。そもそも何か障害が起きた際には、シリアルコンソールがあると便利だ。
そんなわけでウェブ上の情報を漁っていたところ、VMを作成するときに最初からシリアルコンソール接続できるようにする方法があることが分かった。以下がそのVM作成スクリプトである。
#!/bin/sh # 作成するVMイメージのパス DISK_IMAGE="/opt/kvm/skeleton/skeleton.qcow2" # インストールに用いるisoファイルのパス INSTALL_ISO="/opt/kvm/iso/debian-7.7.0-amd64-netinst.iso" LC_ALL=C LANG=C \ virt-install \ --name=skeleton \ --ram=512 \ --vcpus=1 \ --os-type=linux \ --os-variant=debianwheezy \ --disk="${DISK_IMAGE}",format=qcow2 \ --network=bridge:br0 \ --hvm \ --virt-type=kvm \ --keymap=ja \ --accelerate \ --location http://ftp.jp.debian.org/debian/dists/stable/main/installer-amd64 \ --extra-args='console=tty0 console=ttyS0,115200n8'
ここで、--locationでdebianのミラーサイトを指定し、--extra-argsでシリアルコンソールに関する設定を行なっている。今後はこのスケルトンをcloneすればいつでもVMが作れる。VMをcloneするためのコマンドも載せておく。
virt-clone -o [クローン元VM名] -n [新しいVM名] -f [新しいVMのイメージファイルへのPATH(拡張子はqcow2)]
※2021/10/02追記
Debian11用のVMを作ろうとして、スクリプトがいろいろおかしかったので修正した。
#!/bin/sh # You have to execute the following commanand to create new disk image (e.g. 20 Gigabytes) # qumu-img create -f qcow2 /path/to/img/hoge.qcow2 20G DISK_IMAGE="/opt/kvm/skeleton_deb11/skeleton_deb11.qcow2" LC_ALL=C LANG=C \ virt-install \ --name=skeleton_deb11 \ --ram=512 \ --vcpus=1 \ --os-type=linux \ --disk="${DISK_IMAGE}",format=qcow2 \ --network=bridge:br0 \ --hvm \ --virt-type=kvm \ --keymap=ja \ --accelerate \ --noautoconsole \ --location http://ftp.jp.debian.org/debian/dists/bullseye/main/installer-amd64 \ --extra-args='console=tty0 console=ttyS0,115200n8'
os-variantオプションを指定しないと警告が出るが、debian11やdebianbullseyeを試すとエラーになってしまうため、やむなく消した。
参考:
http://qiita.com/dumpty-alma@github/items/fec24b20f9271c4db185