Redémarrer rapidement Gentoo avec kexec-tools
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.
Cet article a été testé avec OpenRC.
Dans le noyau, il faut s'assurer que la fonctionnalité est activée :
Pour installer kexec, on installe le paquet sys-apps/kexec-tools tout simplement
Si le noyau est compressé en LZMA, vérifier que le USE FLAG lzma est défini.
Au besoin :
Maintenant que kexec-tools est installé, il faut le configurer.
Pour l'activer, on démarre le service kexec :
On peut aussi utiliser la commande suivante :
Et si on utilise un initrd :
Pour redémarrer avec un nouveau kernel, il faut bien penser à utiliser le nouveau kernel.
Voici un exemple avec un 5.4.168-gentoo-adrien 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 :
Voici en image le résultat, on voit que le nouveau noyau est rechargé (Starting new kernel) et qu'on est pas passé par la phase de BIOS :
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.
Cet article a été testé avec OpenRC.
Prérequis
Dans le noyau, il faut s'assurer que la fonctionnalité est activée :
Code TEXT :
Processor type and features ---> [*] kexec system call
Installation
Pour installer kexec, on installe le paquet sys-apps/kexec-tools tout simplement
Code BASH :
emerge -avq sys-apps/kexec-tools
Si le noyau est compressé en LZMA, vérifier que le USE FLAG lzma est défini.
Au besoin :
Code BASH :
echo "sys-apps/kexec-tools lzma" >> /etc/portage/package.use/custom
Configuration
Maintenant que kexec-tools est installé, il faut le configurer.
Pour l'activer, on démarre le service kexec :
Code BASH :
/etc/init.d/kexec start
On peut aussi utiliser la commande suivante :
Code BASH :
kexec -l /boot/vmlinuz-$(uname -r) --reuse-cmdline
Et si on utilise un initrd :
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 5.4.168-gentoo-adrien nouvellement installé au moment de la rédaction de cet article :
Code BASH :
kexec -l /boot/vmlinuz-5.4.168-gentoo-adrien --initrd=/boot/initramfs-5.4.168-gentoo-adrien.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
Utilisation
Pour redémarrer sur ce noyau précédemment chargé, on exécutera :
Code BASH :
kexec -e
Voici en image le résultat, on voit que le nouveau noyau est rechargé (Starting new kernel) et qu'on est pas passé par la phase de BIOS :