65 votes

Alt + sysrq + REISUB ne redémarre pas mon ordinateur portable

De temps en temps, mon ordinateur portable se bloquait, alors j'ai utilisé la combinaison magique de touches Alt + SysRq + REISUB pour effectuer un redémarrage sécurisé. Cependant, cela ne semble pas fonctionner pour moi car lorsque j'appuie sur la touche B pour compléter la commande magique, il affiche simplement "réinitialisation..." et ne fait rien.

Toutes les autres touches semblent fonctionner normalement, car cela réinitialise la disposition du clavier, tue toutes les tâches, etc., mais il ne semble pas se terminer par un redémarrage.

J'étais sous l'impression que mon ordinateur portable devrait redémarrer après avoir appuyé sur toutes les touches magiques dans l'ordre de REISUB.

61voto

Corin Blaikie Points 6223

L'Alt+SysRq a été désactivé pour corriger un bug. La désactivation de Magic-SysRq était considérée comme un bug en soi et a depuis été réactivée (#1025467). S'il est toujours désactivé pour vous, vous pouvez le réactiver :

Ubuntu 12.04 et versions antérieures

Modifiez le fichier /etc/sysctl.conf pour inclure la ligne

kernel.sysrq=1

Ubuntu 12.10 et versions ultérieures

À partir d'Ubuntu 12.10, un contrôle plus précis des fonctionnalités Magic-SysRq activées est possible. Il suffit de modifier le fichier /etc/sysctl.d/10-magic-sysrq.conf.

Le fichier est bien documenté et vous dit exactement comment activer quelles fonctionnalités. La valeur par défaut actuelle a été choisie pour des raisons de sécurité et ne devrait être modifiée que si vous savez pourquoi vous avez besoin de le faire (pour les implications en matière de sécurité, voir #194676).

33voto

RN. Points 559

Les claviers posent problème ici!

  • Certains n'aiment pas appuyer sur les 4 touches en même temps et le clavier cesse de fonctionner jusqu'à ce que vous en relâchiez certaines.
  • Tous les claviers passent en disposition QWERTY lorsque vous envoyez le signal SysRq. Cela rend difficile de trouver les bonnes commandes sur les claviers avec une autre disposition. Wikipedia: Commandes SysRq montre un tableau pour trouver celles adaptées aux dispositions alternatives courantes.
  • Certains ont SysRq sur une touche différente de PrtSc à maintenir avec une touche de fonction. Sur mon ordinateur portable, c'est Fn+End. Maintenir Alt + PrtSc ne fonctionne que si un processus système (gestionnaire de fenêtres?) le traduit pour moi. En cas de plantage total, seul le véritable SysRq fonctionne!
  • Certains déclenchent la touche SysRq une fois que vous maintenez le bon Alt + PrtSc (matériellement). La touche Alt gauche ne fonctionnera pas dans ce cas, pour la même raison que ci-dessus. C'est ainsi que fonctionne mon clavier USB.
  • Astuce: essayez d'appuyer sur Shift + Alt + SysRq pour voir une sortie 'aide' sur un terminal virtuel. C'est utile pour vérifier si ça fonctionne sans causer de dommages:

    SysRq : AIDE : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems(J) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount show-blocked-tasks(W) dump-ftrace-buffer(Z)

Dans tous les cas que j'ai rencontrés, cela n'a pas fonctionné, changer de clavier a parfaitement fonctionné et a montré qu'il n'y avait aucun problème avec les paramètres du noyau.

19voto

geezanansa Points 1490

ATTRIBUTIONS :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key qui était basé sur l'œuvre originale de
Crédits
Écrit par Mydraal
Mis à jour par Adam Sulmicki
Mis à jour par Jeremy M. Dolan 2001/01/28 10:15:59
Ajouté par Crutcher Dunnavant

https://askubuntu.com/a/11194/102029 mneiss a fourni des liens pour LaunchPad.

Contenu

Qu'est-ce que sysrq ?
Pourquoi RESIUB(O) ne fonctionne-t-il pas ?

1 Comment faire pour que sysrq se comporte comme je le souhaite ?
1.1 Quelle est la clé magique de SysRq ?
1.2 Comment activer la clé magique SysRq ?
1.3 Comment utiliser la clé magique SysRq ?
1.4 Que sont les touches de commande ?
1.5 Ok, alors à quoi peuvent-ils me servir ?

1.6 Dépannage

1.6.1 Suspension avant l'exécution des initscripts
1.6.2 Parfois, SysRq semble se bloquer après son utilisation, que puis-je faire ?
1.6.3 J'ai appuyé sur SysRq, mais rien ne semble se passer, qu'est-ce qui ne va pas ?
1.6.4 Je veux ajouter des événements clés SysRQ à un module, comment cela fonctionne-t-il ?
1.6.5 Conclusion
1.6.6 APPENDICE
Note.
Vous trouverez peut-être qu'utiliser Ctrl + F pour utiliser la table des matières de manière utile.

Qu'est-ce que SysRq ?

Une méthode commune bien connue et utilisée pour retrouver l'usage de la machine après son gel ou son verrouillage, tout en limitant le risque de corruption du disque conduisant à des dommages au fichier système ou à la perte de données, consiste à utiliser
Alt + SysRq + r et ensuite s et ensuite e et ensuite i et ensuite u et ensuite b et/ou si nécessaire ( o )

Cela n'a pas fonctionné comme prévu pour de nombreuses personnes (c'est-à-dire moi-même et James) dans toutes les versions, de >= 8.04LTS à la version 13.04 actuelle.

Pourquoi RESIUB(O) ne fonctionne-t-il pas ?

Considérez cette description de bogue trouvée à Bug de LaunchPad 194676 :

Description du problème :
Par défaut, SysRq est activé sur les systèmes de bureau Ubuntu, ce qui est inestimable lorsqu'un système s'est bloqué et que vous voulez l'arrêter aussi doucement que possible ou déboguer le problème. Cependant, beaucoup de gens sont surpris de voir que vous pouvez également lui demander de vider le contenu de la mémoire actuelle sur la console (ou dmesg), mais uniquement à partir du clavier.
openSUSE définit un bitmask par défaut de 176 sur son SysRq qui par défaut vous restreint à la synchronisation, au redémarrage et au "remount read-only". Cela empêche les gens d'utiliser sysrq par défaut pour inspecter la mémoire, ce qui semble raisonnable.

Les développeurs d'Ubuntu ont vu la nécessité de faire quelque chose à ce sujet et la meilleure solution, compte tenu des complications possibles de l'observation mentionnée, est d'appliquer le bitmask 176 sysrq par défaut, créant ainsi la nécessité d'une entrée utilisateur pour définir sysrq comme ils le souhaitent. Le bitmask 176 permet seulement S , U , B qui est synchrone, remonter les partitions montées et redémarrer.
La lecture du rapport de bogue complet et des commentaires mettra en évidence certaines options qui peuvent être applicables à votre système.

L'effet cumulé de différents matériels, noyaux, claviers et bitmasks signifie que sysrq se comporte différemment pour différentes personnes.

Une méthode pour obtenir une sortie txt concernant la façon dont votre système utilise sysrq est d'appliquer les commandes sysrq à partir du tty (lorsque le système ne souffre pas de verrous/gels). Cela peut indiquer que sysrq n'a pas été complètement désactivé mais qu'il utilise le bitmask 176.

La recherche de /proc/sys/kernel/sysrq sur un liveDVD 13.04 Desktop amd64 et une installation 13.04 Desktop amd64 confirme que la valeur par défaut est actuellement de laisser sysrq au bitmask 176.

Si sysrq fonctionne pour vous ; il peut être utile de se demander, "Si je n'ai pas changé les paramètres de 10-magic-sysrq alors ; Qui l'a fait ?".

1 Comment faire pour que sysrq se comporte comme je le souhaite ?

Ce qui suit est un copier-coller édité de https://fedoraproject.org/wiki/QA/Sysrq .

1.1 Qu'est-ce que la clé magique SysRq ?

Il s'agit d'une combinaison de touches "magiques" que vous pouvez activer et à laquelle le noyau répondra indépendamment de tout ce qu'il fait d'autre, à moins qu'il ne soit complètement verrouillé.

1.2 Comment activer la clé magique SysRq ?

sysrq est intégré au noyau Ubuntu mais est désactivé au démarrage, par défaut, en utilisant 10-magic-sysrq.conf.

Pour le réactiver au démarrage, vous devez éditer le fichier /etc/sysctl.d/10-magic-sysrq.conf. En décommentant cette ligne, vous activerez toutes les fonctions de sysrq :

#   1 - enable all functions of sysrq

Lors de l'exécution d'un noyau avec SysRq compilé, /proc/sys/kernel/sysrq contrôle les fonctions autorisées à être invoquées via la clé SysRq. Voici la liste des valeurs possibles dans /proc/sys/kernel/sysrq :

0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
    2 - enable control of console logging level
    4 - enable control of keyboard (SAK, unraw)
    8 - enable debugging dumps of processes etc.
    16 - enable sync command
    32 - enable remount read-only
    64 - enable signalling of processes (term, kill, oom-kill)
    128 - allow reboot/poweroff
    176 - allow only sync, reboot and "remount read-only"
    256 - allow nicing of all RT tasks 

Vous pouvez définir la valeur dans le fichier par la commande suivante.

echo "number" >/proc/sys/kernel/sysrq

Donc pour l'activer complètement, il faudrait.

echo "1" > /proc/sys/kernel/sysrq

Ou vous pouvez aussi l'activer en le faisant.

sysctl -w kernel.sysrq=1  

Note.
La valeur de /proc/sys/kernel/sysrq n'influence que l'invocation via un clavier. L'invocation de toute opération via /proc/sysrq-trigger est toujours autorisée (par un utilisateur avec des privilèges d'administrateur - voir ci-dessous).

1.3 Comment utiliser la clé magique SysRq ?

Bureau Ubuntu

Vous appuyez sur la combinaison de touches Alt + SysRq + command key .

N.B.- Consultez les notes de cette section et de la section Dépannage pour connaître les autres paramètres par défaut possibles pour d'autres systèmes et claviers.

Il est possible de définir le caractère de votre choix : Toutes les architectures

Écrire un caractère dans /proc/sysrq-trigger :

echo t > /proc/sysrq-trigger

fixerait le T se comportent comme SysRq
Note.
Certains claviers peuvent ne pas avoir de touche étiquetée SysRq . Le site SysRq est également connue comme la touche Print Screen clé. De plus, certains claviers ne peuvent pas gérer un nombre aussi élevé de touches pressées en même temps. Alt + SysRq - SysRq puis appuyez sur command key puis tout relâcher. Voir l'écriture complète de QA sur laquelle ce guide est basé https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F pour plus d'informations à ce sujet.

1.4 Que sont les touches de commande ?

'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 (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.  

Note.
Voir les commentaires importants ci-dessous dans la section SAK.

'l' - Shows a stack backtrace for all active CPUs.
'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.) 

1,5 Ok, alors à quoi peuvent-ils me servir ?

Un r aw est très pratique lorsque votre serveur X ou un programme svgalib se bloque.

Sa k (Secure Access Key) est utile lorsque vous voulez être sûr qu'il n'y a pas de programme troyen fonctionnant sur la console qui pourrait saisir votre mot de passe lorsque vous essayez de vous connecter. Il tuera tous les programmes sur la console donnée, vous permettant ainsi de vous assurer que l'invite de connexion que vous voyez est réellement celle de init, et non un programme trojan. D'autres le trouvent utile comme (System Attention Key) qui est utile lorsque vous voulez quitter un programme qui ne vous laisse pas changer de console. (Par exemple, X ou un programme svgalib).
Note.
Dans sa forme réelle, il ne s'agit pas d'un véritable SAK comme celui d'un système conforme à la norme c2, et il ne faut pas le prendre pour tel.

Re b oot est bon quand on est incapable de s'arrêter.
Note.
Il est généralement considéré comme une bonne pratique de u monter d'abord

Crashdump peut être utilisé pour déclencher manuellement un c rashdump lorsque le système est suspendu.
Note.
Le noyau doit avoir été construit avec CONFIG_KEXEC activé !

Sync est génial lorsque votre système est bloqué, il vous permet de s ync vos disques et réduira certainement les risques de perte de données et de fscking.
Avertissement
La synchronisation n'a pas eu lieu tant que vous ne voyez pas les messages "OK" et "Done" apparaître à l'écran. (Si le noyau est vraiment en difficulté, il se peut que vous n'obteniez jamais le message "OK" ou "Done".

U mount est fondamentalement utile de la même manière que S ync.

Les niveaux logiques 0 - 9 sont utiles lorsque votre console est inondée de messages du noyau que vous ne voulez pas voir. Sélection de 0 empêchera tous les messages du noyau, sauf les plus urgents, d'atteindre votre console.
Note.
Ils seront toujours enregistrés si syslogd/klogd sont vivants.

T e rm et k i ll sont utiles si vous avez une sorte de processus en fuite que vous ne pouvez pas tuer d'une autre manière, surtout s'il génère d'autres processus.
Note.
En cas de panique du noyau, faites Alt + Sysrq + e では Alt + Sysrq + u では Alt + Sysrq + i et enfin Alt + Sysrq + b

1.6 Dépannage

1.6.1 Accrochage avant l'exécution des initscripts

Si la machine se bloque avant que les initscripts puissent être exécutés, démarrez avec sysrq_always_enabled=1

1.6.2 Parfois, SysRq semble se bloquer après son utilisation, que puis-je faire ?

Taraudage shift , alt y control des deux côtés du clavier, et en frappant à nouveau une séquence sysrq invalide, le problème sera résolu. (c'est-à-dire quelque chose comme alt + sysrq + z ).

Passer à une autre console virtuelle ( Ctrl + Alt + Fn1 - Fn6 ) et puis de nouveau Ctrl + Alt + Fn7 devrait également aider.

1.6.3 Je frappe SysRq mais rien ne semble se passer, qu'est-ce qui ne va pas ?

Il existe des claviers qui envoient des scancodes différents pour SysRq que la valeur prédéfinie de 0x54. Ainsi, si SysRq ne fonctionne pas pour un certain clavier, exécutez showkey -s pour trouver la bonne séquence de scancode. Utilisez ensuite setkeycodes <sequence> 84 pour définir cette séquence à l'habituel SysRq (84 est le code décimal pour 0x54). Il est probablement préférable de mettre cette commande dans un script de démarrage.
Avertissement
Vous sortez showkey en ne tapant rien pendant 10 secondes.

1.6.4 Je veux ajouter SysRq des événements clés à un module, comment cela fonctionne-t-il ?

Afin d'enregistrer une fonction de base avec la table, vous devez d'abord inclure l'en-tête include/linux/sysrq.h cela définira tout ce dont vous avez besoin. Ensuite, vous devez créer une structure sysrq_key_op, et la remplir avec...

  • La fonction de gestion des touches que vous utiliserez.

  • Une chaîne help_msg, qui s'affichera lorsque SysRQ imprimera de l'aide.

  • Une chaîne action_msg, qui sera imprimée juste avant que votre gestionnaire soit appelé. Votre gestionnaire doit se conformer au prototype du fichier 'sysrq.h'.

Après la création de sysrq_key_op, vous pouvez appeler la fonction du noyau register_sysrq_key(int key, struct sysrq_key_op *op_p) ; ceci enregistrera l'opération pointée par 'op_p' à la clé de table 'key', si cet emplacement dans la table est vide. Au moment du déchargement du module, vous devez appeler la fonction unregister_sysrq_key(int key, struct sysrq_key_op *op_p), qui supprimera l'opération pointée par 'op_p' de la clé 'key', si et seulement si elle est actuellement enregistrée dans cet emplacement. C'est dans le cas où le slot a été écrasé depuis que vous l'avez enregistré.

La magie SysRq fonctionne en enregistrant les opérations sur les clés dans une table de consultation des opérations sur les clés, définie dans 'drivers/char/sysrq.c'. Cette table a un certain nombre d'opérations enregistrées au moment de la compilation, mais elle est mutable, et 2 fonctions sont exportées pour l'interface avec elle : register_sysrq_key et unregister_sysrq_key. Bien sûr, ne laissez jamais un pointeur invalide dans la table. Par exemple, lorsque votre module qui a appelé register_sysrq_key() se termine, il doit appeler unregister_sysrq_key() pour nettoyer l'entrée de la table sysrq qu'il a utilisée.
Note.
Les pointeurs nuls dans le tableau sont toujours sûrs.

Si, pour une raison ou une autre, vous ressentez le besoin d'appeler la fonction handle_sysrq à partir d'une fonction appelée par handle_sysrq, vous devez être conscient que vous êtes dans un verrou (vous êtes également dans un gestionnaire d'interruption, ce qui signifie ne pas dormir !

1.6.5 Conclusion

Utilice Alt + SysRq + S et ensuite U et ensuite B pour se synchroniser, essayez de remonter tous les systèmes de fichiers montés, puis redémarrez si nécessaire. Sans rien changer aux fichiers système.
Si Alt + SysRq + B ne redémarre pas le système, il peut être nécessaire d'éditer /etc/sysctl.d/10-magic-sysrq.conf afin de permettre la tentative d'application de Alt + SysRq + B (ou/et O après avoir modifié le bitmask de /proc/sys/kernel/sysrq pour permettre le redémarrage et l'arrêt du système par l'utilisation de sysrq. Vous pouvez le faire par l'une des méthodes décrites ci-dessus.

1.6.6 ANNEXE : Voir aussi - http://ubuntuforums.org/showthread.php?t=617349 y https://www.kernel.org/doc/Documentation/sysrq.txt

Pour ceux qui ont des problèmes de clavier de MacBook d'Apple concernant sysrq voir : https://help.ubuntu.com/community/AppleKeyboard y https://bugs.launchpad.net/mactel-support/+bug/262408

Des informations relativement intéressantes. _Après avoir regardé l'épisode du 17 08 2013 de l'émission de la BBC "Cliquez" et l'article sur la "cyberguerre" a vraiment attiré mon attention. Le programme a également son propre site web Cliquez sur si vous ne pouvez pas regarder le programme. FAWC_

3voto

Scott Ritchie Points 4261

Je suis tombé là-dessus l'autre jour et ça m'a pris quelques secondes pour que ça fonctionne. J'ai peut-être même fait toute la séquence REISUB deux fois.

Aussi, assurez-vous d'utiliser la touche sysrq (la plupart des ordinateurs portables vous demanderont de maintenir enfoncé la touche de fonction, donc vous tiendrez vraiment 4 touches en même temps)

2voto

Michiel de Mare Points 15888

Il y a quelques années, j'utilisais Alt+SysRq+S,U,B,O pour redémarrer ou éteindre une machine bloquée, car comme pour vous, Alt+SysRq+B ne fonctionnait parfois pas.

(En outre, je dois prendre l'habitude d'utiliser Alt+SysRq+E,I d'abord. Je ne vois pas l'intérêt d'utiliser Alt+SysRq+R, puisque le mode clavier n'a pas d'importance s'il va redémarrer et le réinitialiser de toute façon?)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X