Sauver sa machine avec SysRq

De Le wiki de Fred sur gantzer.eu

Sommaire

Définition

SysRq est une "magic combo key" qui permet d'atteindre le kernel linux quelque soit son état.

Il s'agit de la meilleure (dès fois de l'unique) solution pour savoir exactement ce que fait la machine. C'est très utile pour savoir ce qui bloque une machine et quand aucune info n'est remontée par le logger unix.

Activation

De base SysRq n'est pas activé.


  • Pour l'activer:
# echo 1 > /proc/sys/kernel/sysrq
  • pour le désactiver:
# echo 0 > /proc/sys/kernel/sysrq
  • par l'activer de façon permanente, ajouter dans /etc/sysctl.conf:
kernel.sysrq = 1


Déclencher un événement sysrq

sur le clavier console

Ne fonctionne pas sur la console Xwindows !

depuis un clavier de type AT :

Alt+PrintScreen+[CommandKey]

depuis un terminal

Faire un echo de la lettre événement dans /proc/sysrq-trigger


echo 'm' > /proc/sysrq-trigger


NB: Il est souvent utile d'agrandir le buffer des logs du kernel. Vu la quantité d'information, des informations risquent d'être perdues. (c'est un "ring buffer" : en cas d'overflow, les vieilles données seront écrasées par les nouvelles).

Ceci necessite un reboot de la machine, avec le parametre de boot suivant (le nombre doit etre une puissance de 2) :

  log_buf_len=8M

Ce qui reservera 8M de memoire pour le ring buffer.

Logs

Les événements vont dans /var/log/messages si le trigger est passée depuis un terminal.


Liste des événements

m - dump information about memory allocation

t - dump thread state information

p - dump current CPU registers and flags

c - intentionally crash the system (useful for forcing a disk or netdump)

s - immediately sync all mounted filesystems

u - immediately remount all filesystems read-only

b - immediately reboot the machine

o - immediately power off the machine (if configured and supported)

Outils personnels
Navigation