84 votes

Virt-manager ne peut pas se connecter à libvirt

entrer la description de l'image ici

Je cours Ubuntu 12.04.2 32 bits.

L'erreur ne s'affiche pas si je démarre gksudo virt-manager.

  • libvirt-bin est installé.
  • Je ne sais pas comment vérifier le daemon.
  • 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 root 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

1voto

Dariusz Filipiak Points 111

Ce fut la solution pour moi :

sudo apt install libvirt-daemon-system

sudo systemctl start libvirtd

redémarrer le système

1voto

Moazzem Hossen Points 149

L'utilisateur connecté doit être ajouté au groupe d'utilisateurs libvirt

sudo usermod -a -G libvirt $USER

1voto

kbulgrien Points 128

Diverses réponses font allusion au fait que le problème peut survenir en raison des autorisations de groupe qui ne sont pas appliquées à l'utilisateur exécutant le Gestionnaire de machines virtuelles, et, la réponse acceptée, notant que le redémarrage a résolu le problème, dépendait probablement du redémarrage pour donner à l'utilisateur les autorisations de groupe à la connexion (bien que le redémarrage pourrait éventuellement également démarrer des services).

Dans le cas d'Ubuntu 20.04.1, l'installation de QEMU/KVM avec apt-get a automatiquement démarré tous les services, et a fini par résoudre strictement en découvrant comment donner à l'utilisateur exécutant le Gestionnaire de machines virtuelles un accès de groupe à libvirt (même si /etc/group montrait que l'utilisateur avait obtenu les droits).

Comme d'autres le mentionnent, une déconnexion/reconnexion est généralement nécessaire pour enregistrer de nouvelles autorisations de groupe, mais, dans le cas d'un bureau graphique GNOME utilisant gdm, la déconnexion et la reconnexion n'étaient pas suffisantes pour accorder à l'utilisateur GUI de nouveaux droits de groupe libvirt. En fait, se déconnecter ET redémarrer gdm (arrêter toutes les instances du shell GNOME) et se reconnecter, n'étaient pas suffisants.

Dans un scénario, ce qui suit s'est avéré efficace et n'a pas nécessité de redémarrage après l'installation de libvirt:

  • loginctl terminate-user où est l'utilisateur se connectant à GNOME.
  • sudo systemctl restart gdm

La commande loginctl a été obtenue à partir de cette réponse.

Le redémarrage de gdm était nécessaire car après l'exécution de loginctl, la console graphique s'est fermée sans offrir d'écran de connexion (laissant seulement un écran noir). Il n'a pas été déterminé si loginctl arrête toujours le mécanisme de connexion graphique, mais s'il ne le fait pas, alors le redémarrage de gdm peut être superflu (omis).

Pour information, dans le cas où cette solution a fonctionné, libvirt/KVM a été installé en installant : bridge-utils, libvirt-daemon-system, qemu-kvm, et virt-manager. Cela a correctement démarré les services requis sans intervention manuelle, et a automatiquement attribué des droits de groupe aux utilisateurs préexistants ayant des droits sudo.

0voto

K. Gimbel Points 1

À partir d'Ubuntu 17.10, j'ai également dû me rajouter au groupe libvirt. J'avais déjà ajouté mon nom à libvirtd et je ne me suis pas retiré de ce groupe. Je ne sais pas si les deux sont nécessaires ou pas.

J'ai fait cela car j'ai remarqué que les contenus de /var/run/libvirt étaient la propriété de libvirt au lieu de libvirtd.

0voto

user1094515 Points 1

Correction facile : Allez dans les comptes et changez vos groupes pour les deux groupes libvirt.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X