web-dev-qa-db-fra.com

Virt-Manager ne peut pas se connecter à la console graphique

Depuis hier, je ne peux plus voir aucune machine virtuelle en cours d'exécution (QEMU/KVM) avec mon interface graphique virt-manager. Lorsque j'essaie d'afficher l'écran d'un VM dans sa visionneuse intégrée, le message d'erreur suivant s'affiche:

Erreur de connexion à la console graphique:
erreur interne: impossible d'exécuter la commande QEMU 'getfd':
Aucun descripteur de fichier fourni via SCM_RIGHTS

Cela s'applique à tous mes ordinateurs virtuels.

Je peux toujours visualiser et interagir correctement avec mes ordinateurs virtuels dans virt-viewer. Toutefois, seul le visualiseur intégré virt-manager est mort.

Quel est le problème ici et comment puis-je résoudre ce problème?

Edit: Je viens de découvrir que j'utilise virt-manager version 1:1.4.0-1~getdeb1 à partir du dépôt archive.getdeb.net.

7
Byte Commander

En essayant de fusionner la dernière version virt-manager 1.4.0 avec Ubuntu, je suis tombé sur le même problème. Cela ne semble pas être un bogue dans virt-manager, mais simplement un changement dans la manière dont il envoie les données d'affichage aux VM.

J'ai ouvert un bogue pour ajouter les autorisations nécessaires à libvirt, où sont définis les profils apparmor - https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1668681

Pour résoudre ce problème sans désactiver la sécurité, ajoutez:

# allow connect with openGraphicsFD to work
unix (send, receive) type=stream addr=none peer=(label=/usr/sbin/libvirtd),

dans le fichier /etc/apparmor.d/abstractions/libvirt-qemu mais pas dans la section qemu-bridge-helper. (Donc juste après "owner @ {PROC}/0-9 */fd/r,")

Rechargez ensuite les profils avec Sudo systemctl reload apparmor.

Ceci dit, je recommande toujours d’utiliser les paquets de nos archives pour une meilleure assistance.

11
gQuigs

Dans mon cas, c'était un moyen d'empêcher l'accès. Le générateur de profil magique apparmour ne semble pas fonctionner correctement. Ma solution de contournement est la suivante.

Après avoir démarré l'instance KVM et reçu l'erreur, j'ai:

$Sudo apparmour_status

qui a énuméré le profil à l'origine du problème,

libvirt-<some long key> 

Ensuite, je règle le profil apparmour de se plaindre au lieu de l'appliquer avec:

$Sudo aa-complain /etc/apparmor.d/libvirt/libvirt-<some long key>

Maintenant, je ne reçois plus l'erreur. J'espère que ce conflit sera résolu.

2
Mischa

Je ne pouvais pas reproduire le problème, mais il y a eu des mises à jour pour libvirt le 5 octobre:

libvirt-bin-1.3.1-1ubuntu10.2 a été mis à niveau vers libvirt-bin-1.3.1-1ubuntu10.3
libvirt0-1.3.1-1ubuntu10.2 a été mis à niveau vers libvirt01.3.1-1ubuntu10.3

Si vous n'avez modifié aucun paramètre ni quoi que ce soit d'autre, il est probable que quelque chose s'est mal passé lors du processus de mise à niveau. Supprimez complètement tous les packages liés à virt-manager et réinstallez-les.

Sudo apt purge libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  
Sudo apt install libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  

Redémarrez le système d'exploitation hôte - tout devrait maintenant fonctionner correctement comme auparavant.

1
cl-netbox

Cela ressemble à un bogue dans virt-manager version 1:1.4.0-1~getdeb1 à partir de http://getdeb.net .

La rétrogradation du package à la dernière version disponible à partir du dépôt officiel (1:1.3.2-3ubuntu1.16.04.2 à partir de xenial-updates) corrige ce problème.

Mise à jour: La version 1:1.4.0-1~getdeb2 n'a pas encore résolu ce problème.

0
Byte Commander