
Ich versuche, einen KVM-Gast von einem Ubuntu 14.04-Host auf einen anderen zu migrieren, indem ich die folgenden Schritte ausführehier beschrieben.
Ich habe jetzt die „Status“-Datei, die XML-Konfiguration und die qcow2-img-Datei in einem einzigen Ordner auf dem neuen Host und habe sichergestellt, dass ich die XML-Konfiguration so aktualisiere, dass sie auf den neuen Speicherort der qcow2-Bilddatei verweist.
Beim Versuch, es auszuführen, virsh create [guest-id].xml
erhalte ich die folgende Fehlermeldung:
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
Debuggen und versuchte Problemumgehungen
Ich habe mich bereits zur libvirtd-Gruppe hinzugefügt und mich erneut angemeldet.
Ich habe sichergestellt, dass die Dateipfade korrekt sind
Ich habe den Besitz der IMG-Datei auf mich selbst geändert, aber nachdem ich den Befehl mit und ohne sudo ausgeführt habe, ändert sich der Besitz der Datei immer wieder auf
root:root
mit Berechtigungen-rwxr-xr-x
Ich habe versucht zu rennen
sudo apt-get install apparmor-profiles apparmor-utils sudo aa-complain /usr/lib/libvirt/virt-aa-helper
Ausdieser Beitrag, aber das hat nicht funktioniert.
Ich habe versucht, den Emulator in der XML-Datei wie angegeben zu ändernHier.
Was muss ich tun, um den Gast auf dem neuen Host unter Ubuntu 14.04 zu „importieren“?
Antwort1
Ich hatte ein ähnliches Problem.
Hinzufügen meines Benutzers zur KVM-Gruppe
sudo usermod -a -G kvm username
Dann habe ich sichergestellt, dass /dev/kvm
es Root und der Gruppe kvm gehört.
Anschließend habe ich den Besitzer meiner bestehenden VM (konvertiert von VirtualBox) in username:kvm geändert
Schließlich habe ich group=kvm user=username
in meiner qemu.conf Folgendes eingestellt. Das hat das Problem für mich behoben
Antwort2
Durch Aus- und Wiedereinschalten des Computers (ich hatte seit der Installation keinen Neustart durchgeführt kvm
) änderte sich die Fehlermeldung wie folgt:
error: internal error: process exited while connecting to monitor: qemu-system-x86_64
Als ich diesen Fehler googelte, fand ichdieser Beitragwurde empfohlen, Folgendes hinzuzufügen:
user = "root"
group = "root"
zur /etc/libvirt/qemu.conf
Datei. Denken Sie daran, die Anführungszeichen mit einzuschließen.
Nach einem weiteren Neustart konnte ich es virsh create [guest-id].xml
erfolgreich ausführen.
Antwort3
Es wird nicht empfohlen, QEMU mit Root-Rechten auszuführen, da dadurch ab Version 6.0.0 die Linux-Funktionen nicht mehr entfernt werden.
In meinem Fall war es AppArmor. Ich wollte der VM eine SSDT-Datei für eine Batterie hinzufügen. Es gibt einige Ordner, auf die AppArmor Zugriff erlaubt, und andere (wie /home/something
) sind einfach nicht erlaubt. /var/lib/libvirt/images/
ist einer der erlaubten Ordner. Obwohl ich meine Datei dort abgelegt habe, war sie von der AppArmor-Richtlinie immer noch nicht erlaubt (wie man an sehen kann sudo cat /var/log/kern.log | grep -C 10 apparmor | grep -C 10 qemu
). Was funktioniert hat, war, sie wie folgt /var/lib/libvirt/images/SSDT1.dat rk
hinzuzufügen :/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,
}