{{tag>application software virtualisation erreur dépannage virt-install qemu bridge}}
====== virt-install/QEMU : Échec de création d'une VM en mode session connectée via un bridge ======
===== Environnement =====
^ Date | 06/2026 |
^ Architecture | x86_64 |
^ Système | Ubuntu 25.10 (questing) |
^ virt-install | 5.1.10 |
^ QEMU | 10.1.0 |
===== Problématique =====
La création d'une VM en espace utilisateur (mode session) avec virt-install déclarant une connexion réseau de type pont (bridge) échoue avec l'erreur :
ERROR /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=32: failed to communicate with bridge helper: stderr=failed to parse default acl file `/etc/qemu/bridge.conf'
Ci-dessous la commande **virt-install** ayant provoqué l'erreur :
virt-install --connect qemu:///session \
--name ubuntu-24.04-cli \
--metadata title="Ubuntu 24.04.4 LTS",description="Ubuntu 24.04.4 LTS (noble) mode console pas de support video ni son" \
--osinfo ubuntu24.04 \
--memory 4096 \
--vcpus 4 \
--boot uefi \
--controller type=scsi,model=virtio-scsi,driver.iommu=on \
--controller type=virtio-serial,driver.iommu=on \
--rng /dev/random,driver.iommu=on \
--disk pool=userpool,size=50,format=qcow2,target.bus=scsi,driver.discard=unmap \
--disk pool=userpool,size=2,format=qcow2,target.bus=scsi,driver.discard=unmap \
--graphics none \
--sound none \
--controller type=usb,model=none \
--cdrom /home/yoann/tmp/ubuntu-24.04.4-desktop-amd64.iso \
--console pty,target_type=serial \
--network bridge=virbr0,model=virtio,driver.iommu=on \
--dry-run --debug
Cette erreur se produit lorsque l'interface de type pont (existante) n'a pas été explicitement autorisée pour son utilisation par QEMU.
===== Résolution =====
Créer un fichier ''/etc/qemu/bridge.conf'' avec les ponts virtuels pouvant être utilisés par QEMU :
# Créer le dossier s'il n'existe pas
if [ ! -d /etc/qemu ]; then mkdir /etc/qemu; chmod go+rx /etc/qemu; fi
Éditer le fichier avec la syntaxe suivante :
# Liste explicite des ponts autorisés
# Autorise le pont "virbr0"
allow virbr0
Le pont virbr0 doit exister. Pour créer un réseau de type pont, on pourra utiliser virsh en mode système. Voir la note gérer les réseaux avec virsh.
Autoriser l'accès en lecture pour les utilisateurs du système :
chmod go+r /etc/qemu/bridge.conf
Après les modifications ci-dessus, la commande virt-install peut encore retourner une erreur :
ERROR /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=32: failed to communicate with bridge helper: stderr=failed to create tun device: Operation not permitted : Transport endpoint is not connected
Dans certains cas, le sticky bit n'est pas positionné sur le binaire de l'helper, ce qui ne permet pas à l'utilisateur d’exécuter l'helper avec les droits suffisants :
# Affiche les droits d'accès associés à l'helper
ls -l /usr/lib/qemu/qemu-bridge-helper
-rwxr-xr-x 1 root root 683264 Apr 1 18:16 /usr/lib/qemu/qemu-bridge-helper
# Positionnement du sticky bit
chmod u+s /usr/lib/qemu/qemu-bridge-helper
# Vérification de la modification apportée
ls -l /usr/lib/qemu/qemu-bridge-helper
-rwsr-xr-x 1 root root 683264 Apr 1 18:16 /usr/lib/qemu/qemu-bridge-helper
Le problème peut se présenter à nouveau après application de mises à jour des paquets libvirt ou qemu notamment si le binaire ''/usr/lib/qemu/qemu-bridge-helper'' est réinstallé ou modifié.
===== Résumé =====
La note suivante permet de paramétrer correctement QEMU et ses utilitaires pour que les VMs s'exécutant en espace utilisateur (mode session) puissent rejoindre des réseaux préexistants de type pont (bridge).
===== Références =====
* [[https://forum.manjaro.org/t/no-bridge-conf-default-installation-libvirt-bridge-exist-but-error-to-start-vm/101063|Le réseaux existe mais une erreur se produit lors de la création de la VM (forum.manjaro.or)(en)]]
* [[https://wiki.archlinux.org/title/QEMU#Bridged_networking_using_qemu-bridge-helper|Utiliser les réseaux en pont avec QEMU (wiki.archlinux.org)(en)]]
* [[https://jonaspfannschmidt.com/libvirt_session.html|Paramétrages spécifiques à qemu-bridge-helper sous Ubuntu (jonaspfannschmidt.com)(en)]]