mercredi 17 septembre 2008

Magic Keys

http://www.commentcamarche.net/faq/sujet-6459-magic-keys

Introduction


Il arrive parfois que le système se gèle et ne réponde plus du tout à aucune sollicitation (clavier/souris), et la seule solution qui vient à l'esprit (réflexe Windowsien sûrement), c'est de presser la touche "reset".

Mais comme nous allons le voir, il existe tout une série de combinaison de touches qui permettent (la plupart du temps) d'arrêter notre système avec un minimum de risque, et à la limite, de restreindre la perte de données. C'est ce qu'on appelle les "Magic Keys".

Pré-requis


Bien entendu pour pouvoir mettre en pratique ces combinaisons magiques, il faut que cette option soit compilée dans le noyau. Commençons donc par vérifier cette condition.
Ouvrez un terminal et taper la commande suivante :
grep "CONFIG_MAGIC_SYSRQ" /boot/config-$(uname -r)

La sortie doit ressembler à :
CONFIG_MAGIC_SYSRQ=y

Vous l'avez deviné, "y" pour "yes" (oui en français ;-)) )

Mais ce n'est pas tout. Si dans une distribution comme Mandriva l'option est activée par défaut, ce n'est pas le cas de toutes les autres. Il faut donc vérifier que l'option est bien activée. Pour ce faire, taper dans un terminal :
cat /proc/sys/kernel/sysrq

qui doit retourner la valeur "1".
Dans le cas contraire (retour de la valeur "0"), procéder comme suit pour l'activer (en tant que "root") :
echo "1" > /proc/sys/kernel/sysrq
On peut aussi utiliser la commande sysctl au lieu d'echo
sysctl -w kernel.sysrq="1"
Il y a pourtant un inconvénient.
La modification effectuée avec echo ou sysctl sera perdu au redémarrage du système.
Pour que la configuration soit permanente il faut éditer le fichier /etc/sysctl.conf soit en utilisant un editeur de texte et ajouter la ligne kernel.sysrq=1 soit en utilisant la commande
echo 'kernel.sysrq=1' >> /etc/sysctl.conf

Avant d'en arriver là


Lorsque le système se gèle (on supposera qu'on est dans une session X) et avant de mettre en oeuvre l'emploi des touches magiques, si toutefois votre clavier est encore actif, essayez d'abord de :
  • Tuer le serveur X grâce à la combinaison de touches "CTRL + ALT + BACKSPACE"
  • Switcher sur une autre console "CTRL + ALT + Fn" (n=1-6)
    • Essayer de tuer le serveur X (en tant que root) :
      • kill -15 $(pidof X)
      • kill -9 $(pidof X)
      • Si un réseau local existe, essayer de vous connecter par "ssh" depuis une autre machine et de reprendre la main sur votre poste de travail.


Si toutes ces tentatives ont échoué, alors il est temps de faire appel aux "Magic Keys".

Les Magic Keys


Les Magic Keys (ou touches SysReq) requièrent l'emploi d'une combinaison de trois touches à la fois.
La touche "ALT" (à gauche de la barre d'espacement, à ne pas confondre avec la touche "ALT Gr"), la touche "SysRq" (System Request), cette touche n'est rien d'autre que la touche appelée et désignée par "Impr écran syst" (en haut à droite des touches F1 à F12), et enfin d'une troisième touche parmi les lettres suivantes :
  • R : Raw Met le clavier en mode "raw" (brut). Essayez d'accéder à nouveau à votre clavier.
  • E : tErm SIGTERM. Envoie un signal de terminaison à tous les processus, sauf à init.
  • I : kIll SIGKILL. Envoie un signal de fin à tous les processus, sauf à init.
  • S : Sync Synchronisation du disque. Essaie d'écrire toutes les données non sauvegardées.
  • U : Umount Remonte tous les systèmes de fichiers en mode lecture seule. Empêche une vérification du système de fichiers au redémarrage
  • B : reBoot Redémarre le système. Plus propre que l'appui sur "reset".
  • O : Out Arrête le système.
  • L : kilL SIGKILL. Envoie un signal de fin à tous les processus, y compris à init.
  • K : Key Envoie un signal de fin à tous les processus de la console virtuelle courante.
  • P : Print Affiche le contenu des registres et des drapeaux (flags) dans la console.
  • M : Memory Affiche le contenu de la mémoire dans la console.
  • T : Task Affiche le contenu des tâches en cours d'exécution et des informations qui les concernent.
  • 0-9 : Number Paramètre le niveau de la console de log.
  • H : Help Affiche une aide sur les codes touches.


Il faut bien comprendre que l'emploi des Magic Keys constitue une séquence, que ces combinaisons de touches doivent être employées dans un ordre bien précis :

Raw, tErm, kIll, Sync, Umount, reBoot (REISUB)
  • Passage du clavier en mode "brut"
    • Raw
  • Synchronisation des disques
    • tErm
  • Envoie d'un signal d'arrêt aux processus
    • kIll
  • Montage des systèmes de fichiers en lecture seule
    • Sync
  • Envoie d'un signal de terminaison aux processus
    • Umount
  • Reboot du système
    • reBoot


Note : Voici une phrase mnémotechnique pour se rappeler l'ordre de la séquence (en anglais) : "Raising Elephants Is So Utterly Boring"

Aucun commentaire: