USB-Reboot-Stick

aus openSUSE, der freien Wissensdatenbank

Inhaltsverzeichnis

Der Rechner hängt, CAPS LOCK reagiert noch, die LED wird noch umgeschaltet

Magic SysRQ, wenn die Tastatur noch arbeitet und der Kernel noch reagiert

Der Rechner hängt, Xorg ist stehen geblieben, eine Anwendung frisst den Speicher auf. Die Gründe sind vielfältig, die zu einem Systemstillstand führen können. Manchmal stößt man beim Herumspielen auch auf einen Bug. Da das Drücken von CAPS-Lock eine Reaktion der Tastatur LED hervorruft, ist die Tastatur also noch erreichbar, der Magic SYSRQ kann benutzt werden.

Meist wird hier vom Profi der "Magic SysRQ" empfohlen, eine oder mehrere Tastenkombination(en), die dem Kernel bestimmte Anweisungen übergibt, um den Rechner z.B. sicher (=mit ordentlich ausgehängtem Dateisystem) herunterfahren oder neu starten zu können. Zur Lektüre sei hier auch auf c't Magazin Ausgabe 26 S. 210 mit einem ausführlichen Artikel zum Thema verwiesen.

Wenn der Rechner hängt und Magic Sys Request aktiviert ist, helfen z.B. folgende Tastenkombinationen:

(Hinweis: "druck" heißt auf manchen Tastaturen auch "print" oder "s-abf", es ist die linke äußere Taste neben "rollen" und "pause")

  • alt druck r => Xorg die Tastatur entziehen
  • alt druck s => Festplattenpuffer zur Vorsicht auf Platte schreiben, hier ein Auge auf die Kontroll-LED werfen
  • alt druck e => Prozesse außer INIT beenden (hiernach etwas abwarten, vielleicht wurde der irre gelaufene Prozess erfolgreich beendet und das System ist wieder "da")
  • alt druck i => Prozesse außer INIT töten (SIGKILL) (auch hier, etwas warten, vielleicht ist der Irrläufer damit erschlagen)

hat bis hierher nichts geholfen, muss der Rechner ggf. neu gestartet werden, wir fahren also mit folgenden Tastenkombinationen fort:

  • alt druck u => Festplatten read-only einhängen, um beim Re-Booten Korruption des Filesystems zu vermeiden
  • alt druck b => Rechner endgültig neu starten

Hiermit ist, sofern die Tastatur und Kernel reagieren können, ein halbwegs sauberes Neustarten möglich. Magic SysRQ muss aktiviert sein in /etc/sysconfig/sysctl ! Vgl. dort den Eintrag ENABLE_SYSRQ danach SuSEconfig aufrufen oder Rechner neu starten.

Sorry, aber auch die Tastatur ist tot, obiger Trick nützt mir nichts, was kann ich nun tun?

Hier kommt nun der "USB-Reboot-Stick" zum Einsatz!

Jeder halbwegs moderne Rechner hat USB und jede halbwegs moderne Linux-Distribution, die nicht älter als wenige Jahre ist, hat UDEV.

UDEV erlaubt, auf das Hinzufügen von Hardware bestimmte Aktionen folgen zu lassen.

Die Idee hinter dem USB-Reboot-Stick:

Die Tastatur ist tot, Magic SysRQ hat keinen Sinn mehr, aber der Kernel läuft evt. noch, evt. ist das System auch noch responsiv.

Warum also nicht einen USB-Stick als "Reboot-Token" benutzen? Der Stick hat eine eindeutige ID, auf die der Rechner reagiert, wird er eingesteckt, führt der Rechner einen Reboot durch und das alles ohne die Tastatur bemühen zu müssen! Wär das nicht praktisch?

Einen Stick als "Reboot-Stick" vorbereiten

Man/frau besorge sich einen alten oder gebrauchten USB-Stick. Kapazität und sonstiges ist vollkommen irrelevant, es geht nur darum, einen eindeutig erkennbaren Token zu besitzen und dafür eignet sich ein alter oder billiger USB-Stick.

Den Stick nun einstecken, als root das Kommando

lsusb -v ausführen, man achte auf die Ausgabe von iSerial. Bei meinem Stick von TDK sieht ein Ausschnitt von lsusb -v z.B. so aus:

 Device Descriptor
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0
 bDeviceProtocol         0
 bMaxPacketSize0        64
 idVendor           0x1d0d
 idProduct          0x0203
 bcdDevice            1.10
 iManufacturer           1 TDK
 iProduct                2 TDK Trans-it
 iSerial                 3 070007851D17065D
 bNumConfigurations      1

Einzig interessant hier ist iSerial 070007851D17065D das notiere man sich. Wir gehen davon aus, dass USB-Sticks auf deinem System als Gerät /dev/sdX erkannt wird, wobei X für a oder einen anderen Buchstaben steht, kontrolliere das ggf. nach dem Einstecken in der Datei /var/log/messages dies sollte aber eigentlich der Normalfall sein.

Eine UDEV-Regel für unseren Reboot-Stick einrichten

Erzeuge mit dem Editor deiner Wahl im Verzeichnis /etc/udev/rules.d eine Datei mit dem Namen 20-stick-reboot.rules und exakt folgendem Inhalt:

BUS=="usb", KERNEL=="sd??", SYSFS{serial}=="070007851D17065D", RUN+="/sbin/reboot"

Die Zahl hinter serial ist die von oben herausgefundene.

So, nun den Stick wieder herausziehen und den Rechner neustarten, nun überwacht der Rechner auf das Einstecken deines "Reboot-Sticks"!

Probiere es einfach mal aus, stecke den USB-Stick ein und warte ein paar Sekunden, der Rechner sollte nun sauber herunterfahren und neu starten!

Wenn im Fehlerfalle weder der erste Punkt, Magic SysRQ , noch der USB-Reboot-Stick funktionieren sollte, dann hängt der Rechner so stark, dass nichts mehr geht, in dem Falle helfen weder SysRQ noch Reboot-Stick, dann hilft nur noch die Reset-Taste.