Comment activer toutes les fonctions sysrq sur Linux

Comment activer toutes les fonctions sysrq sur Linux

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 utilisant Sudo 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…