====== Les touches magiques ======
* Objet : En cas de plantage du serveur X, manœuvres pour redémarrer proprement
* Niveau requis :{{tag>débutant avisé}}
* Commentaires : //La machine semble ne plus répondre.//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
* Suivi : {{tag>à-tester}}
* Création par [[user> martinux_qc]] le 28/12/2012
* Testé par [[user> èfpé]] le 15/08/2019
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=11811|C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
Votre système est planté hélas, complètement gelé. Avant de vous résigner à redémarrer à la sauvage en appuyant sur le bouton //reset// ou en sectionnant le câble d'alimentation avec la pince-monseigneur de votre grand-mère, il vous est possible de tenter une dernière manœuvre.
Les //**magic SysRq key**// ou **touches magiques** sont des combinaisons de touches type Alt+SysRq+Touche permettant d'envoyer des commandes de bas niveau directement au noyau.
Pour que vous puissiez utiliser les touches magiques, il faut que cette fonctionnalité soit activée dans le noyau.((Il s'agit des symboles de configuration "CONFIG_MAGIC_SYSRQ" et "CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE", dans la section "Kernel hacking".)) Ce qui est le cas par défaut sur la plupart des distributions.
Pour des raisons de sécurité, Debian 6.0 Squeeze (noyau 2.6.32) a introduit certaines restrictions d'utilisation des touches SysRq : les touches e et i, entre autres, sont //désactivées// par défaut.((Voir, par exemple : "[[https://www.debian.org/doc/manuals/securing-debian-manual/restrict-sysrq.fr.html|4.9 Restriction d'utilisation des touches SysRq magiques]]", "[[https://superuser.com/questions/375816/how-to-check-which-sysrq-functions-are-enabled|How to check which SysRq functions are enabled?]]" et, //last but not least//, "[[https://salsa.debian.org/kernel-team/linux/commit/a878e850af75d6da304de4f3efa85dab366f43cf|Restrict access to sensitive SysRq keys by default]]", le //commit// qui énerva l'Eyjafjöll en 2010. m()) \\ Votre petite escapade en Islande (cf. [[#tableau-recapitulatif|infra]]) semble un peu compromise, et vous visiterez l'Eyjafjallajökull une autre fois (sauf si vous y tenez absolument bien sûr... consultez la doc et le [[doc:systeme:man|man]] ''sysctl'').
===== Touche k : tuer tous les processus / programmes =====
La combinaison Alt+ImpEc+k tue tous les processus de la « console virtuelle active ». Dans une console en mode texte cela permet de sécuriser le login (sa__k__). Dans une session graphique, cela //peut//, ou //peut ne pas//, provoquer le redémarrage du serveur X.
Vous pouvez réactiver le redémarrage du serveur X par la combinaison C-A+← Retour Arrière. \\
Il suffit de lancer la commande :
dpkg-reconfigure keyboard-configuration
et de passer les 5 premiers choix en appuyant sur Entrée.
Si cette combinaison ne fonctionne pas alors qu'elle a été activée, il paraît légitime d'essayer de forcer un redémarrage du serveur X via les touches magiques.
===== Touche s : synchroniser les disques =====
Lorsque l'on travaille sur sa machine, les données ne sont pas modifiées systématiquement et immédiatement sur le disque mais en cache. L'appel système ''sync'' permet de synchroniser les modifications apportées sur les disques et donc vide les caches.
La combinaison suivante provoque cette synchronisation (__s__ync) : \\
Alt+ImpEc+s
===== Touche u : remonter les disques en lecture seule =====
Un système de fichiers en lecture/écriture n'ayant pas été démonté avant extinction de la machine n'est pas « propre » et implique une vérification « fsck » au redémarrage. Le démontage (__u__nmount) et remontage en lecture seule permet d'éviter cela.
La combinaison suivante provoque le remontage des systèmes de fichiers en lecture seule : \\
Alt+ImpEc+u
Attention : afin de poursuivre proprement, exécutez les deux combinaisons précédentes (Alt+ImpEc+s et Alt+ImpEc+u) l'une après l'autre.
===== Touche b : redémarrer le système =====
La combinaison suivante provoque le redémarrage du PC (re__b__oot) : \\
Alt+ImpEc+b
===== Touche o : arrêter le système =====
La combinaison suivante provoque l'arrêt du PC (power__o__ff) : \\
Alt+ImpEc+o
===== Tableau récapitulatif =====
Pour redémarrer un système Linux qui ne répond plus avec les touches magiques, il faut utiliser la séquence de touches suivante :
^touche ^nom ^action ^
|r |unraw |récupérer le contrôle du clavier X |
|e |terminate-all-tasks |envoyer SIGTERM à tous les processus, pour leur permettre de s'arrêter proprement |
|i |kill-all-tasks |envoyer SIGKILL à tous les processus, pour les forcer à s'arrêter immédiatement |
|s |sync |synchroniser les disques, écrire le contenu du tampon sur le disque |
|u |unmount |remonter tous les systèmes de fichiers en lecture seule, pour ne pas devoir lancer fsck au redémarrage |
|b |reboot |redémarrer le système |
Pour ce faire, on peut utiliser la phrase mnémotechnique suivante : \\
« **R**evenir **E**n **I**slande **S**ur **U**n **B**ateau ». ;-)
Il faut commencer par maintenir //simultanément// les touches Alt et ImpEc / SystRq sur le clavier, puis appuyer les touches l'une après l'autre dans l'ordre donné par la phrase mnémotechnique, __en attendant au moins deux secondes__ entre chacune d'elles pour permettre le démontage correct des [[doc:systeme:partition|systèmes de fichiers]]. On évite ainsi de risquer de corrompre des données et de devoir exécuter [[doc:systeme:fsck]] au redémarrage. \\
De plus, les processus ont ainsi du temps pour enregistrer des sauvegardes d'urgence le cas échéant.
Comme écrit précédemment (cf. [[#introduction|supra]]), la séquence Alt+ImpEc+e, Alt+ImpEc+i, est illusoire sous Debian. Vous pouvez le constater dans une [[doc:systeme:console|console]] en mode texte ou via [[doc:systeme:dmesg|dmesg]]. \\ Et à vouloir //maintenir// la touche ImpEc (Alt suffit !) tout au long de cet exercice de gymnastique digitale vous allez finir par vous déboîter l'auriculaire de la main dextre, avouez que c'est ballot.
===== Remerciements =====
//Merci à //**benjilepton**//, //**captnfab**// et //**Thom1**// qui se sont rassemblés sur [[asso:salon-irc-df|IRC]] pour proposer ce sauvetage avec un serveur X bloqué.//
===== Liens =====
* https://fr.wikipedia.org/wiki/Magic_SysRq_key
* https://www.kernel.org/doc/html/v4.19/admin-guide/sysrq.html
//De //**Haricophile**// le tuteur fou de l'irc df !//