Bien dépanner Linux grâce aux Magic System Request Key Hack

20 Jul. 2007
Auteur : Logicien
Responsable : Logicien
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Les Linux Magic System Request Key Hack sont des raccourcis clavier que seul le noyau Linux sait interpréter pour fin de dépannage. Ce sont trois touches pressées simultanément dont les deux premières sont Atl+Imprécr ou Alt+PrintScreen.Quand les périphériques d'entrées clavier et souris ne répondent plus et que l'ordinateur semble gelé, ces raccourcis peuvent vous dépanner. La cause du problème peut ne provenir que d'une ou quelques applications récalcitrantes, alors que le noyau Linux répond en arrière plan.

Tout d'abord, il convient de synchroniser le cache des disques durs avec le raccourci Atl+Imprécr+s. Ensuite, le système peut n'être gelé qu'à partir d'un terminal virtuel, dit en mode caractères ou texte, ou graphique s'il sert à X et ses applications. Le raccourci Atl+Imprécr+k va tuer toutes les applications qui s'exécutent dans ce terminal. Si le gel persiste encore, le raccourci Atl+Imprécr+e va demander à toutes les applications de se terminer sauf Init alors que Atl+Imprécr-i va plutôt toutes les tuer sauf Init. Les services et démons sont dorénavant tous arrêtés. Ces trois raccourcis devraient chacun vous ramener à une invite de connexion texte. Si le gel persiste toujours, je pense qu'il est temps de remonter les systèmes de fichiers en lectures seules par Atl+Imprécr+u. Vous pouvez tenter de redémarrer normalement grâce à Ctrl+Alt+ Suppr, sinon Atl+Imprécr+b. Un résumé des ces raccourcis peut être obtenu avec Atl+Imprécr-d. Vous pouvez grâce à ces raccourcis vous éviter plusieurs redémarrages et arrêts brutaux qui utilisent comme raccourcis le bouton, le câble et la pile d'alimentation.

À noter que presser le bouton d'alimentation peut initier un arrêt normal de la machine si l'événement est géré par l'ACPI et que le démon acpid est activé. Celui-ci intercepte alors l'évenement et remplace la coupure automatique de courant par un arrêt normal de la machine. Tiré de /usr/src/linux/Documentation/sysrq.txt :

*  What are the 'command' keys?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'b'     - Will immediately reboot the system without syncing or unmounting
          your disks.

'c'	- Will perform a kexec reboot in order to take a crashdump.

'd'	- Shows all locks that are held.

'e'     - Send a SIGTERM to all processes, except for init.

'f'	- Will call oom_kill to kill a memory hog process.

'g'	- Used by kgdb on ppc and sh platforms.

'h'     - Will display help (actually any other key than those listed
          above will display help. but 'h' is easy to remember :-)

'i'     - Send a SIGKILL to all processes, except for init.

'k'     - Secure Access Key (SAK) Kills all programs on the current virtual
          console. NOTE: See important comments below in SAK section.

'm'     - Will dump current memory info to your console.

'n'	- Used to make RT tasks nice-able

'o'     - Will shut your system off (if configured and supported).

'p'     - Will dump the current registers and flags to your console.

'q'     - Will dump a list of all running timers.

'r'     - Turns off keyboard raw mode and sets it to XLATE.

's'     - Will attempt to sync all mounted filesystems.

't'     - Will dump a list of current tasks and their information to your
          console.

'u'     - Will attempt to remount all mounted filesystems read-only.

'v'	- Dumps Voyager SMP processor info to your console.

'w'	- Dumps tasks that are in uninterruptable (blocked) state.

'x'	- Used by xmon interface on ppc/powerpc platforms.

'0'-'9' - Sets the console log level, controlling which kernel messages
          will be printed to your console. ('0', for example would make
          it so that only emergency messages like PANICs or OOPSes would
          make it to your console.)