コマンドラインでKVMゲストOSをインストール
virt-install コマンドを使用して、仮想マシンを作成し、ゲストOSをインストールします。
ゲストOSは、Ubuntu 22.04.4 server を使用します。
$ sudo virt-install \ --name ubuntu-2204-server \ --vcpus 1 --memory 2048 \ --cpu mode=host-passthrough \ --network network=default,model=virtio \ --location /path/to/ubuntu-22.04.4-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \ --os-variant ubuntu22.04 \ --disk size=80,cache=none,format=qcow2 \ --graphics none \ --extra-args 'console=tty0 console=ttyS0,115200n8 --- console=tty0 console=ttyS0,115200n8' \ --boot uefi
あとは、インストーラの指示通りに進んでください。
virt-install オプション
オプションの詳細は、libvirtのドキュメントを参照 Domain XML format
# サブオプションの一覧を表示 $ virt-install --memory=? $ virt-install --memory help
--name ubuntu-2204-server
ゲスト仮想マシンの名称
現在アクティブでないものも含め、すべてのゲスト仮想マシンの中で一意である必要があります。
--memory 2048
ゲスト仮想マシンに割り当てるメモリ量を指定(MiB単位)
--vcpus 1
ゲスト仮想マシンに割り当てられる仮想CPUの数を指定
--cpu mode=host-passthrough
ゲスト仮想マシンのCPUモデルを設定
- mode=host-passthrough:ホストCPUと同じモデルと機能をゲスト仮想マシンに設定します。
--network network=default,model=virtio
ゲスト仮想マシンをホストネットワークに接続する方法を選択
- network=default:「default」という名前の、仮想NATネットワークに接続します。
- model=virtio:ゲストから見たネットワークデバイスのモデル。
「default」ネットワークは、KVMをインストールすると自動的に作成されます。
「default」ネットワーク上の仮想マシンは、ネットワークに完全にアクセスできますが、
ホストPC以外のデバイスはホスト上の仮想マシンと通信できません。
ホストPCだけがゲスト仮想マシンにアクセスできます。
「default」ネットワークの設定は以下のコマンドで確認できます。
$ virsh net-dumpxml default
--location /path/to/ubuntu-22.04.4-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd
インストーラーイメージのパスを指定
- kernel=casper/vmlinuz,initrd=casper/initrd:
virt-installが利用するlibosinfoがkernelとinitrdの場所を知らないときに指定します。
指定しなかった場合、Ubuntu 22.04.4 server では以下のエラーが出てインストールができませんでした。
ERROR Couldn't find hvm kernel for Ubuntu tree.
Couldn't find hvm kernel for Ubuntu tree Autoinstall quick start
--disk size=80,cache=none,format=qcow2
ゲスト仮想マシンが使用するストレージの設定
- size=80:ストレージの容量(GiB単位)
- format=qcow2:ディスクイメージ形式
- cache=none:キャッシュの設定
--graphics none
ゲスト仮想マシンにグラフィカルコンソールを割り当てません。
ゲスト仮想マシンにアクセスするために、
--extra-argsオプションで、ゲスト仮想マシンのシリアルポートにテキストコンソールを設定する必要があります。
--extra-args 'console=tty0 console=ttyS0,115200n8 --- console=tty0 console=ttyS0,115200n8'
最初の console=tty0 console=ttyS0,115200n8 は、
VGAコンソール(console=tty0)またはシリアルコンソール(console=ttyS0)を使用してゲスト仮想マシンを
毎秒115200ビット、パリティビットなし、データビット数8ビット(115200n8)でインストールするように virt-install に指示します。トリプルダッシュ(---)の後の、同じ console=tty0 console=ttyS0,115200n8 は、
インストールされたゲスト仮想マシンのブートローダー/etc/default/grubファイルのGRUB_CMDLINE_LINUX行に追加されます。
--boot uefi
インストール後のブート構成を指定