Comment j'ai corrigé l'erreur libvirt : unsupported configuration: Emulator '/usr/bin/qemu-system-x86_64' does not support virt type 'kvm'

Problème

En essayant de définir un domaine dans libvirt sur un nouveau serveur, j’ai rencontré l’erreur suivante :

virsh_define_error.txt
$ virsh define domain.xml
error: Failed to define domain from domain.xml
error: unsupported configuration: Emulator '/usr/bin/qemu-system-x86_64' does not support virt type 'kvm'

alors que KVM était correctement configuré :

kvm_ok_output.txt
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Solution

Dans mon cas, le problème était que l’utilisateur sous lequel virsh s’exécutait n’était pas membre du groupe kvm.

Tout d’abord, déterminez l’utilisateur avec

qemu_conf_user.txt
$ grep "user =" /etc/libvirt/qemu.conf
#       user = "qemu"   # A user named "qemu"
#       user = "+0"     # Super user (uid=0)
#       user = "100"    # A user named "100" or a user with uid=100
#user = "libvirt-qemu"
swtpm_user = "swtpm"

La ligne que vous devez rechercher est user = "libvirt-qemu" — qu’elle soit commentée ou non.

Dans mon cas, l’utilisateur était simplement celui par défaut, libvirt-qemu. Pour corriger le problème, j’ai ajouté cet utilisateur au groupe kvm :

add_kvm_group.sh
sudo usermod -aG kvm libvirt-qemu

Après cela, vous devez redémarrer le démon libvirt :

restart_libvirtd.sh
sudo systemctl restart libvirtd

ensuite, vous devriez pouvoir définir le domaine sans aucun problème :

virsh_define.sh
virsh define domain.xml

Consultez les articles similaires par catégorie : Virtualization, Linux