web-dev-qa-db-fra.com

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

De temps en temps, mon ordinateur portable est resté bloqué, j'ai donc utilisé la combinaison de touches magiques de Alt + SysRq + REISUB effectuer un redémarrage en toute sécurité. Cependant, cela ne semble pas fonctionner pour moi comme lorsque je presse le B touche pour compléter la commande de touche magique, il est simplement dit "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.

59
James White

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 depuis été réactivée ( # 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 doit être modifiée que si vous savez pourquoi vous devez le faire (pour les implications en matière de sécurité, voir # 194676 ).

58
mniess

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 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 les bonnes pour les présentations alternatives courantes.
  • Certains ont SysRq sur une autre clé que PrtSc tenir avec une touche de fonction. Sur mon ordinateur portable c'est Fn+End. En portant Alt + PrtSc ne fonctionne que si un processus système (gestionnaire de fenêtres?) le traduit pour moi. Sur crash total, seul le réel réel  SysRq travaux!
  • Certains ne font que déclencher SysRq touche une fois que vous tenez la à droite  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.
  • Astuce: essayez de frapper Shift + Alt + SysRq pour voir 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-tâches (N) registres de puissance PowerOff (P) émission de toutes les minuteries (Q) unRaw Sync émission de la tâche-états (T) Démonter les tâches bloquées de show (W) dump-ftrace-buffer (Z)

Dans tous les cas où j'ai découvert que cela ne fonctionnait pas, permuter le clavier fonctionnait parfaitement et montrait que rien n'était faux avec les paramètres du noyau.

31
gertvdijk

ATTRIBUTIONS:
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key qui était basé sur le travail original de
Crédits
Écrit par Mydraal
Mis à jour par Adam Sulmicki
Mise à 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 en sorte que sysrq se comporte comme je le souhaite?
1.1 Qu'est-ce que la clé magique SysRq?
1.2 Comment puis-je activer la clé magique SysRq?
1.3 Comment utiliser la clé magique SysRq?
1.4 Que sont les touches de 'commande'?
1,5 OK, à quoi puis-je les utiliser?

1.6 Résoudre les problèmes

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 souhaite ajouter des événements de clé SysRQ à un module. Comment cela fonctionne-t-il?
1.6.5 Conclusion
1.6.6 ANNEXE
Remarque.
Vous pouvez trouver en utilisant Ctrl + F d'utiliser la table des matières utile.

Qu'est-ce que SysRq?

Une méthode commune 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 menant à un endommagement du fichier système ou à une perte de données, consiste à utiliser
Alt + SysRq + r et alors s et alors e et alors i et alors u et alors b et/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 bogue du LaunchPad 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 type 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 pour définir sysrq comme ils le souhaitent. Bitmask 176 permet seulement SUB qui est sync, remonter des partitions montées et redémarrer.
La lecture du rapport de bogue complet et des commentaires met en évidence certaines options pouvant être appliquées à 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 liveDVD 13.04 Desktop AMD64 et une installation de l’AMD64 Desktop 13.04 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 utile 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, peu importe ce qu'il fait, à moins qu'il ne soit complètement verrouillé.

1.2 Comment puis-je 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’appel via un clavier. L'invocation de n'importe quelle opération via/proc/sysrq-trigger est toujours autorisée (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.

N.B .- Reportez-vous aux 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 T se comporter comme SysRq
Remarque.
Certains claviers peuvent ne pas avoir de touche étiquetée SysRq. le SysRq la clé est également connue sous le nom de Print Screen clé. 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 - SysRq puis appuyez command key puis relâchez tout. Voir la rédaction complète de l'assurance qualité 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.  

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 comment puis-je les utiliser?

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

Sak (Secure Access Key) est utile lorsque vous voulez être sûr qu’aucun programme de cheval de Troie fonctionnant sur console ne puisse 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 une véritable SAK comme celle d'un système conforme à la norme c2, et elle ne doit pas être confondue en tant que telle.

boot est bon quand vous ne pouvez pas vous arrêter.
Remarque.
C’est généralement considéré comme une bonne pratique de umonter en premier

Crashdump peut être utilisé pour déclencher manuellement une 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é, il vous permet de sync vos disques et diminuera certainement le risque de perte de données et fscking.
Avertissement
La synchronisation n’a eu lieu que lorsque "OK" et "Terminé" apparaissent à l’écran. (Si le noyau est vraiment en conflit, vous ne recevrez peut-être jamais le message OK ou Terminé.

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

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

Term et kiils 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+e puis Alt+Sysrq+u puis Alt+Sysrq+i et enfin Alt+Sysrq+b

1.6 Résoudre les problèmes

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?

Taraudage shiftalt, et control Sur les deux côtés du clavier, le fait de frapper à nouveau une séquence sysrq non valide résoudra le problème. (c'est-à-dire quelque chose comme alt+sysrq+z).

Basculement vers une autre console virtuelle (Ctrl+Alt+Fn1-Fn6) puis de nouveau Ctrl+Alt+Fn7 devrait aussi aider.

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

Certains claviers envoient différents scancodes pour SysRq que le 0x54 prédéfini. Donc si SysRq ne fonctionne pas avec un clavier donné, lancez showkey -s pour connaître la séquence de scancode appropriée. Utilisez ensuite setkeycodes <sequence> 84 pour définir cette séquence comme d'habitude SysRq code (84 est décimal pour 0x54). Il est probablement préférable de mettre cette commande dans un script de démarrage.
Avertissement
Vous quittez showkey en ne tapant rien pendant dix secondes.

1.6.4 Je veux ajouter SysRq Événements clés d'un module, comment ça marche?

Pour enregistrer une fonction de base dans la table, vous devez d'abord inclure l'en-tête include/linux/sysrq.h, qui 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é.

La magie SysRq Le système 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 ferme, 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 depuis 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 ne dormez pas!), vous devez plutôt appeler __handle_sysrq_nolock.

1.6.5 Conclusion

Utilisation Alt + SysRq + S et alors U et alors B pour 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 de modifier /etc/sysctl.d/10-magic-sysrq.conf afin de permettre la tentative d'application Alt + SysRq + B (ou et O après avoir modifié/proc/sys/kernel/sysrq masque de bits pour activer le redémarrage et l’arrêt du système à l’aide de sysrq. Vous pouvez le faire par l’une des méthodes décrites ci-dessus.

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

Pour ceux avec Apple problèmes de clavier 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 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 si vous ne pouvez pas regarder le programme. FAWC

17
geezanansa

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).

3
Scott Ritchie

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

(De plus, je dois prendre l’habitude d’utiliser Alt+SysRq+E,I premier. Je ne vois pas grand chose à utiliser Alt+SysRq+R, car pourquoi le mode clavier est-il important s’il doit redémarrer et le réinitialiser quand même?)

3
Marius Gedminas