Comment activer toutes les fonctions sysrq sur Linux
- 4726
- 1183
- Mohamed Brunet
Objectif
Apprenez à activer les fonctions SYSRQ et à utiliser Invoquez-les en utilisant des clés de commande.
Exigences
- Autorisation
- Linux Kernel compilé avec l'option «config_magic_sysrq» activée
Conventions
- # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
directement en tant qu'utilisateur racine ou en utilisantSudo
commande - $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier
Introduction
La combinaison de clés sysrq peut être utilisée pour envoyer des commandes directement au noyau Linux dans certaines circonstances spécifiques: le noyau répondra aux commandes envoyées avec touches de commande
Immédiatement, à moins qu'il ne soit complètement verrouillé. Divers touches de commande
atteindre des tâches spécifiques, et ils peuvent être combinés pour restaurer le système à un état sûr, ou pour obtenir un redémarrage propre lorsque rien d'autre ne fonctionne: c'est ce que nous pouvons obtenir avec le reisub
séquence.
Dans ce tutoriel, nous verrons comment activer toutes les fonctions sysrq en utilisant une installation standard de Ubuntu 18.04 - Bionic Beaver
comme base.
La clé magique sysrq
Le Sysrq
La combinaison de touches se compose de trois clés à appuyer ensemble: Clé de commande alt + sysrq +
. Vous vous demandez peut-être quel est le Sysrq
clé de votre clavier. En supposant que vous utilisez un clavier Qwerty, le Sysrq
La clé correspond au imprimer
clé.
Enfin, une touche de commande est une clé du clavier qui, appuyé sur ce mode spécial, enverra immédiatement une commande au noyau. Nous verrons certaines de ces clés et les fonctions qui leur sont associées dans un instant, mais avant de continuer, nous devons être sûrs que le noyau que nous utilisons a été compilé avec l'option nécessaire activée.
L'option de noyau config_magic_sysrq
Comme dit ci-dessus, pour le Sysrq
combinaison clé pour travailler, le noyau doit avoir été construit avec le Config_magic_sysrq
Option activée. C'est généralement le cas dans toutes les grandes distributions, mais il peut être utile de savoir comment vérifier son état. Voici comment nous pouvons le faire. La première chose que nous voulons savoir est la version et le nom du noyau que nous utilisons. L'obtention de ces informations est très facile, nous coulons simplement:
$ uname -r 4.13.0-25 générique
Comme vous le savez probablement, le ton nom
La commande est utilisée pour récupérer certaines informations système. Dans ce cas, nous l'avons utilisé avec le -r
drapeau, comme nous voulions seulement en savoir plus sur le libération du noyau
.Le résultat de la commande a été 4.13.0-25 générique
: c'est le nom du noyau utilisé par notre système. Nous pouvons maintenant regarder à l'intérieur du /botte
Répertoire du fichier de configuration correspondant: ce fichier contient toutes les options avec lesquelles le noyau a été compilé. Nous pouvons rechercher la valeur utilisée pour Config_magic_sysrq
en elle:
$ ls / boot ABI-4.13.0-25 générique Initrd.IMG-4.13.0-25-Generic Memtest86 + _Multiboot.config-4 bin.13.0-25 générique Memtest86+.bac.map-4.13.0-25 générique Grub Memtest86+.elfe vmlinuz-4.13.0-25 générique
Comme prévu, le fichier est présent: config-4.13.0.25 génériques
est ce que nous recherchons. Nous avons maintenant tout ce dont nous avons besoin, faisons le chèque:
$ grep -i config_magic_sysrq / boot / config-4.13.0-25 générique config_magic_sysrq = y config_magic_sysrq_default_enable = 0x01b6 config_magic_sysrq_serial = y
Comme vous pouvez le voir dans la première ligne, l'option Config_magic_sysrq
a y
comme sa valeur, ce qui signifie qu'il a été défini comme intégré lorsque le noyau a été configuré. Que représente les autres lignes? Le Config_magic_sysrq_default_enable
L'option spécifie les fonctions par défaut activées: la valeur est exprimée en hexadécimal
formulaire, dans ce cas 0x01b6
qui correspond à 438
sous forme décimale.
Comme nous le verrons plus loin dans ce tutoriel, cette valeur signifie que la plupart des fonctionnalités sont activées par défaut. Cependant, la plupart des distributions désactivent leur invocation via une combinaison clé pour des raisons de sécurité. La troisième option n'est pas très importante pour nous maintenant: il s'agit de permettre Clé sysrq
en série.
Vérification de la valeur SYSRQ actuelle
La majorité des distributions désactivent l'accès à certains des Sysrq
Fonctions via des combinaisons clés pour des raisons de sécurité (toutes les fonctionnalités sont cependant toujours disponibles si elles sont invoquées via / proc / sysrq déclencheur
avec les privilèges racinaires). Pour vérifier quelles sont les fonctions disponibles dans notre système, nous pouvons simplement exécuter:
$ cat / proc / sys / noyau / sysrq 176
La commande a renvoyé une valeur de 176
. Comment cette valeur est obtenue, et qu'est-ce qu'elle représente? Chaque valeur correspond à une certaine fonction, comme vous pouvez le voir dans la liste ci-dessous:
0 - Désactiver SYSRQ complètement 1 - Activez toutes les fonctions de SYSRQ 2 - Activer le contrôle du niveau de journalisation de la console 4 - Activer le contrôle du clavier (SAK, UNRAW) 8 - Activer les décors. 16 - Activer la commande Sync 32 - Activer Remount Read only 64 - Activer la signalisation des processus (Term, Kill, Oom-Kill) 128 - Autoriser le redémarrage / PowerOff 256 - Autoriser la nice de toutes les tâches RT
Tandis qu'une valeur de 0
désactive tout Sysrq
fonctions et une valeur de 1
les permet à tous, fournissant des valeurs supérieures à 1, nous pouvons activer celles spécifiques. Comme vérifié ci-dessus, nous avons un Sysrq
valeur de 176
. Ceci est obtenu à partir de la somme de 128
(qui permet de redémarrer et de Poweroff) + 32
(Capacité à remonte à des systèmes de fichiers en mode en lecture seule) + 16
, qui permet la commande sync. De la même manière, la valeur de 438
est obtenu à partir de la somme de 2 + 4 + 16 + 32 + 128 + 256, donc toutes les fonctions correspondantes sont activées.
Comment changer la valeur sysrq
Nous savons maintenant ce que le Sysrq
La valeur est, mais comment pouvons-nous le changer? Pour modifier immédiatement cette valeur, nous devons simplement écrire celui recherché / proc / sys / kernel / sysrq
Fichier, en exécutant:
# echo "1"> / proc / sys / kernel / sysrq
De cette façon, le changement sera immédiatement efficace, mais il ne survivra pas à un redémarrage. Comment le rendre persistant? C'est très simple. Une solution générique, qui fonctionne dans toutes les distributions Linux, consiste à mettre la valeur de noyau.sysrq
dans le / etc / sysctl.D / 99-SYSCTL.confli
déposer:
# Echo "Kernel.sysrq = 1 ">> / etc / sysctl.D / 99-SYSCTL.confli
Veuillez remarquer comment nous avons utilisé le >>
Opérateur de redirection: cela ajoutera le texte vers le fichier et ne remplacera pas d'autres paramètres qu'il pourrait déjà contenir.
La séquence de reisub
De toutes les séquences de clés de commande, reisub
est probablement le plus célèbre. Pour mieux se souvenir de cette séquence, elle est souvent utilisée comme acronyme pour «élever des éléphants est tellement ennuyeux». Qu'est-ce que cette séquence accomplit? Holding Clé Alt + Sysrq
, Nous procédons en appuyant sur les touches de commande en séquence, et c'est ce qui se passe:
Tout d'abord r
change le clavier à partir de brut
pour Xlater
mode, alors, e
envoie un Sigterm
signale à tous les processus, afin qu'ils puissent être fermés de manière gracieuse si possible. Après cela, nous envoyons un Sigkill
Signal en appuyant sur je
, pour résilier le processus restant qui n'a pas répondu au signal précédent. Avec s
Nous essayons de synchroniser tous les systèmes de fichiers montés et de rincer toutes les modifications du cache au disque immédiatement. En utilisant u
Nous remontons tous les systèmes de fichiers dans lecture seulement
mode, et enfin en appuyant b
, Nous effectuons un redémarrage du système.
Le reisub
La séquence peut être utilisée dans certaines situations lorsque le système devient très insensible, et d'autres solutions ne sont pas suffisantes pour réparer les choses. Les touches de commande composant cette séquence ne sont cependant qu'un sous-ensemble des sous-ensembles disponibles: pour une liste complète, vous pouvez jeter un œil au Sysrq
documentation du noyau.
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Commandes Linux de base
- Comment imprimer l'arbre du répertoire à l'aide de Linux
- Téléchargement Linux
- Fichiers de configuration Linux: 30 premiers
- Installez Arch Linux dans VMware Workstation
- Meilleure distribution Linux pour les développeurs
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- « Introduction aux niveaux de journal du noyau Linux
- Comment configurer Amule et le contrôler via l'interface Web sur un Raspberry Pi »