Utiliser Fedora, Red Hat et dérivées

Redémarrer rapidement avec kexec-tools (Fedora, Red Hat et dérivées)

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction





Pour une raison X ou Y, vous voulez redémarrer votre système, mais vous y trouvez trop long ?

Kexec tools est la pour vous :cbon:



En effet, à la fin de l’arrêt du système, le noyau est immédiatement relancé.

On saute l'étape du BIOS et du GRUB.





Installation





Si cela n'est pas encore fait, installer le paquet kexec-tools :



Code BASH :
yum 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 fabriquer notre noyau kexec-tools :



Code BASH :
kexec -l /boot/vmlinuz-$kernel --initrd=/boot/initramfs-$kernel.img --reuse-cmdline




$kernel correspond au noyau utilisé. Pour plus d'infos sur les noms de fichiers :



Code BASH :
ls /boot




Il faut exécuter cette commande après chaque nouvelle installation de noyau.





Pour plus de simplicité, un script !





Avouons le, taper cette commande, il faut s'en rappeler.





Post-installation de kernel







Je vous propose ce script à exécuter après une install de nouvau kernel :



Code BASH :
#! /bin/bash
kernel=$(rpm -qa --last | grep kernel-3 | head -n1 | cut -d" " -f1 | sed -e 's/kernel-//')
if [ $UID -ne 0 ]
then
    echo "Il est nécessaire de lancer le script en root !!!"
else
    echo "La commande suivante sera lancée pour le noyau $kernel :"
    echo "kexec -l /boot/vmlinuz-$kernel --initrd=/boot/initramfs-$kernel.img --reuse-cmdline"
    read -p "Appuyer sur entrée pour lancer la commande kexec-tools ? (Ctrl+C pour annuler)"
    kexec -l /boot/vmlinuz-$kernel --initrd=/boot/initramfs-$kernel.img --reuse-cmdline
fi






Exécuter kexec au démarrage





J'ai remarqué qu'après un redémarrage (avec ou sans kexec) il faut relancer la commande.

Voici la commande à lancer au démarrage :



Code BASH :
kexec -l /boot/vmlinuz-$(uname -r) --initrd=/boot/initramfs-$(uname -r).img --reuse-cmdline






Redémarrer grâce à kexec-tools





Par défaut, la commande



Code BASH :
reboot




a été substituée par celle appelant le noyau créé par kexec-tools.



En effet, si on fait un reboot après une mise à jour du noyau, ce même noyau sera relancé.



Si on veut redémarrer classiquement le système en repassant par le BIOS et GRUB, utiliser :



Code BASH :
coldreboot




Et voila :magic: