Как я исправил ошибку libvirt: unsupported configuration: Emulator '/usr/bin/qemu-system-x86_64' does not support virt type 'kvm'

Проблема

При попытке определить домен в libvirt на новом сервере я столкнулся со следующей ошибкой:

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'

в то время как KVM был настроен правильно:

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

Решение

В моём случае проблема заключалась в том, что пользователь, от имени которого запускался virsh, не был членом группы kvm.

Сначала определите пользователя с помощью

qemu_conf_user.txt
$ grep "user =" /etc/libvirt/qemu.conf
#       user = "qemu"   # Пользователь с именем "qemu"
#       user = "+0"     # Суперпользователь (uid=0)
#       user = "100"    # Пользователь с именем "100" или пользователь с uid=100
#user = "libvirt-qemu"
swtpm_user = "swtpm"

Строка, которую нужно искать, — user = "libvirt-qemu" — независимо от того, закомментирована она или нет.

В моём случае пользователем был просто libvirt-qemu по умолчанию. Чтобы исправить проблему, я добавил этого пользователя в группу kvm:

add_kvm_group.sh
sudo usermod -aG kvm libvirt-qemu

После этого необходимо перезапустить демон libvirt:

restart_libvirtd.sh
sudo systemctl restart libvirtd

затем вы сможете определить домен без каких-либо проблем:

virsh_define.sh
virsh define domain.xml

Check out similar posts by category: Virtualization Linux