Я пытаюсь переместить гостя KVM от одного хоста Ubuntu 14.04 до другого путем выполнения шагов, обрисованных в общих чертах здесь.
Я теперь имею файл "состояния", конфигурацию XML и файл qcow2 img в единственной папке на новом хосте, и удостоверился, что обновил конфигурацию XML для указания на новое местоположение qcow2 файла изображения.
Когда я пытаюсь работать virsh create [guest-id].xml
Я получаю следующее сообщение об ошибке:
error: internal error: process exited while connecting to monitor: qemu-system-x86_64: -drive file=/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img,if=none,id=drive-virtio-disk0,format=raw: could not open disk image /media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img: Could not open '/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img': Permission denied
root:root
с полномочиями -rwxr-xr-x
$ sudo apt-get install apparmor-profiles apparmor-utils $ sudo aa-complain /usr/lib/libvirt/virt-aa-helper
Из этого сообщения, но это не работало.Что я должен сделать для "импортирования" гостя на новом хосте на Ubuntu 14.04?
Выключение и включение компьютера снова (я не перезагрузил начиная с установки kvm
) изменило сообщение об ошибке на:
error: internal error: process exited while connecting to monitor: qemu-system-x86_64
При Гуглении той ошибки, я нашел это сообщение , который рекомендовал добавить следующее к
user = "root"
group = "root"
к /etc/libvirt/qemu.conf
файл. Обязательно включайте кавычки.
После другой перезагрузки, я смог работать virsh create [guest-id].xml
успешно.
У меня была подобная проблема.
Добавление моего пользователя kvm группе
sudo usermod -a -G kvm username
Затем я удостоверился, что /dev/kvm
принадлежит корню и группе kvm
Впоследствии, я изменил владение своего существующего VM (преобразованный из VirtualBox) к username:kvm
Наконец, я установил group=kvm user=username
в моем qemu.conf, Это зафиксировало его для меня
Запуск QEMU с привилегиями суперпользователя не рекомендуется, так как начиная с версии 6.0.0 это будет не лишайте возможности Linux.
В моем случае это был AppArmor. Я хотел добавить файл SSDT для батареи на виртуальную машину. Есть некоторые папки, к которым AppArmor разрешает доступ, а другие (например, /home/something
) просто запрещены. /var/lib/libvirt/images/
— одна из разрешенных папок. Хотя я поместил туда свой файл, он по-прежнему не разрешен политикой AppArmor (как видно из sudo cat /var/log/kern.log | grep -C 10 apparmor | grep -C 10 qemu
) . Сработало добавление /var/lib/libvirt/images/SSDT1.dat rk
в /etc/apparmor.d/libvirt/TEMPLATE.qemu
следующим образом:
#
# This profile is for the domain whose UUID matches this file.
#
#include <tunables/global>
profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
#include <abstractions/libvirt-qemu>
/var/lib/libvirt/images/SSDT1.dat rk,
}