découvrez comment utiliser efibootmgr sous linux pour modifier l’ordre de démarrage uefi et créer, supprimer ou gérer les entrées efi.

efibootmgr : modifier l’ordre de démarrage et gérer les entrées EFI sous Linux

Un système Linux peut conserver tous ses fichiers après un clonage et pourtant refuser de démarrer : les entrées UEFI ne résident pas sur le disque, mais dans la NVRAM de la carte mère. Avec efibootmgr, il est possible de les inspecter, de les recréer et de rétablir un ordre de démarrage cohérent, notamment après un déploiement FOG ou une configuration en double amorçage.

L’article en bref

Le contenu d’un disque ne suffit pas toujours à faire démarrer un système UEFI. efibootmgr permet d’agir directement sur les entrées enregistrées par le micrologiciel.

  • Comprendre la NVRAM : Les entrées UEFI sont stockées sur la carte mère, indépendamment des fichiers du disque.
  • Inspecter le démarrage : La commande détaillée affiche les entrées, leur ordre et leur chemin de chargement.
  • Rétablir une entrée : efibootmgr associe une partition système EFI à un chargeur précis.
  • Automatiser avec FOG : Un script post-déploiement peut réparer certaines configurations après clonage.

À retenir : vérifiez la partition et le chargeur avant toute modification du gestionnaire de démarrage.

Pourquoi efibootmgr est utile après un déploiement UEFI

En mode UEFI, le micrologiciel ne cherche pas simplement un système d’exploitation sur chaque disque comme le faisait un BIOS hérité. Il consulte une liste d’entrées de démarrage enregistrée dans la NVRAM, la mémoire non volatile de la carte mère.

Chaque entrée associe un nom affiché dans le menu, un disque, une partition système EFI et le chemin d’un chargeur, par exemple EFIdebianshimx64.efi. Copier ou restaurer les fichiers du disque ne recrée pas automatiquement ces informations.

Pourquoi une image FOG peut ne plus démarrer

FOG déploie le contenu des disques, mais ne restaure pas nécessairement les entrées enregistrées dans le micrologiciel. Une machine peut donc avoir une partition système EFI intacte sans entrée valide pour la lancer : elle affiche alors « no bootable device », ouvre une invite de secours GRUB ou démarre sur un autre système.

A lire aussi :  Comprendre Docker : bases, Dockerfile et orchestration avec Kubernetes

Le cas se rencontre notamment après un changement de matériel, sur une image répartie entre plusieurs disques, ou dans un double amorçage Windows et Linux. Les installations Windows simples démarrent parfois grâce au chemin de secours standard EFIBOOTbootx64.efi, mais un chargeur secondaire ou personnalisé peut ne pas être détecté de cette façon.

Un exemple fréquent : après le déploiement d’une image Debian sur un autre PC, les fichiers sont présents sur le SSD, mais l’entrée Debian de la NVRAM pointe encore vers l’ancien disque ou a disparu. C’est alors le micrologiciel, et non le système de fichiers, qu’il faut corriger.

Afficher les entrées EFI avec efibootmgr sous Linux

La commande doit être lancée depuis un Linux démarré en mode UEFI, avec les droits administrateur. Sur certaines machines, un démarrage en mode BIOS hérité ou un accès indisponible aux variables EFI empêche la lecture ou la modification de la NVRAM.

Pour examiner la configuration, utilisez :

sudo efibootmgr -v

L’option -v affiche les identifiants Boot####, l’ordre de démarrage actif et les chemins détaillés des chargeurs. Comparez ces informations avec le disque et la partition réellement utilisés ; un nom d’entrée correct ne garantit pas que son chemin soit encore valide.

Repérer la partition système EFI et le chargeur

La partition système EFI (ESP) est généralement une petite partition formatée en FAT32. Avant de créer une entrée, repérez son disque et son numéro de partition avec un outil comme lsblk -f, puis vérifiez le chemin du fichier du chargeur dans cette partition.

  • Entrée absente : le menu ne contient pas le chargeur attendu pour Linux.
  • Mauvais ordre : le système voulu existe, mais une autre entrée démarre avant lui.
  • Cible incorrecte : le chemin désigne une partition ou un disque qui n’est plus le bon.
  • Mode de démarrage différent : Linux a été lancé en mode hérité plutôt qu’en UEFI.
A lire aussi :  Docker volume prune : nettoyer vos volumes inutilisés et optimiser l’espace disque

Cette vérification évite de corriger le mauvais élément : une entrée manquante appelle une création, tandis qu’une entrée valide placée trop bas appelle seulement un ajustement de l’ordre.

Créer une entrée de démarrage EFI avec efibootmgr

Pour ajouter une entrée Debian sur un disque NVMe dont la partition EFI est la première, la commande peut s’écrire ainsi :

sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L « Debian » -l ‘EFIdebianshimx64.efi’

Les options indiquent à efibootmgr de créer une entrée, de sélectionner le disque et la partition concernés, puis de définir un libellé et le chemin du chargeur. Le chemin EFI utilise des barres obliques inverses, conformément au format attendu par le micrologiciel.

Option Rôle Exemple
-c Créer une entrée de démarrage —
-d Indiquer le disque contenant l’ESP /dev/nvme0n1
-p Indiquer le numéro de partition EFI 1
-L Définir le nom visible dans le menu UEFI « Debian »
-l Spécifier le chemin du chargeur sur l’ESP EFIdebianshimx64.efi

Une nouvelle entrée est généralement ajoutée à l’ordre de démarrage, souvent en tête. Le comportement dépend toutefois de la situation et de l’outil utilisé : relancez efibootmgr -v pour vérifier l’identifiant attribué et la séquence réellement enregistrée.

Modifier l’ordre ou supprimer une entrée

Les identifiants sont propres à chaque machine : remplacez les valeurs d’exemple par celles affichées sur votre système. Pour placer l’entrée 0002 avant l’entrée 0000, utilisez :

sudo efibootmgr -o 0002,0000

Pour supprimer l’entrée 0003, la commande est :

sudo efibootmgr -b 0003 -B

La suppression ne désinstalle pas le système et n’efface pas les fichiers de la partition EFI ; elle retire uniquement l’entrée correspondante de la NVRAM. Avant toute suppression ou réorganisation, conservez la sortie de efibootmgr -v afin de pouvoir retrouver les paramètres précédents.

Automatiser la réparation des entrées EFI avec FOG

Quand plusieurs postes reçoivent la même image, refaire la commande à la main devient vite répétitif. FOG peut lancer un script après le déploiement, avant le redémarrage, pour recréer une entrée de démarrage selon les besoins du parc.

A lire aussi :  Ingénierie inverse en informatique : définition, méthodes et applications pratiques

Le point d’entrée du mécanisme se trouve sur le serveur FOG dans /images/postdownloadscripts/fog.postdownload. Un script personnalisé peut être placé dans ce répertoire, par exemple efi-fixup.sh, puis appelé depuis fog.postdownload avec la ligne :

. ${postdownpath}efi-fixup.sh

Le script peut contenir la commande efibootmgr adaptée au poste déployé. Dans l’environnement FOS, les disques sont accessibles comme périphériques bloc ; des variables telles que $hostname ou $img permettent aussi de limiter une correction à certains modèles ou à certaines images.

Tester le script avant de l’appliquer à tout un parc

Commencez par un poste de test et confirmez que le système démarre après le déploiement. Vérifiez également que le script cible bien la bonne partition système EFI : un numéro de partition fixe peut ne pas convenir si les machines n’ont pas toutes la même disposition de disque.

Pour un déploiement en double amorçage, contrôlez les entrées Windows et Linux après la correction. L’objectif est de restaurer l’accès au chargeur manquant sans retirer une option encore utilisée.

Questions fréquentes sur efibootmgr et le démarrage EFI

efibootmgr peut-il être utilisé depuis n’importe quel Linux ?

Il faut démarrer Linux en mode UEFI et disposer des droits administrateur ainsi que d’un accès aux variables du micrologiciel. Si la machine a démarré en mode BIOS hérité, les opérations EFI peuvent être indisponibles.

Créer une entrée efibootmgr modifie-t-il les fichiers du disque ?

Non. La commande inscrit une entrée dans la NVRAM, avec un chemin vers un chargeur déjà présent sur la partition système EFI. Elle ne copie pas et ne répare pas elle-même le fichier du chargeur.

Que faut-il vérifier avant de modifier l’ordre de démarrage ?

Relevez d’abord la sortie de efibootmgr -v, puis confirmez les identifiants, le disque, le numéro de partition EFI et le chemin du chargeur. Les numéros d’entrée sont propres à chaque machine.

FOG restaure-t-il automatiquement les entrées UEFI ?

Le déploiement d’une image FOG porte sur le contenu des disques et ne recrée pas nécessairement les entrées de la NVRAM. Un script post-déploiement peut effectuer cette correction lorsqu’elle est adaptée au matériel et à l’image.

Retour en haut