Linux-Praxisbuch/ Problembehandlung beim Neustart
Es kann immer mal passieren, dass das System nicht mehr reagiert, weil zum Beispiel ein Treiber defekt, eine Programminstallation fehlgeschlagen ist oder etwas nicht richtig konfiguriert wurde. Auf keinen Fall sollte man sofort zum Hardwarereset greifen oder den Strom ausschalten.
Im Linux-Kernel wurden Tastenkombination verankert, die höchste Priorität haben. Mit ihnen lässt sich auch in grob verhakten Situationen ein sauberer Neustart durchführen. Diese sind unter dem Begriff magic SysRq key oder magische S-Abf-Taste bekannt, wobei S-Abf eine Alternativbelegung von Druck ist. Man hält also gleichzeitig Alt + Druck gedrückt und betätigt währenddessen eine alphanumerische Taste, meist mehrere Kombinationen aus Buchstaben und Zahlen nacheinander.
Kombinationen und ihre Merksprüche
BearbeitenDie einzelnen Magic–SysRq–Tastenkombinationen werden oft in bestimmter Reihenfolge zusammen eingegeben, um bestimmte Aktionen auszuführen. Für diese Sequenzen haben sich einige Merksprüche herausgebildet. Die am häufigsten mithilfe einer solchen Sequenz bezweckte Aktion ist vermutlich ein sicherer Notfall–Neustart des Systems: S-Abf + R + E + I + S + U + B
Die hierzu benötigte Reihenfolge der Tasten lässt sich etwa mit dem englischen Satz „Raising Elephants Is So Utterly Boring“ merken, wobei jeweils der erste Buchstabe eines Wortes für die S–Abf–Kombination mit der entsprechenden Taste steht. Auch „Everything is super, uncle Ben“ ist ein verbreiteter Satz für diesen Zweck.
Taste | Funktion | Bedeutung |
---|---|---|
R | unraw | Verlasse den Keyboard–Raw–Modus, der unter X und SVGAlib aktiv ist, in den Keyboard–XLATE–Modus, der im Textmodus von Linux verwendet werden kann. Dies kann nützlich sein, wenn eine grafische Anwendung abstürzt und der Benutzer sich in der Konsole wiederfindet, die aufgrund des falschen Tastatur-Modus zunächst jedoch nicht benutzbar ist. |
K | secure attention key | Beende alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der Login– Prompt von Init stammt und nicht von einem Trojaner. Eine aufgehängte Anwendung, welche die SVGAlib benutzt oder ein nicht mehr reagierender X–Server lassen sich auch auf diese Weise beenden. |
B | reboot | Fahre den Rechner sofort herunter, ohne Daten aus dem Kernel-Festplatten-Cache auf die Festplatten zu schreiben und ohne Partitionen auszuhängen, und starte den Rechner neu. |
O | poweroff | Fahre den Rechner mit ACPI oder APM herunter und schalte ihn aus (wenn vom Rechner und Kernel unterstützt). |
S | sync | Schreibe alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten |
U | umount | Alle schreibbar eingebundenen Partitionen werden ausgehängt und anschließend nur-lesend wieder eingehängt. |
M | memory | Gib die Hauptspeicherbelegung in der Konsole aus. |
E | term | Sende SIGTERM an alle Prozesse außer Init |
I | kill | Sende SIGKILL an alle Prozesse außer Init |
L | kill including init | Sende SIGKILL an alle Prozesse, auch an Init. Das kommt einem Ausschalten gleich. Neuere Kernelversionen zeigen einen Stacktrace an. |
C | crashdump | Starte mithilfe von kexec[1] neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung.[2] |
D | Zeige (im Textmodus) alle derzeitigen Locks an. | |
Q | Zeige alle derzeitig laufenden Timer an. | |
P | Zeige den Inhalt der CPU–Register inklusive der Statusregister an. | |
T | Zeige eine Liste aktuell laufender Prozesse an. | |
W | Zeige blockierte Prozesse an, die sich, beispielsweise während Festplattenzugriffen, im „ununterbrechbaren Schlaf“ befinden. | |
N | Hiermit lässt sich die Priorität von Echtzeit–Prozessen herabsetzen. | |
H | help | Gib einen Hilfetext für die Benutzung des Magic–SysRq–Key aus. Auch jede andere nicht belegte Taste gibt diesen Text aus, aber H wird höchstwahrscheinlich auch in Zukunft nicht anderweitig belegt werden und lässt sich aufgrund der Eselsbrücke zu „Hilfe“ bzw. „Help“ gut merken. |
0…9 | set log level | Zahlen von 0 bis 9 bestimmen den Log Level, das heißt die Grenze, ab welcher Wichtigkeit eine Nachricht des Kernels angezeigt wird. Bei 0 werden nur noch kritische Meldungen wie etwa Kernel Panic angezeigt. |
G | kgdb | Schaltet bei neueren Kernelversionen auf die Framebuffer–Textkonsole um und startet den Kernel–Debugger kgdb, falls vorhanden. |
J | "Just thaw it" | Beendet bei neueren Kernelversionen das „Einfrieren“ eines Dateisystems durch die IOCTL–Funktion FIFREEZE. |
V | framebuffer, ETM dump | Schaltet bei neueren Kernelversionen auf die Framebuffer–Textkonsole um. Auf der ARM–Architektur wird der ETM–Puffer angezeigt. |
X | XMON | Bei neueren Kernelversionen für die XMON–Schnittstelle der Power/ Power–PC–Architektur verwendet. |
Y | FTRACE dump | Bei neueren Kernelversionen wird der FTRACE–Puffer angezeigt. |
Z | show global CPU registers | Bei neueren Kernelversionen werden auf der SPARC–64–Architektur die globalen CPU–Register angezeigt. |
Aktivieren und Deaktivieren des Magic SysRq Key
BearbeitenUm SysRq–Aufrufe generell zu deaktivieren, kann man folgendes Shell-Kommando verwenden:
echo 0 > /proc/sys/kernel/sysrq
Und um sie wieder zu aktivieren:
echo 1 > /proc/sys/kernel/sysrq
Dafür sind root-Rechte nötig.
Zugriff aus der Kommandozeile
BearbeitenWenn die S-Abf Taste aus verschiedenen Gründen nicht betätigt werden kann, eine Kommandozeile jedoch zur Verfügung steht, können die "magischen" Kommandos auch mithilfe dieser Kommandozeile ausgeführt werden. Um ein Magic Command auszuführen, wird mithilfe der Standard-Datenströme der Code der gewünschten Taste in den SysRq-Trigger im procfs geschrieben. Für diese Befehle sind aus Sicherheitsgründen root-Rechte nötig. Als Beispiel:
echo b > /proc/sysrq-trigger
Dieser Befehl ist äquivalent zur Kombination Alt + Druck + B, welche den Computer (ohne Rücksicht auf Datenverluste) neu startet.