Linux-Praxisbuch: Problembehandlung beim Neustart

Aus Wikibooks
Zur Navigation springen Zur Suche springen
Wikipedia hat einen Artikel zum Thema:

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.

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 started 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ünschte 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

Weblinks[Bearbeiten]