kvm ゲストを新規作成する

たまにしかやらないから忘れるシリーズ。インストール cd やら dvd のイメージから kvm ゲストを作成します。

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 はインストールメディアですね。なので devicecdrom としています。
  • --graphics vnc,port=5910,listen=0.0.0.0 グラフィックの出力先を vnc に設定し、使用するポートと ip アドレスを指定しています。
  • --network bridge=br0,model=virtio br0 という bridge に tap 挿しなさいというネットワークの設定です。ここもパラバーチャライゼーションドライバーを使う予定なので model=virtio としています。
  • --boot cdrom ブートデバイスですね。インストールメディアでブートしたいので cdrom を指定します。

さてこの長ったらしいコマンドを投げると、勝手に 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
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 hostdev-list --tree とか lspci -v とかを駆使して頑張って調べます。

virt-install コマンドは、このあと vm が停止するまで返ってきませんが、なんなら Ctrl-C とかで切っちゃっても大丈夫です。

https://manimani.cc/lib/plugins/linkback/exe/trackback.php/wiki:kvm:virt-install