virt-manager kann keine Verbindung zu libvirt herstellen

38

Bildbeschreibung hier eingeben

Ich verwende Ubuntu 12.04.2 32 Bit.

Der Fehler wird beim Starten nicht angezeigt gksudo virt-manager.

  • libvirt-bin ist installiert.
  • Ich weiß nicht, wie ich nach dem Daemon suchen soll.
  • Ich bin Mitglied von libvirtd.

Ausgabe von ps ax | grep libvirt:

9225 ? Sl 0:04 /usr/sbin/libvirtd -d
9302 ? S 0:00 /usr/sbin/dnsmasq -u libvirt-dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override`

Ausgabe von ls -l /var/run/libvirt/libvirt-sock:

srwxrwx --- 1 root libvirtd 0 Set 13 15:04 / var / run / libvirt / libvirt-sock

Ausgabe von getent group libvirtd:

 libvirtd:x:130:OTHERUSER,MYUSER

Detaillierte Fehlermeldung

Unable to connect to libvirt.   
Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

Verify that:
 - The 'libvirt-bin' package is installed
 - The 'libvirtd' daemon has been started
 - You are member of the 'libvirtd' group

Libvirt URI is: qemu:///system

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/connection.py", line 1185, in _open_thread
    self.vmm = self._try_open()
  File "/usr/share/virt-manager/virtManager/connection.py", line 1167, in _try_open
    flags)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 102, in openAuth
    if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
Dieser Brasilianer
quelle
Der Fehler wird nicht angezeigt, wenn ich beginnegksudo virt-manager
That Brazilian Guy
Was ist der Inhalt Ihrer /etc/libvirt/libvirtd.confDatei?
Bruno Pereira
Nicht der ideale Ort, aber wenn Sie auf Bogen , wie ich bin und installiert qemuund virt-managerversuchen , laufen sudo systemctl start libvirtdund optional , sudo systemctl enable libvirtdwenn Sie es beim Start beginnen soll.
Ave

Antworten:

50

Ein Neustart des Systems, auf dem virt-manageres installiert ist, hat das Problem behoben.

Dieser Brasilianer
quelle
17
keine typische Linux-Lösung!
Woeitg
1
Am 16.04 sein libvirt-bin .service nicht libvirtd .service wenn du dich fragst. Der Dämon ist also da.
Bulat M.
1
Normalerweise sollte in diesem Fall nur das Abmelden / Anmelden ausreichen, um die Änderungen der Gruppenmitgliedschaft in die aktuelle Sitzung zu übertragen, aber für mich persönlich gibt es keinen großen Unterschied zwischen dem erneuten Anmelden und dem Neustart (dies führt zu sehr ähnlichen Störungen, der Neustart dauert nur etwa 7 Sekunden länger) Ich habe eher einen Neustart "nur für den Fall" verwendet.
Ped7g
"Hast du versucht, es aus- und wieder einzuschalten?"
Tisaconundrum
33

Führen Sie nach der Installation von KVM diesen Befehl aus, damit der Fehler nicht erneut auftritt.

sudo virt-manager
Abhi Abhishek
quelle
whoa !!! Was ist das, wie hat das funktioniert?
Kishor Pawar
Es hat funktioniert wegen sudo. Lesen Sie die Erklärung in einer anderen Antwort. ask.fedoraproject.org/en/question/45805/…
Kishor Pawar
Sollte die akzeptierte Antwort sein.
Magno C
1
Es funktioniert, benötigt aber root. Ich möchte es vom normalen Benutzer verwenden. Was kann ich dafür tun?
Puneet Dixit
4
Wie bei @ andrew-grasso angegeben, müssen Sie sich abmelden / anmelden, damit die Änderungen der Gruppenmitgliedschaft wirksam werden. Die Verwendung sudowird nicht empfohlen.
Alex Willison
6

Für mich war der Fehler darauf zurückzuführen, dass Änderungen an der Gruppenmitgliedschaft nicht ohne Abmeldung (oder Neustart) wirksam werden. Ich hatte gerade KVM und libvirt-bin installiert. Das Installationsprogramm fügte meinen Benutzer automatisch der Gruppe libvirtd hinzu. Ich hatte den Dienst libvirt-bin neu gestartet, aber es wurde immer noch der Fehler angezeigt.

Durch einfaches Abmelden und erneutes Anmelden wurde das Problem behoben, indem meine neue Gruppenmitgliedschaft angewendet wurde.

Angenommen, Sie haben gerade libvirt-bin installiert und bereits bestätigt, dass Ihr aktueller Benutzer ein Mitglied der libvirtd-Gruppe ist, wie in der Fehlermeldung angegeben, müssen Sie sich abmelden und wieder anmelden, damit die neue Gruppenmitgliedschaft angewendet wird.

Ändern Sie die Dateiberechtigungen nicht in 777. Führen Sie nicht einfach alles als root oder sudo aus, um zu vermeiden, dass Sie verstehen, was falsch ist.

Ich hoffe das hilft jemandem.

Andrew Grasso
quelle
5

Ich verwalte sowohl Qemu als auch Virtualbox auf meinem Ubuntu 14.02-Computer und nach der Installation von Virtualbox konnte libvirt-bin nicht automatisch gestartet werden. Überprüfen Sie also, ob libvirt-bin ausgeführt wird:

ps faux | grep libvirt-bin

Wenn Sie es in der ps-Ausgabe nicht sehen - starten Sie es manuell, und führen Sie virt-manager aus:

sudo service libvirt-bin start

Valentin Kantor
quelle
5

Auf Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

war die einzige Antwort. Der Socket hat einen eigenen Daemon. Das ist ungewöhnlich.

mr.zog
quelle
1

Nachdem Sie alle von op angegebenen Pakete installiert haben, können Sie sich abmelden und wieder anmelden. Alles, was Sie zu Benutzergruppen hinzufügt, müssen Sie ab- und wieder anmelden, um zu den neuen Gruppen hinzugefügt zu werden. Es ist eine kleine Unannehmlichkeit, weniger als ein Neustart.

Dies wurde als nicht vollständig markiert. Dies gilt jedoch als allgemeine Regel für das Hinzufügen Ihres Benutzers zu einer Gruppe. Ein Relog ist nötig, das war der fehlende Teil, den ich hier nicht gesehen habe.

tuxdalinuxpenguin
quelle
1
Willkommen bei Ask Ubuntu! In der jetzigen Form ist Ihre Antwort nicht so gut wie sie sein könnte. Könnten Sie überprüfen, wie man eine gute Antwort schreibt , und einen Style-Leitfaden für Fragen und Antworten . Sie könnten klären, welche Pakete installiert werden müssen.
J. Starnes
1

Eine Alternative zum Neustart / Abmelden besteht darin, die folgenden Befehle von einem Terminal aus auszuführen:

newgrp libvirt
virt-manager

Mit dem newgrpBefehl kann der Benutzer der libvirtGruppe beitreten , ohne sich abzumelden. Dies gilt für Prozesse, die in derselben Shell gestartet werden newgrp. Dies funktioniert natürlich nur, wenn Sie vom libvirt-Installationsprogramm in die libvirt-Gruppe aufgenommen wurden, mit der Sie Folgendes überprüfen können:

getent group libvirt
alkisg
quelle
0

Das Problem wird im Launchpad besprochen und die Ursache für dieses Problem kann durch Installieren des xen-utilsPakets ( xen-utils-4.4unter Ubuntu 14.04) behoben werden . Bisher habe ich dieses Problem virt-managerüber sudodie Befehlszeile umgangen.

Jay Philips
quelle
xenist ähnlich wie kvm wiki.archlinux.org/index.php/KVM , wenn du es bereits kvminstalliert hast, installiere es nicht xen. Es überschreibt meine kvmInstallation und meine VMs werden nicht mehr ausgeführt. als ich xenzurück entfernte, fing vms an zu laufen.
Kishor Pawar
0

Für mich war der Fall, dass bei der Verwendung service libvirt-bin statuszeigte, dass alles gut lief, obwohl ich keine Verbindung herstellen konnte, wie:

    ● libvirt-bin.service - Virtualization daemon
       Loaded: loaded (/lib/systemd/system/libvirt-bin.service; enabled; vendor preset: enabled)
       Active: active (running) since Do 2016-09-22 13:22:16 CEST; 6min ago
[...]

Darin /var/run/libvirt/sollten sich diese beiden Dateien befinden:

srwxrwxrwx  1 root libvirtd    0 Sep 22 13:22 libvirt-sock=
srwxrwxrwx  1 root libvirtd    0 Sep 22 13:22 libvirt-sock-ro=

Wenn die Sockets nicht angezeigt werden, service libvirt-bin stop; service libvirt-bin startstarten Sie den Prozess mit vollständig neu. Die Verwendung service libvirt-bin restartist nicht ausreichend und erstellt den Socket nicht neu.

Der libvirt-binDienst kann sicher gestoppt werden und schaltet die Gäste nicht aus .

Flatron
quelle
0

Ab Ubuntu 17.10 musste ich mich auch zur Gruppe libvirt hinzufügen. Ich hatte mich bereits zu libvirtd hinzugefügt und mich nicht aus dieser Gruppe entfernt. Ich weiß nicht, ob beides erforderlich ist oder nicht.

Ich habe dies getan, da mir aufgefallen ist, dass der Inhalt von / var / run / libvirt nicht libvirtd, sondern libvirt gehört.

K. Gimbel
quelle
Um eine vollständige Antwort zu erhalten, müssen Sie angeben, wie Sie sich zu den zusätzlichen Gruppen hinzufügen möchten.
pbhj
-1

Ich hatte das gleiche Problem und im detaillierten Fehlerbericht wird von mangelnder Berechtigung für die libvirt-sockDatei gesprochen. Das Ändern der Berechtigung der Datei /var/run/libvirt/libvirt-sockin 777 hat für mich funktioniert.

Gebeyew
quelle
3
Das Ändern der Berechtigungsmasken auf 0777 ist fehlerhaft . Empfehlen Sie keine potenziell schädlichen Maßnahmen, ohne die Konsequenzen zu erklären! -1
David Foerster
-1

Mit der Ubuntu-Software können Sie den virtuellen Manager deinstallieren, sich abmelden, wieder anmelden, den virtuellen Manager installieren und normal ausführen, ohne sudo oder sogar die Befehlszeile zu verwenden.

kenne dich
quelle
1
Sie können Ihre Antwort verbessern , indem Sie erläutern, warum diese Schritte erforderlich sind, anstatt sie einfach neu zu installieren. Oder folgen Sie einer der anderen Antworten. Aus Bewertung
J. Starnes