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 アドレスを指定しています。
  • --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 とかで切っちゃっても大丈夫です。

  • wiki/kvm/virt-install
  • 最終更新: 2020/02/24 19:06