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,
}
Другие вопросы по тегам