Redémarrer rapidement Gentoo ou CalculateLinux avec kexec-tools

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, ce qui pour un serveur physique évite la batterie de tests effectuée à l'allumage.

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) --reuse-cmdline


Il se peut que vous ayez le même message d'erreur que moi si /boot n'est pas sur une partition séparée. Cela n'empêche pas le fonctionnement de l'outil.

Pour démarrer kexec automatiquement au démarrage, on active le service (Attention, si MàJ du kernel on redémarre sur l'actuel !) :

Code BASH :
rc-update add kexec boot




Utilisation



Pour redémarrer et utiliser kexec (s'il est lancé), il faut simplement utiliser la commande reboot ou le redémarrage proposé par l'éventuelle interface graphique lancée :

Code BASH :
reboot

ou
Code BASH :
kexec -e


Pour ne pas redémarrer avec kexec (procéder à un redémarrage "classique", il suffit de décharger le noyau :

Code BASH :
kexec -u


Ou si le service a été lancé, le stopper et redémarrer :

Code BASH :
/etc/init.d/kexec stop


Code BASH :
reboot


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 :

Cette page a été vue 4115 fois