ubuntu cloud image を専ら libvirtd 環境で使っているのですが、イメージで選択で悩んだのでメモ。
OS としては同じものなのだけど、配付形式の都合でちょっとづつ違うイメージ達。例えば今書いている時点では focal amd64 では suffix に次のようなものがあります。
- azure.vhd.zip
- disk-kvm.img
- lxd.tar.xz
- root.tar.xz
- vagrant.box
- wsl.rootfs.tar.gz
- img
- ova
- squashfs
- tar.gz
- vmdk
それぞれが何なのかは、例えば記事にある通りなのですが、悩んだのは disk-kvm.img です。
img は qcow2 形式です。disk-kvm.img も qcow2 形式です。違いは何かと結論からいくと、インストールされているパッケージが異なりました。それは .manifest ファイルの差分を見ると分かります。
--- focal-server-cloudimg-amd64.manifest 2020-12-10 14:21:09.000000000 +0000
+++ focal-server-cloudimg-amd64-disk-kvm.manifest 2020-12-10 14:19:23.000000000 +0000
@@ -354,14 +354,13 @@
libyaml-0-2:amd64 0.2.2-1
libzstd1:amd64 1.4.4+dfsg-3
linux-base 4.5ubuntu3.1
-linux-headers-5.4.0-54 5.4.0-54.60
-linux-headers-5.4.0-54-generic 5.4.0-54.60
-linux-headers-generic 5.4.0.54.57
-linux-headers-virtual 5.4.0.54.57
-linux-image-5.4.0-54-generic 5.4.0-54.60
-linux-image-virtual 5.4.0.54.57
-linux-modules-5.4.0-54-generic 5.4.0-54.60
-linux-virtual 5.4.0.54.57
+linux-headers-5.4.0-1026-kvm 5.4.0-1026.27
+linux-headers-kvm 5.4.0.1026.24
+linux-image-5.4.0-1026-kvm 5.4.0-1026.27
+linux-image-kvm 5.4.0.1026.24
+linux-kvm 5.4.0.1026.24
+linux-kvm-headers-5.4.0-1026 5.4.0-1026.27
+linux-modules-5.4.0-1026-kvm 5.4.0-1026.27
locales 2.31-0ubuntu9.1
login 1:4.8.1-1ubuntu5.20.04
logrotate 3.14.0-4ubuntu3
generic と kvm の違いのようです。ちょうどazure 向けに kernel が調整されたりしているのと同様で、深くは追っていないのですが、KVM の guest 向けのチューニング が適用されているのでしょう。kvm/libvirtd 向けであれば、こちらのほうが良さそうです。
ただし、NIC を virtio にするのをお忘れなく。
<interface type="network"><model type="virtio"/></interface>