kvm ゲストを新規作成する
たまにしかやらないから忘れるシリーズ。インストール cd やら dvd のイメージから kvm ゲストを作成します。
vm の設定を決めて virt-install する
virt-install
のたくさんのオプションの中から、とりあえずこれぐらいかな……というレベルのオプションを選んで設定します。
--connect qemu:///system
オマジナイです。--name _gentoo_hardened
virsh list --all
とかで出てくる vm の名前です。--ram 2048
割り当てメモリ量を 2GiB にしています。--vcpus 4
この vm が使用可能な cpu(core) 数を 4つに設定しています。--cpu host
この vm が cpu type をどう認識するか(/proc/cpuinfo とか)の情報を、仮想ホストと同じようにしています。--os-type linux
そのまんまです。この vm にインストールしようとしている os の種類です。--os-variant virtio26
指定しておくと vm がさらに最適化された動作をするとかしないとか……指定できるパラメーターはosinfo-query os
とかやるとズラズラ出てきます。--disk path=/dev/vg001/_gentoo_hardened_lv001,device=disk,bus=virtio,size=20
この vm に割り当てるディスクの情報です。path
で lvm のボリューム名とか、あるいはディスクイメージファイルのパスなんかを指定します。device
は、今回は raw disk を割り当てる場合はdisk
です。bus
は、パラバーチャライゼーションドライバーを入れる予定なのでvirtio
を指定、最後のsize
はこのボリュームのサイズですね。事前にボリュームを用意しなくても、勝手にここで指定した 20GiB のボリュームを作成してくれます。--disk path=/mnt/store/install-amd64-minimal-20170504.iso,device=cdrom
もう一つのdisk
はインストールメディアですね。なのでdevice
はcdrom
としています。--graphics vnc,port=5910,listen=0.0.0.0
グラフィックの出力先をvnc
に設定し、使用するポートと ip アドレスを指定しています。--video virtio
いつの頃からかデフォルトが 'qxl' になっていて、そういうビルドをした qemu でない場合は明示しないとエラーになります。--network bridge=br0,model=virtio
br0
という bridge に tap 挿しなさいというネットワークの設定です。ここもパラバーチャライゼーションドライバーを使う予定なのでmodel=virtio
としています。--boot cdrom,hd
ブートデバイスですね。ここは複数指定することでいわゆるブートデバイスオーダーを設定できます。初回はインストールメディアで起動したいのでcdrom
を指定、さらにインストール完了後はインストールメディアを eject した状態で、セカンダリに指定したhd
つまりハードディスクから起動するようにしています。
さてこの長ったらしいコマンドを投げると、勝手に lv 作って仮想マシンを起動してくれます。vnc で 5910 に接続して、あとは os のインストール作業をします。
# virt-install --connect qemu:///system --name _gentoo_hardened --ram 2048 --vcpus 4 --cpu host --os-type linux --os-variant virtio26 --disk path=/dev/vg001/_gentoo_hardened_lv001,device=disk,bus=virtio,size=20 --disk path=/mnt/store/install-amd64-minimal-20170504.iso,device=cdrom --graphics vnc,port=5910,listen=0.0.0.0 --network bridge=br0,model=virtio --boot cdrom,hd WARNING Unable to connect to graphical console: virt-viewer not installed. Please install the 'virt-viewer' package. WARNING No console to launch for the guest, defaulting to --wait -1 Starting install... Allocating '_gentoo_hardened_lv001' | 20 GB 00:00 Creating domain... | 0 B 00:00 Domain installation still in progress. Waiting for installation to complete.
今回は使わなかったオプション
--host-device pci_0000_02_00_0
pci passthru とかする場合はこんな指定をします。デバイスはvirsh nodedev-list --tree
とかlspci -v
とかを駆使して頑張って調べます。--video vga
Windows 系をインストールする時はqxl
が優先されてしまうので、qemu をそういう風にビルドしていない場合は明示的に指定する必要があるようです。
補足
virt-install
コマンドは、このあと vm が停止するまで返ってきませんが、なんなら Ctrl-C
とかで切っちゃっても大丈夫です。