Redémarrer rapidement avec kexec-tools (Fedora, Red Hat et dérivées)
Table des matières
kexec est une fonctionnalité du noyau Linux qui permet de charger et d'exécuter un noyau Linux (le même ou une version différente) sans avoir besoin de redémarrer le système.
Ainsi, au lieu de passer par le processus de redémarrage classique, kexec permet d'éviter le cycle d'amorçage BIOS/UEFI, et chargeur d'amorçage GRUB ce qui accélère le processus.
Si cela n'est pas encore fait, installer le paquet kexec-tools :
Et voila
Par défaut, quand vous redémarrerez la machine avec la commande
kexec-tools n'entrera pas en action.
Il faut exécuter la commande suivante (en root) pour charger le kernel en cours à nouveau :
Pour redémarrer avec un nouveau kernel, il faut bien penser à utiliser le nouveau kernel.
Voici un exemple avec un 3.10.0-327.28.3.el7.x86_64 nouvellement installé au moment de la rédaction de cet article :
Si on s'est trompé et qu'on souhaite décharger le noyau pour en charger un nouveau, on pourra utiliser cette commande :
Pour redémarrer sur ce noyau précédemment chargé, on exécutera :
Et voila, le système redémarre sans repasser par le BIOS/UEFI.
Sur Fedora 39 en mode station de travail, il m'arrive que certains périphériques ne fonctionnent pas correctement.
Sur le PC portable : Je n'ai plus le Wi-Fi
Sur le PC fixe : Je n'ai plus de son
Deux alternatives sont possibles :
La première est de déchanger le module du périphérique concerné avant le reboot via kexec :
La deuxième est d'invoquer le reboot via la cible kexec de systemd :
Introduction
kexec est une fonctionnalité du noyau Linux qui permet de charger et d'exécuter un noyau Linux (le même ou une version différente) sans avoir besoin de redémarrer le système.
Ainsi, au lieu de passer par le processus de redémarrage classique, kexec permet d'éviter le cycle d'amorçage BIOS/UEFI, et chargeur d'amorçage GRUB ce qui accélère le processus.
Installation
Si cela n'est pas encore fait, installer le paquet kexec-tools :
Code BASH :
dnf install kexec-tools
Et voila
Paramétrer le noyau
Par défaut, quand vous redémarrerez la machine avec la commande
Code BASH :
reboot
kexec-tools n'entrera pas en action.
Il faut exécuter la commande suivante (en root) pour charger le kernel en cours à nouveau :
Code BASH :
kexec -l /boot/vmlinuz-$(uname -r) --initrd=/boot/initramfs-$(uname -r).img --reuse-cmdline
Pour redémarrer avec un nouveau kernel, il faut bien penser à utiliser le nouveau kernel.
Voici un exemple avec un 3.10.0-327.28.3.el7.x86_64 nouvellement installé au moment de la rédaction de cet article :
Code BASH :
kexec -l /boot/vmlinuz-3.10.0-327.28.3.el7.x86_64 --initrd=/boot/initramfs-3.10.0-327.28.3.el7.x86_64.img --reuse-cmdline
Si on s'est trompé et qu'on souhaite décharger le noyau pour en charger un nouveau, on pourra utiliser cette commande :
Code BASH :
kexec -u
Redémarrer grâce à kexec-tools
Pour redémarrer sur ce noyau précédemment chargé, on exécutera :
Code BASH :
kexec -e
Et voila, le système redémarre sans repasser par le BIOS/UEFI.
Troubleshooting
Sur Fedora 39 en mode station de travail, il m'arrive que certains périphériques ne fonctionnent pas correctement.
Sur le PC portable : Je n'ai plus le Wi-Fi
Sur le PC fixe : Je n'ai plus de son
Deux alternatives sont possibles :
La première est de déchanger le module du périphérique concerné avant le reboot via kexec :
Code BASH :
rmmod iwlwifi
kexec -e
La deuxième est d'invoquer le reboot via la cible kexec de systemd :
Code BASH :
systemctl kexec