web-dev-qa-db-fra.com

virt-manager ne peut pas se connecter à libvirt

enter image description here

J'utilise Ubuntu 12.04.2 32 bits.

L'erreur ne s'affiche pas si je lance 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
32
That Brazilian Guy

Le redémarrage du système sur lequel virt-manager est installé a résolu le problème.

47
That Brazilian Guy

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

Sudo virt-manager
31
Abhi Abhishek

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.

5
mr.zog

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

5
Valentin Kantor

Pour moi, l'erreur est due au fait que les modifications 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 lancez pas tout en tant que root ou Sudo pour éviter de comprendre ce qui ne va pas.

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

4
Andrew Grasso

Le problème est discuté sur Launchpad et la cause de ce problème peut être résolue en installant le package xen-utils (xen-utils-4.4 sur Ubuntu 14.04). Auparavant, je contournais ce problème de virt-manager à Sudo en ligne de commande.

0
Jay Philips

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

newgrp libvirt
virt-manager

La commande newgrp permet à l'utilisateur de rejoindre le groupe libvirt sans se déconnecter, pour les processus démarrés dans le même shell après le 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
0
alkisg

Pour moi, le cas était que lorsque service libvirt-bin status était utilisé, cela montrait 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
[...]

Dans /var/run/libvirt/, il 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 ne s'affichent pas, utilisez service libvirt-bin stop; service libvirt-bin start pour redémarrer complètement le processus. Utiliser service libvirt-bin restart n'est pas suffisant et ne recréera pas le socket.

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

0
Flatron

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.

Ceci 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’était la partie manquante que je n’ai pas vue ici.

0
tuxdalinuxpenguin

À 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.

0
K. Gimbel