Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Comment installer Systemd-boot sur Linux

Systemd-boot est un chargeur de démarrage Linux alternatif qui est alimenté par le système de démarrage Systemd.
Il possède des dizaines de fonctionnalités modernes, dont un démarrage plus rapide, un meilleur support de l’EFI, et bien plus encore, ce qui en fait un excellent choix pour Linux.
La configuration de Systemd-boot sur Linux est un processus délicat, aussi avant de commencer, nous vous recommandons vivement de sauvegarder vos données critiques.

Dans ce tutoriel, je vous guide pour installer System-Boot sur votre Linux.
Je vous donne aussi les commandes basiques de bootctl qui permet de gérer le démarrage system-boot.

Comment installer Systemd-boot sur Linux

Qu’est-ce que Systemd-Boot

Systemd-boot (anciennement connu sous le nom de Gummiboot) est un chargeur d’amorçage simple et léger utilisé sur les systèmes Linux qui utilisent l’UEFI (Unified Extensible Firmware Interface). Il fait partie du projet systemd, qui est un ensemble de composants logiciels pour les systèmes Linux visant à unifier et simplifier le processus de gestion du système et du démarrage.

  • Simplicité : systemd-boot est plus simple à configurer et gérer comparé à des gestionnaires plus complexes comme GRUB, surtout pour des systèmes simples ou des environnements de démarrage multiples.
  • Compatibilité UEFI : systemd-boot est conçu spécifiquement pour UEFI, ce qui le rend idéal pour les systèmes modernes utilisant ce firmware.
  • Vitesse et Efficacité : systemd-boot est léger et rapide, avec une approche minimaliste qui convient bien aux systèmes qui n’ont pas besoin de nombreuses options de configuration de démarrage.
[warning]Attention Systemd-Boot ne fonctionne pas en environnement MBR.[/warning]

Comment installer system-boot (Linux Boot Manager)

Avant de modifier la configuration de démarrage de votre Linux, il est conseillé de créer une clé USB de dépannage de votre distribution Linux, Recatux ou encore de Super Grub2 Disk.

Tout d’abord, installez les paquets en utilisant le système de paquets de votre distribution Linux.

Avec APT pour les distributions Linux Debian, Ubuntu, Linux Mint et autres :

sudo apt install systemd-boot
Comment installer system-boot (Linux Boot Manager)

Puis l’utilitaire exécute bootctl qui va créer les entrées EFI et copier les firmwares EFI.

Created "/boot/efi/EFI/systemd".
Created "/boot/efi/loader".
Created "/boot/efi/loader/entries".
Created "/boot/efi/EFI/Linux".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/efi/EFI/systemd/systemd-bootx64.efi".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/efi/EFI/BOOT/BOOTX64.EFI".
Created "/boot/efi/5f7e795b65894757b361529cc0059820".
Dans Ubuntu 24.04, APT lance les scripts de configuration et installe systemd-boot. Il n’est donc pas nécessaire d’utiliser les commandes bootctl ci-dessous.

Enfin une nouvelle entrée de démarrage EFI est ajoutée :

Created EFI boot entry "Linux Boot Manager".

La commande utilisée pour cela est la suivante :

sudo bootctl --make-entry-directory=yes install

Lorsque l’utilitaire ne trouve pas la partition EFI, vous obtenez ce message.
Cela peut bien entendu se produire si le PC est configuré en MBR et pas en UEFI.

Couln't find EFI system partition. It is recommanded to mount it to /boot or /efi.

Au cas où les fichiers EFI doivent être placés dans un autre emplacement, utilisez l’option –path en spécifiant le répertoire.
Par exemple :

sudo bootctl --path=/boot2 install

Comment remplacer GRUB par systemd-boot

Lorsque vous installez systemd-boot par APT ce dernier créé les entrées de démarrage, donc vous n’avez pas à le faire manuellement.
Toutefois, voici les explications pour y parvenir.

Configurer les entrées de démarrage d’un noyau Linux

Vérifiez le contenu de /boot/efi/loader/loader.conf :

timeout 3
console-mode keep
default 1c61ae7b096b4b2987be4ad54f05f13c-*
  • timeout — délai d’affichage du menu de démarrage. Cette entrée est facultative
  • console-mode — Spécifie le mode de résolution de la console UEFI utilisée pendant le démarrage du système. Il détermine comment le texte est affiché à l’écran pendant le processus de démarrage, en choisissant parmi plusieurs résolutions disponibles pour la sortie de la console. Cette entrée est facultative. Voici les modes possibles :
    • 0 – Mode par défaut, souvent une basse résolution, principalement utilisé pour une compatibilité maximale.
    • 1, 2, 3, etc. : Modes de résolution plus élevés, le chiffre représentant des résolutions croissantes (ex. : 80×25, 100×31, etc.). La numérotation exacte des modes peut différer selon le matériel.
  • default — charge le fichier de démarrage spécifié se trouvant dans boot/efi/loader/entries/

Voici un exemple de la configuration de démarrage dans /boot/efi/loader/entries/ :

title Ubuntu
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
options root=UUID=<UUID of root partition>
  • title — est le titre de l’entrée
  • linux — donne le chemin du noyau Linux. Le fameux fichier vmzlinux
  • initrd — indique le chemin du fichier de ramdisk
  • options — fournit l’UUID de la partition / de Linux. Utilisez la commande lsblk -f ou la commande blkid permet de l’obtenir. Dans cette entrée, vous pouvez spécifier des options de démarrage (voir plus bas).
Remplacer GRUB par systemd-boot

Voici un exemple de fichier de configuration avec des entrées plus complexes.

title Ubuntu 24.04.1 LTS
version 6.5.0-27-generic
machine-id 1c61ae7b096b4b2987be4ad54f05f13c
sort-key ubuntu
options root=UUID=37f016e9-3a6c-4a80-9654-c7c807dcd994 ro quiet splash resume=UUID=0d10f849-75ac-40b0-a4a6-900407202120 nouveau.blacklist=1 rd.blacklist=nouveau vt.handoff=7 nvidia_drm.modeset=1 nvidia_drm.fbdev=1 systemd.machine_id=1c61ae7b096b4b2987be4ad54f05f13c
linux /1c61ae7b096b4b2987be4ad54f05f13c/6.5.0-27-generic/linux
initrd /1c61ae7b096b4b2987be4ad54f05f13c/6.5.0-27-generic/initrd.img-6.5.0-27-generic

systemd-boot lit les configurations et les entrées de démarrage directement depuis les fichiers situés dans le répertoire /boot/efi/loader/entries/ à chaque démarrage de l’ordinateur. Les fichiers de configuration sont interprétés en temps réel à chaque démarrage, donc toute modification dans les fichiers d’entrée est automatiquement appliquée au prochain redémarrage du système.
Ainsi, contrairement à GRUB, lorsque vous modifiez la configuration de démarrage ou mettez à jour les entrées de démarrage, il n’est pas nécessaire d’utiliser une commande “update”.

Configurer un dual-boot Windows

Si vous avez un autre OS en Dual-Boot, par exemple, Windows, vous devez créer une entrée de démarrage spécifique.

  • Tout d’abord, installez le paquet suivant. Cela permet d’obtenir shellx64.efi est un fichier exécutable qui permet d’obtenir un environnement “UEFI Shell”.
sudo apt install efi-shell-x64
  • Ensuite cuis copiez le fichier shellx64.efi
sudo cp /usr/share/efi-shell-x64/shellx64.efi /boot/shellx64.efi
  • Ensuite créez le fichier d’entrée windows :
sudo nano /boot/efi/loader/entries/windows.conf
  • Ajoutez le contenu suivant :
title Windows
efi /shellx64.efi
options -nointerrupt -nomap -noversion HD0b:EFI\Microsoft\Boot\Bootmgfw.efi
  • Vous devez modifier le FS ALIAS HD0b correspond à celui de votre partition EFI chez vous. Pour l’obtenir, il faut booter sur le Shell EFI et utilisez la commande map :
Obtenir les FS Alias avec la commande map dans un Shell UEFI

Vérifier l’état du gestionnaire de démarrage

Afficher l’état du gestionnaire de démarrage :

sudo bootctl status
Afficher configuration de démarrage UEFI sur Linux et avec booctl

Je rappelle qu’il existe aussi cette commande pour afficher les bootloader et configuration de démarrage :

efibootmgr

Testez le démarrage de votre Linux.
Voici un exemple de menu de démarrage systemd-boot :

Supprimer GRUB

Enfin, si tout fonctionne, vous pouvez supprimer GRUB de votre système, utilisez les commandes suivantes :

sudo apt purge --allow-remove-essential grub2-common grub-pc-bin grub-pc grub-gfxpayload-lists grub-efi-amd64-bin grub-efi-amd64-signed grub-common os-prober shim-signed
sudo apt-get autoremove --purge
sudo rm -rf /boot/grub/
sudo rm -rf /boot/efi/EFI/ubuntu

Voir aussi ce tutoriel : https://blobfolio.com/2018/replace-grub2-with-systemd-boot-on-ubuntu-18-04

Comment mettre à jour systemd-boot pour un nouveau kernel

Là aussi dans Ubuntu, le script de mise à jour du noyau Linux est installé.
Donc vous n’avez rien à faire, lorsqu’un nouveau kernel est installé, systemd-boot sera automatiquement mis à jour.

Au cas où, voici le script à ajouter :

  • Créez le fichier suivant /etc/kernel/postinst.d/zz-update-systemd-boot avec le contenu suivant :
#!/bin/sh
set -e
test -x /usr/bin/bootctl || exit 0
bootctl is-installed --quiet || exit 0
echo "Installing kernel version $1 in systemd-boot..."
kernel-install add "$1" "$2"
  • Donnez les bonnes permissions avec les commandes chown et chmod :
sudo chown root: /etc/kernel/postinst.d/zz-update-systemd-boot
sudo chmod 0755 /etc/kernel/postinst.d/zz-update-systemd-boot
  • Enfin mettez à jour la configuration :
cd /etc/kernel/postrm.d/ && ln -s ../postinst.d/zz-update-systemd-boot zz-update-systemd-boot
[ -d "/etc/initramfs/post-update.d" ] || mkdir -p /etc/initramfs/post-update.d
cd /etc/initramfs/post-update.d/ && ln -s ../../kernel/postinst.d/zz-update-systemd-boot zz-update-systemd-boot

Mettre à jour systemd-boot

Pour mettre à jour de systemd-boot, utilisez la commande suivante :

bootctl update

Cela met à jour toutes les versions installées de systemd-boot, si la version disponible est plus récente que la version installée dans la partition système EFI. Cela inclut également le chargeur EFI par défaut/de secours dans ESP/EFI/BOOT/BOOT*.EFI. Le chargeur de démarrage est alors ajouté à la fin de la liste des chargeurs de démarrage du microprogramme s’il est manquant.

Comment désinstaller systemd-boot

Utilisez la commande suivante pour supprimer systemd-boot de votre Linux :

bootctl remove

Cela supprime systemd-boot de la partition EFI.

Si vous avez supprimé GRUB, vous pouvez le réinstaller comme ceci :

sudo su
apt-get install --reinstall grub
grub-install /dev/sda
update-grub

L’article Comment installer Systemd-boot sur Linux est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires