Outils pour utilisateurs

Outils du site


sysadmin:linux:virtualisation:kvm:depannage:virsh-erreur-unable-to-find-efi-firmware-compatible-with-the-current-configuration

Virsh : impossible d'importer la VM, firmware EFI non compatible

:TODO_DOCUPDATE:

Contexte

Le problème s'est manifesté lors d'un transfert de VM (export/import) entre deux hôtes/hyperviseurs.

La VM (avec un BIOS EFI) a été créée sur un hyperviseur A

# version sur l'hyperviseur A
virsh version

On a souhaité déplacer la VM de l'hyperviseur A vers l'hyperviseur B

# version sur l'hyperviseur B
virsh version 
Compiled against library: libvirt 10.0.0
Using library: libvirt 10.0.0
Using API: QEMU 10.0.0
Running hypervisor: QEMU 8.2.2

Les fichiers (disque et nvram) ont été copiés sur l'hyperviseur B mais lors de la tentative de création du domaine (VM), le message d'erreur suivant est affiché :

error: Failed to define domain from deb13.xml
error: operation failed: Unable to find 'efi' firmware that is compatible with the current configuration

Lister des capacités des VM de type Q35 sur l'hyperviseur B

virsh domcapabilities --machine q35 --xpath /domainCapabilities/os
<os supported="yes">
  <enum name="firmware">
    <value>efi</value>
  </enum>
  <loader supported="yes">
    <value>/usr/share/OVMF/OVMF_CODE_4M.ms.fd</value>
    <value>/usr/share/OVMF/OVMF_CODE_4M.secboot.fd</value>
    <value>/usr/share/ovmf/OVMF.amdsev.fd</value>
    <value>/usr/share/OVMF/OVMF_CODE_4M.fd</value>
    <enum name="type">
      <value>rom</value>
      <value>pflash</value>
    </enum>
    <enum name="readonly">
      <value>yes</value>
      <value>no</value>
    </enum>
    <enum name="secure">
      <value>yes</value>
      <value>no</value>
    </enum>
  </loader>
</os>

Le dump XML produit pour la VM sur l'hyperviseur A contient :

<os firmware='efi'>
    <type arch='x86_64' machine='pc-q35'>hvm</type>
    <firmware>
      <feature enabled='yes' name='enrolled-keys'/>
      <feature enabled='yes' name='secure-boot'/>
    </firmware>
    <loader readonly='yes' secure='yes' type='pflash' format='raw'>/usr/share/OVMF/OVMF_CODE_4M.ms.fd</loader>
    <nvram template='/usr/share/OVMF/OVMF_VARS_4M.ms.fd' templateFormat='raw' format='raw'>/home/yoann/KVM/deb13/deb13_VARS.fd</nvram>
    <boot dev='hd'/>
  </os>

On utilise bien les fonctionnalités secure-boot mais le

Ne pas utiliser le fichier nvram exporté. Recréer un fichier nvram à partir de celui disponible sur le nouvel hôte/hyperviseur :

cp /usr/share/OVMF/OVMF_VARS_4M.ms.fd deb13_VARS.fd

Références

sysadmin/linux/virtualisation/kvm/depannage/virsh-erreur-unable-to-find-efi-firmware-compatible-with-the-current-configuration.txt · Dernière modification : 2026/07/31 16:33 de yoann