Ubuntu 14.04 KVM - ошибка: внутренняя ошибка: процесс завершен при подключении к монитору: qemu-system-x86_64:

Ubuntu 14.04 KVM - ошибка: внутренняя ошибка: процесс завершен при подключении к монитору: qemu-system-x86_64:

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

Связанный контент