Virt-Manager kann keine Verbindung zur grafischen Konsole herstellen


7

Seit gestern kann ich mit meiner virt-managerGUI keine laufenden VMs (QEMU / KVM) mehr anzeigen . Wenn ich versuche, den Bildschirm einer VM in ihrem integrierten Viewer anzuzeigen, wird stattdessen die folgende Fehlermeldung angezeigt:

Fehler beim Verbinden mit der
Grafikkonsole : Interner Fehler: QEMU-Befehl 'getfd' kann nicht ausgeführt werden:
Kein Dateideskriptor über SCM_RIGHTS bereitgestellt

Dies gilt für alle meine VMs.

Ich kann meine VMs trotzdem korrekt anzeigen und mit ihnen interagieren virt-viewer, aber nur der virt-managerintegrierte Viewer ist tot.

Was ist hier falsch und wie kann ich das beheben?

Bearbeiten: Ich habe gerade herausgefunden, dass ich eine virt-managerVersion 1:1.4.0-1~getdeb1aus dem repo archive.getdeb.net verwende.


Verwenden Sie Gewürz, es ist schneller und reichen Sie einen Fehlerbericht ein
Panther

@ bodhi.zazen Es ist bereits standardmäßig für die Verwendung eines Gewürzanzeigeservers konfiguriert, aber weder das noch VNC funktionieren.
Byte Commander

Antworten:


11

Bei dem Versuch, den neuesten virt-manager 1.4.0 mit Ubuntu zusammenzuführen, bin ich auf dasselbe Problem gestoßen. Es scheint kein Fehler in virt-manager zu sein, sondern nur eine Änderung, wie Anzeigedaten an VMs gesendet werden.

Ich habe einen Fehler geöffnet, um libvirt die erforderlichen Berechtigungen hinzuzufügen. Hier werden die Apparmor-Profile definiert - https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1668681

So beheben Sie dieses Problem, ohne den Sicherheitsanhang zu deaktivieren:

# allow connect with openGraphicsFD to work
unix (send, receive) type=stream addr=none peer=(label=/usr/sbin/libvirtd),

in die Datei, /etc/apparmor.d/abstractions/libvirt-qemuaber nicht im Abschnitt qemu-bridge-helper. (Also direkt nach "owner @ {PROC} / 0-9 * / fd / r")

Laden Sie dann die Profile mit neu sudo systemctl reload apparmor.

Trotzdem empfehle ich immer, die Pakete aus unserem Archiv für die beste Unterstützung zu verwenden.


Wo genau müssen Sie diese Regel in die libvirt-qemu-Datei einfügen? Ich habe es am Ende angehängt, vor dem letzten}, habe apparmor neu geladen, aber ich bekomme den gleichen Fehler. Ich habe gestern, am 20. April, die Ubuntu-Updates installiert. virt-manager 1.4.1, jetzt erhalte ich für jede von mir erstellte VM diesen Fehler, anstatt wie bei den zuvor erstellten VMs auf Splice zuzugreifen ...
firepol

1
bearbeitet, um besser zu erklären, was am 16.04 zu tun ist. 16.04 hat am Ende der Datei ein zusätzliches untergeordnetes qemu-bridge-helper-Profil - Sie möchten es nicht hinzufügen.
gQuigs

Ich musste die aktuelle Instanz der virtuellen Maschine entfernen und meinen PC neu starten, aber danach funktionierte dies! Danke :)
Paddotk

2

In meinem Fall war es Apparmour, das den Zugang verhinderte. Der Apparmour Magic Profile Generator scheint nicht so zu funktionieren, wie er sollte. Meine Problemumgehung ist wie folgt.

Nachdem ich die KVM-Instanz gestartet und den Fehler erhalten hatte, tat ich Folgendes:

$sudo apparmour_status

welches das Profil auflistet, das das Problem verursacht,

libvirt-<some long key> 

Dann habe ich das Apparmour-Profil so eingestellt, dass es sich beschwert, anstatt es durchzusetzen:

$sudo aa-complain /etc/apparmor.d/libvirt/libvirt-<some long key>

Jetzt erhalte ich den Fehler nicht mehr. Hoffe, dieser Konflikt wird behoben.


1

Ich konnte das Problem nicht reproduzieren, aber es gab Updates für den libvirt5. Oktober:

libvirt-bin-1.3.1-1ubuntu10.2wurde aktualisiert auf libvirt-bin-1.3.1-1ubuntu10.3
libvirt0-1.3.1-1ubuntu10.2wurde aktualisiert auflibvirt01.3.1-1ubuntu10.3

Wenn Sie keine Einstellungen oder andere Änderungen vorgenommen haben, ist während des Aktualisierungsvorgangs höchstwahrscheinlich ein Fehler aufgetreten. Entfernen Sie alle virt-managerzugehörigen Pakete vollständig und installieren Sie sie erneut.

sudo apt purge libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  
sudo apt install libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  

Starten Sie das Host-Betriebssystem neu - jetzt sollte alles ordnungsgemäß funktionieren wie zuvor.


Es gibt kein Paket libvirt-glib...
Byte Commander

1
Und nein, das Löschen und Neuinstallieren der anderen Pakete hat nicht geholfen. :-(
Byte Commander

Es wurde behoben, scheint ein Fehler in der Version von GetDeb zu sein, die ich installiert hatte. Ein Downgrade auf die offizielle Repo-Version hat das Problem behoben (siehe meine Antwort).
Byte Commander

@ByteCommander: Es wäre eine gute Idee gewesen, die Information, dass Sie eine Drittanbieterlösung in Ihrer Frage verwendet haben, anzugeben, um mir die Möglichkeit zu geben, meine Antwort präziser zu gestalten! Im Grunde haben Sie das Problem gelöst, indem Sie genau das getan haben, was ich vorgeschlagen habe. Sie haben die aktuell installierten Pakete entfernt und die Pakete aus den offiziellen Repositories neu installiert.
Cl-Netbox

Du hast recht, aber eigentlich wusste ich es nicht oder dachte nicht an diese Möglichkeit. Ich habe das GetDeb-Repo vor langer Zeit für ein anderes Paket hinzugefügt und konnte mich nicht erinnern, von dort ein Virt-Manager-Update erhalten zu haben. v (° _ °) v
Byte Commander

0

Scheint ein Fehler in der virt-managerVersion 1:1.4.0-1~getdeb1von http://getdeb.net zu sein .

Ein erneutes Downgrade des Pakets auf die neueste Version, die in den offiziellen Repos ( 1:1.3.2-3ubuntu1.16.04.2von xenial-updates) verfügbar ist, behebt dieses Problem.

Update: Die Version 1:1.4.0-1~getdeb2hat dieses Problem noch nicht behoben.


Bitte beachten Sie, dass kein Downgrade mehr erforderlich ist: In der Antwort von gQuigs wird erläutert, wie Apparmor konfiguriert wird, damit die letzte Version von virt-manager (in meinem Fall 1.4.1) funktioniert. Ich habe gerade die gQuigs-Lösung auf meinem Ubuntu 16.04 getestet und sie funktioniert einwandfrei.
Firepol
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.