Попутных параметров командной строки
Попутных параметр командной строки для QEMU из вирта-менеджера требуется следующие шаги.
virsh edit <name of vm>
, или непосредственно изменить файл, используя vim /etc/libvirt/qemu/<name of virtual machine>.xml
- изменения
<domain type='kvm'>
в <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
- добавить теги для командной строки параметры
<qemu:commandline>
<qemu:arg value='-chardev'/>
<qemu:arg value='socket,path=/tmp/ivshmem_socket,id=ivshmem_socket'/>
<qemu:arg value='-device'/>
<qemu:arg value='ivshmem,chardev=ivshmem_socket,size=1m'/>
</qemu:commandline>
После этого, QEMU будет попытайтесь получить доступ к /tmp/ivshmem_socket
, и из-за apparmor (libvirt использовал apparmor в моем случае, он может также использовать SeLinux), доступ будет отклонен, и будет показана ошибка, аналогичная следующей.
error starting domain: internal error: process exited while connecting to monitor:
...
virt-manager Failed to connect socket: Permission denied
AppArmor
Чтобы исправить эту ошибку, необходимо выполнить следующие два шага.
1.Сделать QEMU работать как корень (Этот шаг optional
, и не может быть потребовано для вас, переходите ко второму шагу)
- ВИМ
/etc/libvirt/qemu.conf
- изменение линии
user =
и group =
, к следующему
пользователь = "корень"
группа = "корень"
Перезагрузите компьютер или демон libvirt.
2. AppArmor
- найти UUID гостя из конфигурационного файла XML (использование virsh редактировать и искать тег)
- кд
/etc/apparmor.d/libvirt
- проверить, если
libvirt-<uuid>
файл присутствует , заменить <uuid>
на uuid vm
Изменить режим AppArmor, чтобы жаловаться, а не enfo rcing, который позволит выполнять все действия виртуальной машины и регистрировать те, которые должны были быть заблокированы.
sudo aa-complain libvirt-<uuid> //replace <uuid> with uuid of vm