bootctl¶
bootctl est l'outil de gestion de systemd-boot, le gestionnaire de démarrage UEFI intégré à systemd. Il permet d'installer, mettre à jour et inspecter le boot loader, ainsi que de gérer les entrées de démarrage EFI.
Prérequis UEFI
bootctl nécessite un système démarré en mode UEFI avec une partition EFI (ESP) montée. Il ne fonctionne pas sur les systèmes BIOS/Legacy.
Syntaxe générale¶
État et informations¶
# Vue complète : état de l'ESP, entrées de boot, boot loader actuel
bootctl status
# Vue condensée
bootctl
# Lister uniquement les entrées de boot
bootctl list
# Vérifier la configuration (diagnostic)
bootctl is-installed
bootctl is-installed --graceful
Installation et mise à jour¶
# Installer systemd-boot sur l'ESP
sudo bootctl install
# Installer sur une ESP non standard
sudo bootctl install --esp-path=/efi
# Mettre à jour le boot loader (sans toucher aux entrées)
sudo bootctl update
# Désinstaller systemd-boot (conserve les fichiers de boot)
sudo bootctl remove
Mise à jour automatique
Activer systemd-boot-update.service pour mettre à jour automatiquement systemd-boot lors des mises à jour du paquet systemd :
Structure de l'ESP¶
Après installation, l'ESP contient :
/boot/efi/ (ou /efi/)
├── EFI/
│ ├── systemd/
│ │ └── systemd-bootx64.efi # boot loader
│ └── BOOT/
│ └── BOOTX64.EFI # fallback EFI
└── loader/
├── loader.conf # configuration globale
└── entries/
├── linux.conf # entrée Linux
└── linux-rescue.conf # entrée de secours
Configuration du boot loader¶
loader/loader.conf¶
# Entrée de boot par défaut (nom du fichier .conf sans extension, ou @saved)
default linux
# Délai avant démarrage automatique (secondes, 0 = immédiat, -1 = menu permanent)
timeout 3
# Résolution de la console
console-mode max
# Éditeur de ligne de commande dans le menu (désactiver en production)
editor no
# Activer le mode auto (choisit l'entrée selon les variables EFI)
auto-entries yes
auto-firmware yes
Entrées de boot (loader/entries/*.conf)¶
# loader/entries/linux.conf
title Debian GNU/Linux
linux /vmlinuz
initrd /initrd.img
options root=/dev/sda2 rw quiet splash
# loader/entries/linux-rescue.conf
title Debian GNU/Linux (rescue)
linux /vmlinuz
initrd /initrd.img
options root=/dev/sda2 rw single
Gestion des variables EFI¶
# Lire la variable EFI de l'entrée par défaut
bootctl set-default linux
# Définir l'entrée au prochain boot uniquement
bootctl set-oneshot linux-rescue
# Lister les entrées de boot EFI (hors systemd-boot)
bootctl list
# Lire l'entrée suivante définie
efibootmgr # outil complémentaire
Diagnostics courants¶
Vérifier l'état de l'installation¶
bootctl status
# Chercher :
# - "System:" : confirme UEFI
# - "Boot Loader:" : version de systemd-boot installée
# - "Good Partitions:" : ESP correctement détectée
# - "Boot Entries:" : liste les entrées disponibles
ESP non trouvée¶
# Vérifier le montage de l'ESP
findmnt /boot/efi
findmnt /efi
lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i efi
# Monter si nécessaire
sudo mount /dev/sda1 /boot/efi
Entrée de boot manquante après mise à jour noyau¶
# Sur Debian/Ubuntu, le script de post-install du paquet linux-image
# doit copier le noyau et l'initrd dans l'ESP
ls /boot/efi/
# Forcer la mise à jour des entrées
sudo kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r)
Boot loader non mis à jour¶
# Version installée vs version du paquet
bootctl status | grep -A2 "Boot Loader"
bootctl status | grep -A2 "Available Versions"
# Mettre à jour manuellement
sudo bootctl update
Récapitulatif des sous-commandes¶
| Sous-commande | Description |
|---|---|
status | État complet de l'ESP et du boot loader |
list | Lister les entrées de boot disponibles |
install | Installer systemd-boot sur l'ESP |
update | Mettre à jour le boot loader |
remove | Désinstaller systemd-boot |
set-default | Définir l'entrée par défaut |
set-oneshot | Définir l'entrée pour le prochain boot uniquement |
is-installed | Vérifier si systemd-boot est installé |
reboot-to-firmware | Redémarrer vers le menu UEFI du firmware |
Options globales utiles¶
| Option | Description |
|---|---|
--esp-path= | Chemin de l'ESP (défaut : /boot ou /efi) |
--boot-path= | Chemin de boot alternatif |
--no-pager | Désactiver le paginateur |
--graceful | Ne pas échouer si systemd-boot n'est pas installé |
--json=short | Sortie JSON compacte |
Voir aussi¶
- systemd-analyze — analyse du boot et des performances
man bootctlman systemd-boot(7)— documentation du boot loaderman loader.conf(5)— format de la configuration du boot loaderman systemd.boot-credentials(7)— credentials au démarrage