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 -s
immédiatement avec un certain clavier, lancez-le pour trouver la séquence de scancode appropriée. Utilisez ensuite setkeycodes <sequence> 84
pour 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 showkey
en 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