Redémarrages rapides avec « kexec »

« kexec » Permet de charger un noyau Linux depuis un système en fonctionnement (redémarrage à chaud) évitant ainsi toute la phase de chargement du BIOS, de test de mémoire, de détection des disques/RAIDs, etc, et de GRUB. Sur des serveurs de grosses capacités (mémoire, disques, etc), et même sur certain ordinateurs de bureau ou portables, le temps de redémarrage s’en trouve considérablement raccourci.

Installation

« kexec » est fournis par le paquet « kexec-tools », disponible sur la plupart des distributions Linux, qui s’installe via votre gestionnaire de paquets préféré :

15:01:42 cixi ~ # apt-get install kexec-tools
...

Sous les dérivés de Red Hat, un « yum install kexec-tools » ce chargera de l’installation du paquet tous comme « emerge -av kexec-tools » le fera sous Gentoo Linux.

Utilisation

Un redémarrage via « kexec » se décompose en 2 phases :

  • chargement du noyau en spécifiant les paramètres nécessaires ;
  • exécution du redémarrage.

Chargement du noyau

Dans cette phase préparatoire, son spécifiés à « kexec », le noyau à charger (option « -l »), ainsi que ses options (option « —append= » ou « —command-line= ») et l’initrd à appliquer (option « —initrd= » ou « —ramdisk= »).

20:43:32 cixi ~ # kexec -l /boot/vmlinuz-3.0.0-1-686-pae --append="$( cat /proc/cmdline ) panic=10" --initrd=/boot/initrd.img-3.0.0-1-686-pae
20:44:13 cixi ~ #

Note : Pour utiliser les mêmes options de chargement du noyau que celles appliquées sur le noyau courant, remplacez « —append= » (ou « —command-line= ») par « —reuse-cmdline » qui équivaut à « —append=$( cat /proc/cmdline ) ».

Le redémarrage

L’option « -e » (pour « execute ») lance la séquence de redémarrage.

21:47:24 cixi ~ # kexec -e

Spécificités Debian like (Debian, Ubuntu, etc)

Pour les utilisateurs de Debian, Ubuntu, etc, « kexec » ce substitue au « reboot » classique de la machine dès son installation. Par défaut, un « reboot » charge, à chaud, le noyau « /vmlinuz » avec les options courantes (récupérées dans « /proc/cmdline ») et l’initrd « /initrd.img ».

Ces paramètres peuvent être modifiés dans le fichier « /etc/default/kexec » :

11:28:43 fhh@cixi ~ $ cat /etc/default/kexec 
...
# Utilisation de kexec pour le redémarrage ? true/false
LOAD_KEXEC=true
 
# Noyau par défaut à charger :
KERNEL_IMAGE="/vmlinuz"
# initrd à charger par défaut :
INITRD="/initrd.img"
 
# Options de démarrage du noyau. Si vide, récupère les options
# de /proc/cmdline :
APPEND=""
# ex : APPEND="$( cat /proc/cmdline ) panic=10"

Une fois « kexec-tools » installé sur votre système vous pouvez effectuer un redémarrage classique via « coldreboot » :

11:47:06 cixi ~ # coldreboot

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *