J'utilise Ubuntu 12.04.2 32 bits.
L'erreur ne s'affiche pas si je lance gksudo virt-manager
.
libvirt-bin
est installé.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
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
Le redémarrage du système sur lequel virt-manager
est installé a résolu le problème.
Après avoir installé KVM, exécutez cette commande, puis cette erreur ne se reproduira plus.
Sudo virt-manager
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.
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
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.
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.
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
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-bin
peut être arrêté en toute sécurité et ne mettra pas hors tension les invités.
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.
À 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.