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

59

À l' occasion, mon ordinateur portable est devenu coincé donc je l' ai utilisé la magie combinaison de touches de Alt+ SysRq+ REISUBpour effectuer un redémarrage en toute sécurité. Cependant, cela ne semble pas fonctionner pour moi car lorsque j'appuie sur la Btouche pour compléter la commande de touche magique, il est simplement indiqué "réinitialisation ..." et ne fait rien.

Toutes les autres touches semblent fonctionner correctement car elles réinitialisent la disposition du clavier, tuent toutes les tâches, etc., mais cela ne semble pas se terminer avec un redémarrage.

J'avais l'impression que mon ordinateur portable devrait redémarrer après que toutes les touches magiques aient été enfoncées dans l'ordre de REISUB.

James White
la source

Réponses:

58

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

Ubuntu 12.04 et plus ancien

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

kernel.sysrq=1

Ubuntu 12.10 et plus récent

À partir de Ubuntu 12.10, il est possible de contrôler avec plus de précision les fonctions activées de Magic-SysRq. Il suffit de modifier le fichier /etc/sysctl.d/10-magic-sysrq.conf .

Le fichier est bien documenté et vous indique exactement comment activer les 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 en avez besoin (pour les implications en matière de sécurité, voir le n ° 194676 ).

mniess
la source
6
Non ce n'est pas. Cela fonctionne très bien sur Maverick, Natty, Oneiric et précis.
Psusi
Il a été désactivé pour résoudre un bogue, mais il a été réactivé. J'ai mis à jour la réponse. Devrions-nous également modifier la question pour qu'elle soit un peu plus générale?
mniess
1
@geezanansa Vous pouvez éditer vos commentaires pendant qu'ils sont encore chauds. S'il vous plaît éviter d'ajouter plusieurs commentaires consécutifs. De plus, SysRq fonctionne pour moi le 13.04. Jamais essayé sur un Live DVD, seulement après l'installation. Donc, je ne comprends pas les upvotes de cette réponse car il s’agit d’une période très courte (voir le rapport de bogue). ;)
gertvdijk
1
@gertvdijk: Lorsque j'ai mis à jour la question, j'ai mentionné etc / sysctl.d / 10-magic-sysrq.conf, qui inclut les paramètres sysrq pour tout ce dont vous avez besoin pour activer toutes les fonctions respectives. À l'époque où la question avait été posée (en 2010), c'était en fait la solution car "b" était en fait désactivé par défaut en raison d'un bogue. J'ai modifié la réponse pour qu'elle soit plus générale à dessein, je réponds à la question de sysrq étant complètement dysfonctionnel et en partie aussi dysfonctionnel.
mniess
1
@geezanansa, oui, je pense qu'ils l'ont désactivé en quantal, après avoir posté cela
psusi
31

Les claviers sont le problème ici!

  • Certains n'aiment pas les touches 4 touches en même temps et cessent simplement d'être un clavier jusqu'à ce que vous en relâchiez.
  • Tous les claviers se transforment 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: Les commandes SysRq montrent un tableau pour trouver les bonnes pour les dispositions alternatives communes.
  • Certains ont SysRqsur une autre touche que PrtScde tenir avec une touche de fonction. Sur mon ordinateur portable c'est Fn+ End. Tenir Alt+ PrtScne fonctionne que si un processus système (gestionnaire de fenêtres?) Le traduit pour moi. Sur crash total, seul le réel SysRq fonctionne!
  • Certains ne déclenchent la SysRqclé que lorsque vous tenez le bouton droit Alt + PrtSc(par le matériel). La touche Alt gauche ne fonctionnera pas dans un tel cas, pour la même raison que ci-dessus. Voici comment fonctionne mon clavier USB.
  • Conseil: essayez d'appuyer sur Shift+ Alt+ SysRqpour afficher une sortie «help» sur un terminal virtuel. Ceci est utile pour voir si cela fonctionne sans faire de mal:

    SysRq: HELP: loglevel (0-9) reBoot Crash terminer-toutes-tâches (E) memory-full-oom-kill (F) tuer-toutes-tâches (I) thaw-filesystems (J) saK show-backtrace-all -active-cpus (L) utilisation de la mémoire d'exposition (M) nice-all-RT-tasks (N) registres de puissance PowerOff (P) show-all-timers (Q) unRaw Synchronisation show-task-state (T) Démonter les tâches bloquées de show (W) dump-ftrace-buffer (Z)

Dans tous les cas que j'ai rencontrés, cela n'a pas fonctionné. L'échange de clavier a parfaitement fonctionné et a montré que rien ne se passait mal avec les paramètres du noyau.

Gertvdijk
la source
2
@geezanansa J'ai vu le clavier clairement incapable de gérer certaines combinaisons de 4 touches. Le remplacer a résolu le problème. Vraiment. Cela peut fonctionner pour tous vos claviers, cependant. Et si vous ne comprenez pas les votes positifs, alors pourquoi ne pas expliquer pourquoi vous ne le faites pas?
gertvdijk
2
Considérant que James confirme que toutes les commandes sysrq fonctionnent à l'exception de B. Cette réponse n'est pas une réponse à la question que j'ai lue comme Pourquoi sysrq B ne fonctionne-t-il pas? Les clés ne sont pas le problème pour James ou beaucoup d’autres concernant sysrq. -1
geezanansa
17

ATTRIBUTIONS :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key qui était basé sur le travail original de
Credits
Écrit par Mydraal
Mis à jour par Adam Sulmicki
Mis à jour par Jeremy M. Dolan Mise à jour par Jeremy M. Dolan 2001/01/28 10:15:59
Ajoutée to 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 en sorte que sysrq se comporte comme je le souhaite?
1.1 Qu'est-ce que la clé magique SysRq?
1.2 Comment activer la clé magique SysRq?
1.3 Comment utiliser la clé magique SysRq?
1.4 Que sont les clés de "commande"?
1.5 Bon, alors que puis-je utiliser?

1.6 Dépanner

1.6.1 Suspension avant l'exécution des
scripts d' initialisation 1.6.2 Parfois, SysRq semble rester bloqué après l'avoir utilisé, que puis-je faire?
1.6.3 Je frappe SysRq, mais rien ne semble se passer, qu'est-ce qui ne va pas?
1.6.4 Je veux ajouter des événements de clé SysRQ à un module, comment ça marche?
1.6.5 Conclusion
1.6.6 ANNEXE
Note.
Vous pouvez trouver utile d' utiliser Ctrl+ Fpour utiliser la table des matières.

Qu'est-ce que SysRq?

Une méthode bien connue et utilisée pour retrouver l'utilisation de la machine après le gel ou le verrouillage, limitant ainsi le risque de corruption du disque et d'endommager le fichier système ou de perdre des données, consiste à utiliser
Alt+ SysRq+ r, puis s, puis e, puis i, puis u, puis, bet / ou ou si nécessaire ( o)

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

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

Considérez cette description de bogue trouvée sur le LaunchPad, bogue 194676 :

Description du problème:
Par défaut, SysRq est activé par défaut sur les systèmes de bureau Ubuntu, ce qui est inestimable lorsqu'un système est verrouillé et que vous souhaitez l'arrêter aussi doucement que possible ou déboguer le problème. Cependant, beaucoup de gens sont surpris que vous puissiez également lui demander de vider le contenu de la mémoire actuelle vers la console (ou dmesg), même à partir du clavier.
openSUSE définit un masque de bit par défaut de 176 sur son SysRq qui vous interdit par défaut de synchroniser, de redémarrer et de "remonter en lecture seule". Cela empêche les utilisateurs d’utiliser sysrq par défaut pour inspecter la mémoire, ce qui semble raisonnable.

Les développeurs Ubuntu ont compris qu'il était nécessaire d'agir, et la meilleure solution compte tenu des complications possibles de l'observation mentionnée consiste à appliquer le masque de masquage 176 sysrq par défaut, ce qui crée le besoin d'une entrée utilisateur permettant de définir sysrq comme ils le souhaitent. Bitmask 176 ne permet S, U, Bqui est la synchronisation, partitions et remount monté redémarrage.
La lecture du rapport de bogue complet et des commentaires mettra en évidence certaines options pouvant s’appliquer à votre système.

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

Une méthode pour obtenir une sortie txt concernant la manière dont votre système utilise sysrq consiste à appliquer les commandes sysrq à partir de tty (lorsque le système ne souffre pas de verrouillages / gels). Cela peut indiquer que sysrq n’a pas été complètement désactivé mais utilise le masque de bits 176.

La recherche de / proc / sys / kernel / sysrq sur un amD64 liveDVD 13.04 Desktop et une installation de amd64 sur le 13.04 Desktop confirment que la valeur par défaut est de laisser sysrq au niveau du masque de masque 176.

Si sysrq fonctionne pour vous; il peut être intéressant de demander: "Si je ne modifiais pas les paramètres de 10-magic-sysrq alors; qui l'a fait??"

1 Comment faire en sorte 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?

C’est une combinaison de touches «magiques» à laquelle le noyau répondra indépendamment de ce qu’il fait, sauf s’il est 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, à l'aide de 10-magic-sysrq.conf.

Pour le réactiver au démarrage, vous devez éditer le fichier /etc/sysctl.d/10-magic-sysrq.conf. c’est-à-dire que le retrait de cette ligne activera toutes les fonctions de sysrq:

#   1 - enable all functions of sysrq

Lorsque vous exécutez un noyau avec SysRq compilé, / proc / sys / kernel / sysrq contrôle les fonctions autorisées à être appelé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 à l'aide de la commande suivante.

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

Donc, pour permettre pleinement ce serait.

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

Ou peut aussi l'activer en faisant.

sysctl -w kernel.sysrq=1  

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

1.3 Comment utiliser la clé magique SysRq?

Ubuntu Desktop

Vous appuyez sur la touche combo Alt+ SysRq+ command key.

NB - Voir les remarques 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 n'importe quel caractère de votre choix: Toutes les architectures

Ecrivez un caractère dans / proc / sysrq-trigger:

echo t > /proc/sysrq-trigger

définirait le Tcomportement comme SysRq
Note.
Certains claviers peuvent ne pas avoir une clé étiquetée SysRq. La SysRqclé est également appelée Print Screenclé. De plus, certains claviers ne peuvent pas gérer autant de touches enfoncées en même temps. Vous pouvez donc avoir plus de chance avec Alt+ SysRq- SysRqpuis appuyez sur command keypuis relâchez tout. Pour plus d’informations à ce sujet, reportez-vous au texte complet de l’Assurance Qualité basé sur https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F .

1.4 Que sont les clés 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.  

Remarque.
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 Bon, alors que puis-je utiliser?

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

Sa k(clé d'accès sécurisée) est utile lorsque vous voulez être sûr qu'aucun programme de cheval de Troie ne peut saisir votre mot de passe lorsque vous essayez de vous connecter. Il va tuer tous les programmes sur une console donnée, vous permettant ainsi de vous assurer que l'invite de connexion que vous voyez est bien celle d'init, pas un programme de cheval de Troie. D'autres le trouvent utile (touche d'avertissement système), ce qui est utile lorsque vous souhaitez quitter un programme qui ne vous permet pas de changer de console. (Par exemple, X ou un programme svgalib.)
Remarque.
Dans sa forme réelle, ce n'est pas un SAK véritable comme celui d'un système conforme à la norme c2, et il ne faut pas s'y tromper.

Il best bon que vous ne puissiez pas vous arrêter.
Remarque.
Il est généralement considéré comme une bonne pratique de umonter en premier

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

La synchronisation est excellente lorsque votre système est verrouillé, elle vous permet d’ senregistrer vos disques et d’atténuer les risques de perte de données et de fscking.
Avertissement
La synchronisation n'a pas eu lieu jusqu'à ce que "OK" et "Terminé" apparaissent à l'écran. (Si le noyau est vraiment en conflit, vous ne recevrez peut-être jamais le message OK ou Terminé.

Umount est fondamentalement utile de la même manière que Sync.

Les loglevels 0- 9sont utiles lorsque votre console est inondé de messages du noyau que vous ne voulez pas voir. La sélection 0empêchera tous les messages du noyau, sauf les plus urgents, d'atteindre votre console.
Remarque.
Ils seront toujours connectés si syslogd / klogd sont en vie

Les emots iclés sont utiles si vous avez un processus quelconque que vous ne pouvez pas éliminer autrement, en particulier s'il engendre d'autres processus.
Remarque.
En cas de panique grave dans le noyau, faites Alt+ Sysrq+ epuis Alt+ Sysrq+ upuis Alt+ Sysrq+ iet enfin Alt+ Sysrq+b

1.6 Dépanner

1.6.1 Suspension avant l'exécution des scripts d'initialisation

Si la machine est en attente avant l'exécution des scripts d'initialisation, démarrez avec sysrq_always_enabled=1

1.6.2 Parfois, SysRq semble rester bloqué après l'avoir utilisé, que puis-je faire?

Le fait d'appuyer sur shift, altet controlsur les deux côtés du clavier, puis de frapper à nouveau une séquence sysrq non valide résoudra le problème. (c'est-à-dire quelque chose comme alt+ sysrq+ z).

Basculer vers une autre console virtuelle ( Ctrl+ Alt+ Fn1- Fn6) puis à nouveau Ctrl+ Alt+ Fn7devrait également aider.

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

Certains claviers envoient des scancodes différents de SysRqceux du 0x54 prédéfini. Donc, si SysRqcela ne fonctionne pas showkey -simmédiatement avec un certain clavier, lancez-le pour trouver la séquence de scancode appropriée. Utilisez ensuite setkeycodes <sequence> 84pour définir cette séquence sur le SysRqcode habituel (84 est un nombre décimal pour 0x54). Il est probablement préférable de mettre cette commande dans un script de démarrage.
Avertissement
Vous quittez showkeyen ne tapant rien pendant dix secondes.

1.6.4 Je veux ajouter SysRqdes événements clés à un module, comment ça marche?

Pour 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 gestionnaire de clés que vous utiliserez.

  • Une chaîne help_msg qui sera imprimée 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 être conforme au prototype de 'sysrq.h'

Une fois que sysrq_key_op est créé, vous pouvez appeler la fonction du noyau register_sysrq_key (int key, struct sysrq_key_op * op_p); cela enregistrera l'opération indiquée par 'op_p' sur la touche de table 'key', si cet emplacement de 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 la clé op pointée par 'op_p' de la clé 'key', si et seulement si elle est actuellement enregistrée dans celle-ci. fente. C'est dans le cas où l'emplacement a été écrasé depuis que vous l'avez enregistré.

Le SysRqsystème Magic fonctionne en enregistrant les opérations de clé sur une table de consultation d'opération de clé, définie dans 'drivers / char / sysrq.c'. Cette table de clés contient un certain nombre d'opérations enregistrées au moment de la compilation, mais elle est modifiable et 2 fonctions sont exportées pour l'interface avec celle-ci register_sysrq_key et unregister_sysrq_key. Bien sûr, ne laissez jamais un pointeur invalide dans la table. c'est à dire; Lorsque votre module appelé register_sysrq_key () se termine, il doit appeler unregister_sysrq_key () pour nettoyer l'entrée de la table de clés sysrq utilisée.
Remarque.
Les indicateurs nuls dans la table sont toujours sûrs.

Si, pour une raison quelconque, vous ressentez le besoin d'appeler la fonction handle_sysrq à partir d'une fonction appelée handle_sysrq, vous devez être conscient du fait que vous êtes dans un verrou (vous êtes également dans un gestionnaire d'interruptions, ce qui signifie que vous ne dormez pas!), vous devez plutôt appeler __handle_sysrq_nolock.

1.6.5 Conclusion

Utilisez Alt+ SysRq+ Spuis puis U, puis, Bpour 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+ Bne redémarre pas le système, il peut être nécessaire de modifier /etc/sysctl.d/10-magic-sysrq.conf afin de permettre la tentative d'application de Alt+ SysRq+ B(ou / et Oaprès avoir modifié / proc / sys / kernel / sysrq bitmask pour activer le redémarrage et l’arrêt du système à l’aide de sysrq, à l’aide de l’une des méthodes décrites ci-dessus.

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

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

Informations intéressantes relatives - Après avoir regardé l'épisode 17 08 2013 de l'émission de la BBC "Click" , l'article sur la "cyber-guerre" a vraiment attiré mon attention. Le programme a également son propre site Web Cliquez si vous ne pouvez pas regarder le programme. FAWC

geezanansa
la source
2
En particulier, je viens de tester Al + SysRq + REISUB sur un système Quantal i386 entièrement mis à jour et tout fonctionne correctement. Êtes-vous sûr que le bogue de sécurité lié, ou une partie de la discussion sur la sécurité dans cette réponse, est vraiment liée au problème? Si tel est le cas, est-ce une cause suffisamment commune du problème pour qu’il apparaisse en premier dans cette réponse?
Eliah Kagan
Le problème de sécurité est important car l'ensemble complet des commandes sysrq n'est pas disponible car le masque de bits 176 est appliqué au moment du démarrage. comme le décrit le rapport de bogue.
geezanansa
3

Je me suis heurté à cela l’autre jour et il a fallu quelques secondes pour travailler. J'ai peut-être même fait la séquence entière de REISUB à deux reprises.

Assurez-vous également que vous utilisez la clé sysrq (la plupart des ordinateurs portables exigent que vous mainteniez la fonction enfoncée afin que vous mainteniez vraiment 4 touches à la fois).

Scott Ritchie
la source
Merci pour votre réponse Scott. Je dois en effet maintenir la touche de fonction (fn) avec alt et sysrq. Une fois que j'appuie sur la dernière touche B pour terminer la séquence REISUB, mon ordinateur portable semble se verrouiller après son affichage: Réinitialisation Le fait de répéter la séquence de touches magiques ne fait rien et rien ne s'affiche à l'écran après. Il semble donc que le système se bloque lorsqu'il doit redémarrer.
James White
3

Quelques années en arrière , je l' habitude d'utiliser Alt+ SysRq+ S, U, B, Oau redémarrage ou la mise hors tension d' une machine bloquée, parce que , comme pour vous, Alt+ SysRq+ Bparfois ne veulent pas travailler.

(En outre, je dois d’abord prendre l’habitude d’utiliser Alt+ SysRq+ E, tout d’ Iabord. Je ne vois pas l’intérêt d’utiliser Alt+ SysRq+ R, car pourquoi le mode clavier est-il important si il doit redémarrer et le réinitialiser de toute façon?)

Marius Gedminas
la source
1
Pourquoi le mode clavier est-il important s'il doit redémarrer et le réinitialiser de toute façon? Parce que cela redonne une capacité d’entrée au clavier? ce qui pourrait signifier que vous n'avez pas besoin de redémarrer ou de mettre hors tension
geezanansa