virt-manager ne peut pas se connecter à libvirt

38

entrez la description de l'image ici

J'utilise Ubuntu 12.04.2 32 bits.

L'erreur ne s'affiche pas si je commence gksudo virt-manager.

  • libvirt-bin est installé.
  • Je ne sais pas comment vérifier le démon.
  • Je suis membre de libvirtd.

Sortie de 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`

Sortie de ls -l /var/run/libvirt/libvirt-sock:

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

Sortie de getent group libvirtd:

 libvirtd:x:130:OTHERUSER,MYUSER

Message d'erreur détaillé

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
Ce gars brésilien
la source
L'erreur ne s'affiche pas si je commencegksudo virt-manager
Ce type brésilien
Quel est le contenu de votre /etc/libvirt/libvirtd.conffichier?
Bruno Pereira
Pas l'endroit idéal, mais si vous êtes en arc comme je suis et installé qemuet virt-manager, essayez d' exécuter sudo systemctl start libvirtdet éventuellement sudo systemctl enable libvirtdsi vous voulez qu'il démarre au démarrage.
Ave

Réponses:

50

Le redémarrage du système où virt-managerest installé a résolu le problème.

Ce gars brésilien
la source
18
pas une solution typique de Linux!
Woeitg
1
Le 16.04, libvirt-bin .service n'est pas libvirtd .service si vous vous le demandez. Donc, le démon est là.
Bulat M.
1
Dans ce cas, il suffit généralement de se déconnecter / de se connecter pour que les modifications d'appartenance au groupe se propagent dans la session en cours, mais pour moi personnellement, il n'y a pas beaucoup de différence entre relogin et reboot (provoque des perturbations très similaires, le redémarrage prend environ 7s plus longtemps), donc J'ai plutôt utilisé reboot "juste au cas où".
Ped7g
"as-tu essayé de l'éteindre puis de le rallumer?"
tisaconundrum
33

Après avoir installé KVM, exécutez cette commande, puis cette erreur ne se reproduira plus.

sudo virt-manager
Abhi Abhishek
la source
whoa !!! Qu'est-ce que c'est, comment cela a-t-il fonctionné?
Kishor Pawar
Cela a fonctionné à cause de sudo. lire l'explication dans une autre réponse ask.fedoraproject.org/fr/question/45805/…
Kishor Pawar
Devrait être la réponse acceptée.
Magno C
1
Cela fonctionne mais la racine nécessaire à utiliser. Je veux l'utiliser d'un utilisateur normal. Que puis-je faire pour ça?
Puneet Dixit
4
Comme @ andrew-grasso, vous devez vous déconnecter / vous connecter pour que les modifications apportées à l'appartenance à un groupe s'appliquent. L'utilisation sudon'est pas recommandée.
Alex Willison
6

Pour moi, l'erreur est due au fait que les changements d'appartenance à un groupe ne s'appliquent pas sans un login de déconnexion (ou un redémarrage). Je venais d'installer KVM et libvirt-bin. Le programme d'installation a automatiquement ajouté mon utilisateur au groupe libvirtd. J'avais redémarré le service libvirt-bin, mais le message d'erreur apparaissait toujours.

Le simple fait de vous déconnecter et de vous reconnecter a résolu le problème en appliquant mon nouvel abonnement au groupe.

En supposant que vous venez d'installer libvirt-bin et que vous avez déjà confirmé que votre utilisateur actuel est membre du groupe libvirtd, comme le message d'erreur le suggère, vous devrez vous déconnecter et vous reconnecter pour que le nouvel abonnement au groupe puisse s'appliquer.

Ne changez pas les autorisations de fichiers en 777 Ne faites pas que tout exécuter en tant que root ou sudo pour éviter de comprendre ce qui ne va pas.

J'espère que ça aidera quelqu'un.

Andrew Grasso
la source
5

Je gère à la fois Qemu et Virtualbox sur ma machine Ubuntu 14.02 et, après l'installation de Virtualbox, libvirt-bin n'a pas pu démarrer automatiquement. Vérifiez donc si libvirt-bin est en cours d'exécution:

ps faux | grep libvirt-bin

si vous ne le voyez pas dans la sortie ps - commencez manuellement, puis lancez virt-manager:

sudo service libvirt-bin start

Valentin Kantor
la source
5

Sur Ubuntu 16.04.3 LTS

systemctl start virtlogd.socket

était la seule réponse. Le socket a son propre démon. C'est inhabituel.

mr.zog
la source
1

Après avoir installé tous les packages indiqués par l'op, vous pouvez vous déconnecter puis vous reconnecter. Tout ce qui vous ajoute à des groupes d'utilisateurs vous oblige à vous déconnecter et à vous reconnecter pour être ajouté aux nouveaux groupes. C'est un inconvénient mineur, moins important qu'un redémarrage.

Cela a été marqué comme non complet, mais cela va comme règle générale pour ajouter votre utilisateur à un groupe. Un relog est nécessaire, c’est la partie manquante que je n’ai pas vue ici.

tuxdalinuxpenguin
la source
1
Bienvenue sur Ask Ubuntu! Dans sa forme actuelle, votre réponse n’est pas aussi bonne qu’elle pourrait être. Pourriez-vous passer en revue Comment rédiger une bonne réponse et un guide de style pour les questions et les réponses . Vous pouvez préciser quels paquets doivent être installés.
J. Starnes
1

Une autre solution pour redémarrer / déconnecter consiste à exécuter les commandes suivantes à partir d'un terminal:

newgrp libvirt
virt-manager

La newgrpcommande permet à l'utilisateur de rejoindre le libvirtgroupe sans se déconnecter, pour les processus démarrés dans le même shell après newgrp. Bien sûr, cela ne fonctionne que si le programme d'installation de libvirt vous a mis dans le groupe libvirt, que vous pouvez vérifier avec:

getent group libvirt
alkisg
la source
0

Le problème est discuté sur le tableau de bord et la cause de ce problème peut être résolue en installant le xen-utilspaquet ( xen-utils-4.4sur Ubuntu 14.04). Je l' ai déjà contournait ce problème en virt-managertravers sudoà la ligne de commande.

Jay Philips
la source
xenest similaire à kvm wiki.archlinux.org/index.php/KVM , si vous avez déjà kvminstallé n'installez pas xen. Cela annule mon kvminstallation et mon vms a cessé de fonctionner. quand j'ai enlevé xenback vms a commencé à courir.
Kishor Pawar
0

Pour moi, le cas était que lors de son utilisation, service libvirt-bin statusil était évident que tout fonctionnait bien, même si je ne pouvais pas me connecter comme:

    ● 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
[...]

Il /var/run/libvirt/devrait y avoir ces deux fichiers:

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

Si les sockets n'apparaissent pas, utilisez service libvirt-bin stop; service libvirt-bin startpour relancer complètement le processus. L'utilisation service libvirt-bin restartn'est pas suffisante et ne recrée pas le socket.

Le libvirt-binservice peut être arrêté en toute sécurité et ne mettra pas les invités hors tension .

Flatron
la source
0

À partir de la version 17.10 d’Ubuntu, je devais également ajouter le groupe libvirt. J'avais déjà ajouté moi-même à libvirtd et ne me suis pas retiré de ce groupe. Je ne sais pas si les deux sont nécessaires ou non.

Je l’ai fait depuis que j’ai remarqué que le contenu de / var / run / libvirt appartenait à libvirt et non à libvirtd.

K. Gimbel
la source
Pour être une réponse complète, vous devez dire comment s’ajouter aux groupes supplémentaires.
pbhj
-1

J'ai eu le même problème et dans le rapport d'erreur détaillé, il est question de l'absence de permission d'accès au libvirt-sockfichier. Changer l'autorisation du fichier /var/run/libvirt/libvirt-socken 777 l'a fait fonctionner pour moi.

Gebeyew
la source
3
Changer les masques d'autorisation en 0777 est mauvais . Ne recommandez pas d'actions potentiellement nuisibles sans en expliquer les conséquences! -1
David Foerster
-1

Utilisez Ubuntu Software pour désinstaller le gestionnaire virtuel, vous déconnecter, vous reconnecter, installer le gestionnaire virtuel et l'exécuter normalement sans utiliser sudo ni même utiliser la ligne de commande.

tu sais
la source
1
Vous pouvez améliorer votre réponse en expliquant pourquoi ces étapes sont nécessaires au lieu d’une simple réinstallation. Ou après l'une des autres réponses. De l'avis
J. Starnes