
Я пытаюсь перенести гостевую систему KVM с одного хоста Ubuntu 14.04 на другой, выполнив следующие шаги:изложено здесь.
Теперь у меня есть файл «state», XML-конфигурация и файл образа qcow2 в одной папке на новом хосте, и я обязательно обновил 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
Отладка и попытки обходных путей
Я уже добавил себя в группу libvirtd и повторно вошел в систему.
Я убедился, что пути к файлам указаны правильно.
Я изменил владельца файла .img на себя, но после запуска команды с sudo и без него владелец файла постоянно меняется на
root:root
с правами доступа-rwxr-xr-x
Я пробовал бежать
sudo apt-get install apparmor-profiles apparmor-utils sudo aa-complain /usr/lib/libvirt/virt-aa-helper
Отэта почта, но это не сработало.
Я попробовал изменить эмулятор в XML-файле, как указаноздесь.
Что мне нужно сделать, чтобы «импортировать» гостя на новый хост в Ubuntu 14.04?
решение1
У меня была аналогичная проблема.
Добавляю пользователя в группу kvm
sudo usermod -a -G kvm username
Затем я убедился, что /dev/kvm
владельцем является root и группа kvm.
После этого я изменил владельца моей существующей виртуальной машины (конвертированной из VirtualBox) на имя пользователя:kvm
Наконец я установил group=kvm user=username
в своем qemu.conf Это исправило ситуацию
решение2
Выключение и повторное включение компьютера (я не перезагружал его с момента установки kvm
) изменило сообщение об ошибке на:
error: internal error: process exited while connecting to monitor: qemu-system-x86_64
Когда я искал эту ошибку в Google, я нашелэта почтакоторый рекомендовал добавить следующее
user = "root"
group = "root"
в /etc/libvirt/qemu.conf
файл. Обязательно включите кавычки.
После еще одной перезагрузки мне удалось virsh create [guest-id].xml
успешно запуститься.
решение3
Запуск QEMU с правами root не рекомендуется, так как начиная с версии 6.0.0 он не будет лишать возможности Linux.
В моем случае это был AppArmor. Я хотел добавить файл SSDT для батареи в VM. Есть некоторые папки, к которым 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,
}