Ubuntu 14.04 KVM - ошибка: внутренняя ошибка: процесс завершился при подключении к монитору: qemu-system-x86_64:
Я пытаюсь перенести гостевую KVM с одного хоста Ubuntu 14.04 на другой, выполнив шаги, описанные здесь.
Теперь у меня есть файл "state", конфигурация xml и файл img 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?
2 ответа
Выключение и включение компьютера (я не перезагружался с момента установки 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
принадлежит root и группе kvm
После этого я сменил владельца моей существующей виртуальной машины (преобразованной из VirtualBox) на имя пользователя:kvm
Наконец я поставил group=kvm user=username
в моем qemu.conf это исправило это для меня
Запуск QEMU с правами root не рекомендуется, поскольку начиная с версии 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,
}