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