Par défaut, qemu émule un amorçage de type BIOS/MBR. L'émulation de l'amorçage UEFI fait appel à OVMF, un portage du projet Tianocore (implémentation open source de l'UEFI) pour les machines virtuelles.
ovmf est proposé en plusieurs versions. Dans la version retenue ici, ovmf se présente sous la forme d'un fichier unique (regroupant le code UEFI, le registre des variables, un shell uefi, ...) et Secure Boot est désactivé par défaut.
Ce fichiers est à intégrer dans la commande qemu finale comme une "mémoire flash virtuelle"
2 - Installation
La version ovm monofichier est disponible dans le paquet ovmf installable depuis les dépôts Debian
$ sudo aptitude install ovmf
Le fichier à utiliser est OVMF.fd qui se situe en
/usr/share/ovmf/OVMF.fd
3 - Utilisation
3.1 - Principe
Dans les cas où il n'est pas nécessaire de modifier les variables efi, le fichier OVMF.fd est directement utilisable depuis le répertoire /usr/share/ovmf/OVMF. Pour amorcer en mode uefi, utiliser l'option
-bios /usr/share/ovmf/OVMF.fd
Pour que les modifications apportées aux variables efi soient mémorisables, copier le fichier dans un répertoire local
$ mkdir debian-uefi && cd debian-uefi $ cp /usr/share/ovmf/OVMF.fd ./
et utiliser l'option
-drive if=pflash,format=raw,file=./OVMF.fd
Dans ce qui suit, on définit un alias pour simplifier la saisie des commandes qemu avec les options principales
Note : La quantité de mémoire mise à disposition automatiquement par qemu (256M) n'est pas suffisante pour charger le noyau de l'installateur debian et doit donc être augmentée avec l'option -m xxxx, ici 2048 MB
3.2 - Shell UEFI sans modification des variables EFI
Le logo TianoCore, puis le shell UEFI interne à ovmf doivent apparaître
3.3 - Installateur debian ou debian live sans modification des variables efi
Lorsqu'un système à émuler est équipé d'une entrée par défaut dans la partition ESP (cas des installateurs et distributions "live" debian par exemple), son amorçage est automatique lorsque le media correspondant est exploré. Il n'est donc pas nécessaire de paramétrer dans l'uefi l'entrée d'amorçage
Utiliser la commande suivante. Il n'est pas nécessaire que le fichier OVMF.d soit modifiable, on peut donc utiliser directement la version disponible en /usr/share/ovmf
Lorsque le shell est disponible, afficher les entrées d'amorçage
Shell> bcfg boot dump
et par exemple échanger les entrées 2 (UEFI DVD-ROM) et 3 (EFI Internal Shell)
Shell> bcfg boot mv 3 2
Fermer et relancer l'émulation avec le même fichier OVMF.fd
$ $qemu \ -boot menu=on -bios ./OVMF.fd -net none
Lorsque le shell est ouvert, vérifier que la modification de l'ordre a été conservée.
3.5 - Installation d'un système debian
Créer le disque sur lequel aura lieu l'installation
$ qemu-img create -f qcow2 debian.qcow2 20G
Lancer la commande d'installation, adapter la configuration mémoire, processeur, graphique, en fonction de l'hôte. Utiliser une copie dédiée du fichier OVMF.d en espace utilisateur afin que les modifications effectuées par Grub lors de l'installation soient conservées en mémoire
Le menu permet de modifier l'ordre d'exploration des périphériques à l'amorçage. Pour y accéder, sélectionner successivement les choix suivants
Boot Maintenance Manager >> Boot Options >> Change Boot Order
Si les périphériques réseau ne sont pas utilisés, il est intéressant de les placer en dernier dans la liste, afin que le temps de leur exploration ne soit pas pénalisant pour la découverte des périphériques de stockage
4.3 - Lancement d'un OS par sélection du fichier
Le menu permet également de lancer un OS en le sélectionnant au moyen d'un explorateur de fichier. Sélectionner successivement les choix suivants (exemple d'un cd d'installation linux)
Boot Maintenance Manager >> Boot From File >>
Sélectionner le volume dans la liste >> CDROM >> Sélectionner la partition >> efi Sélectionner le répertoire >> <boot> Sélectionner le fichier >> Grubx64.efi