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.

Wikipedia hat einen Artikel zum Thema:
S-Abf ist rot eingekringelt

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

Bearbeiten

Die 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.

Alphanumerische Tasten und ihre Funktion
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.
09 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

Bearbeiten

Um 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

Bearbeiten

Wenn 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.

Einzelnachweise

Bearbeiten
  1. Readme Datei von kexec
  2. http://www.mjmwired.net/kernel/Documentation/sysrq.txt
Bearbeiten