ATTRIBUTIONS :
lien 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é à Crutcher Dunnavant
lien : liens fournis par mneiss pour LaunchPad.
Contenu
Qu'est-ce que sysrq?
Pourquoi RESIUB (O) ne fonctionne pas?
1 Comment est-ce que sysrq se comporte comme je le souhaite?
1.1 Quelle est 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 clés de "commande"?
1.5 Bon, que puis-je les utiliser?
1.6 Résolution des problèmes
1.6.1 Arrêt avant l'exécution des scripts d'initialisation
1.6.2 Parfois, SysRq semble "bloqué" après son utilisation, que puis-je faire?
1.6.3 Je frappe SysRq, mais rien ne semble se passer, quelle erreur?
1.6.4 Je souhaite ajouter des événements clés SysRQ à un module. ça marche?
1.6.5 Conclusion
1.6.6 ANNEXE Remarque
Vous pouvez trouver en utilisant Ctrl + F pour utiliser la table des matières.
Qu'est-ce que SysRq?
Une méthode courante bien connue et utilisée pour retrouver l’utilisation de la machine après sa congélation ou son verrouillage en limitant le risque de corruption du disque entraînant des dommages au fichier système ou à la perte de données est la suivante: Alt + SysRq + r puis s puis e puis i puis u puis b et / ou si nécessaire ( o )
Cela n'a pas fonctionné comme prévu pour beaucoup (c.-à-d. moi et James) à travers toutes les versions de & gt; = 8.04LTS à la version 13.04 actuelle.
Pourquoi RESIUB (O) ne fonctionne-t-il pas?
Considérez cette description de bogue à l'adresse Bogue 194676 de LaunchPad:
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 le plus doucement possible ou déboguer le problème. Cependant, beaucoup de gens sont surpris que vous puissiez également lui demander de transférer le contenu de la mémoire courante sur la console (ou sur dmesg), mais uniquement depuis le clavier.
openSUSE définit un masque binaire par défaut de 176 sur son SysRq qui vous limite par défaut à la synchronisation, au redémarrage et au "remontage en lecture seule". Cela empêche les personnes utilisant sysrq par défaut d'inspecter la mémoire qui semble raisonnable.
Les développeurs 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 par défaut le bitmask 176 sysrq, ce qui oblige les utilisateurs à définir sysrq comme ils le souhaitent. Le bitmask 176 n'autorise que S , U , B qui est synchronisé, remonte les partitions montées et redémarre.
La lecture du rapport de bogue complet et des commentaires mettra en évidence certaines options pouvant être applicables à votre système.
L'effet cumulatif des différents matériels, noyaux, claviers et masques de bits signifie que sysrq se comporte différemment selon les personnes.
Une méthode pour obtenir une sortie txt sur la façon dont votre système utilise sysrq consiste à appliquer les commandes sysrq à partir de tty (lorsque le système ne souffre pas de verrous ou de blocages). 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 ordinateur 13.04 Desktop amd64 liveDVD et une installation 13.04 Desktop amd64 confirme que la valeur par défaut est de laisser sysrq à bitmask 176.
Si sysrq fonctionne pour vous il peut être utile de demander, "Si je n'ai pas changé les paramètres 10-magic-sysrq alors: qui a fait?"
1 Comment puis-je faire en sorte que sysrq se comporte comme je le souhaite?
Ce qui suit est un copier-coller édité de lien .
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, à 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. c.-à-d. décommenter 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 pouvant ê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 l'activer pleinement serait
echo "1" > /proc/sys/kernel/sysrq
Ou peut 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'appel de toute opération via / proc / sysrq-trigger est toujours autorisé (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 touche Alt + SysRq + touche de commande .
N.B .- Reportez-vous aux remarques de cette section et de la section Dépannage pour d'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: All Architectures
Ecrivez un caractère dans / proc / sysrq-trigger:
echo t > /proc/sysrq-trigger
définirait le T se comporter comme SysRq
Note.
Certains claviers peuvent ne pas avoir de clé étiquetée SysRq . La clé SysRq est également appelée clé Print Screen . De plus, certains claviers ne peuvent pas manipuler autant de touches en même temps, donc vous pourriez avoir plus de chance avec Alt + SysRq - SysRq puis appuyez sur clé de commande puis tout libérer. Pour plus d'informations à ce sujet, reportez-vous à la documentation complète de QA sur laquelle repose ce guide lien .
1.4 Quelles 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.
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, à quoi puis-je les utiliser?
Un r aw est très pratique lorsque votre serveur X ou un programme svgalib se bloque.
Sa k (clé d’accès sécurisé) est utile lorsque vous voulez vous assurer qu’il n’existe pas de programme de Troie sur la console qui pourrait récupérer votre mot de passe lorsque vous essayez de vous connecter. Il tuera 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 celle d’un programme de Troie. D'autres le trouvent utile (clé d'attention du système) qui est utile lorsque vous souhaitez quitter un programme qui ne vous permettra pas de changer de console. (Par exemple, X ou un programme svgalib.)
Note.
Sous sa forme réelle, il ne s’agit pas d’un véritable SAK comme celui d’un système compatible c2, et il ne devrait pas être confondu en tant que tel.
Re b oot est bon lorsque vous ne parvenez pas à vous arrêter. Note.
Il est généralement considéré comme une bonne pratique pour u mount first
Crashdump peut être utilisé pour déclencher manuellement un rashdump c 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 s ync vos disques et diminuera certainement les risques de perte de données et de fscking.
Avertissement
La synchronisation n'a pas eu lieu jusqu'à ce que vous voyiez "OK" et "Done" apparaître à l'écran. (Si le noyau est vraiment en conflit, vous risquez de ne jamais recevoir le message OK ou Terminé.
U mount est fondamentalement utile de la même manière que S ync.
Les loglevels 0 - 9 sont utiles lorsque votre console est inondée de messages du noyau que vous ne voulez pas voir. Sélectionner 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 actifs
T e rm et k i ll sont utiles si vous ne parvenez pas à supprimer un autre processus, en particulier s’il génère d’autres processus.
Note.
En cas de mauvaise panique du noyau, faites Alt + Sysrq + e puis Alt + Sysrq + u puis Alt + Sysrq + i et enfin Alt + Sysrq + b
1.6 Résolution des problèmes
1.6.1 Suspension avant l'exécution des scripts d'initialisation
Si la machine est suspendue avant l'exécution des scripts d'initialisation, démarrez avec sysrq_always_enabled=1
1.6.2 Parfois, SysRq semble "bloqué" après l’utilisation, que puis-je faire?
Toucher shift , alt et control des deux côtés du clavier, et frapper à nouveau une séquence sysrq invalide résoudra le problème. (c'est-à-dire quelque chose comme alt + sysrq + z ).
Passage à une autre console virtuelle ( Ctrl + Alt + Fn1 - Fn6 ), puis à nouveau < kbd> Ctrl + Alt + Fn7 devrait également aider.
1.6.3 Je frappe SysRq , mais rien ne semble se passer, quel est le problème?
Certains claviers envoient des codes d’étalonnage différents pour SysRq que ceux prédéfinis 0x54. Donc, si SysRq ne fonctionne pas pour un clavier donné, exécutez showkey -s
pour trouver la séquence de code appropriée. Ensuite, utilisez setkeycodes <sequence> 84
pour définir cette séquence au code SysRq habituel (84 est décimal pour 0x54). Il est probablement préférable de placer cette commande dans un script de démarrage.
Avertissement
Vous quittez showkey
en ne saisissant rien pendant dix secondes.
1.6.4 Je souhaite ajouter des événements clés SysRq à un module, comment cela fonctionne-t-il?
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 imprimera lorsque SysRQ imprime l'aide
-
Une chaîne action_msg, qui s'imprimera juste avant que votre gestionnaire ne soit
appelé. Votre gestionnaire doit être conforme au prototype dans '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 'clé', 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), ce qui supprimera la clé op par "op_p" de la clé "key", si et seulement si elle est actuellement enregistrée dans cette clé. fente. C'est au cas où le slot aurait été écrasé depuis que vous l'avez enregistré.
Le système Magic SysRq fonctionne en enregistrant les opérations de clé sur une table de recherche de clés, définie dans "drivers / char / sysrq.c". Ce tableau de clés comporte un certain nombre d'opérations enregistrées au moment de la compilation, mais est mutable, et 2 fonctions sont exportées pour l'interface avec celles-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 () quitte, il doit appeler unregister_sysrq_key () pour nettoyer l'entrée de la table de clés sysrq qu'il utilisait.
Remarque.
Les pointeurs nuls dans la table sont toujours sécuritaires.
Si pour une raison quelconque vous ressentez le besoin d'appeler la fonction handle_sysrq depuis 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! ), vous devez donc appeler __handle_sysrq_nolock à la place.
1.6.5 Conclusion
Utiliser Alt + SysRq + S puis U puis B pour synchroniser, essayez de remonter tous les systèmes de fichiers montés, puis redémarrez si nécessaire. Sans changer une chose en 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 pour permettre la tentative d'application de Alt + SysRq + B (ou / et O après édition / Proc / sys / kernel / sysrq bitmask 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 ANNEXE:
Voir aussi - lien et lien
Pour ceux qui ont des problèmes de clavier Apple MacBook concernant sysrq, voir: lien et lien
Informations intéressantes relatives - Après avoir regardé 17 08 2013 épisode du programme de la BBC "Cliquez" et l'article "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