OpenWrt Failsafe-Modus

Der in OpenWrt eingebaute Failsafe-Modus gibt Ihnen eine einfache und bequeme Möglichkeit wieder Zugriff auf ihr OpenWrt-System zu erlangen.

Der OpenWrt Failsafe-Modus ist nur in Verbindung mit SquashFS-Images verfügbar.
Zum Auslösen muss ihr Gerät einen einstellbaren Hardware-Taster aufweisen.

Auslösen via Hardware Taster (übliche Methode)

  1. Setzen Sie die IP Adresse Ihres Computers auf 192.168.1.2 und die Subnetzmaske auf 255.255.255.0, weil im Failsafe-Modus kein DHCP-Server läuft und OpenWrt somit keine IPs vergibt
  2. Starten Sie ihr Gerät neu indem Sie den Strom unterbrechen
  3. Lösen Sie nun den Failsafe-Modus während des Bootvorganges aus, indem Sie im richtigen Zeitfenster den Hardware-Taster einmalig betätigen
    • das Zeitfenster ist 2 Sekunden lang beginnt aber je nach Gerät bei so 6 Sekunden bis teils 60 Sekunden und ganz selten noch länger (z.B. DIR-300 A) nachdem das Gerät am Stromkreis angeschlossen worden ist.
    • wenn Sie den Beginn des Zeitfensters für Ihr Gerät nicht kennen, drücken Sie einfach wiederholt den Hardware-Taster so lange, bis Sie sehen, dass OpenWrt im Failsafe-Modus gebootet hat. Keine Angst, es passiert nichts, wenn sie den Taster zum "falschen Zeitpunkt" drücken. ;-) Es ist falsch den Taster gedrückt zu halten! Da lediglich beim Drücken einmalig und beim Loslassen wieder einmalig ein IRQ gesendet wird. Um im Zeitfenster den IRQ zu senden, müssen Sie also wiederholt drücken!
    • dass OpenWrt in den Failsafe-Modus gebootet hat, lässt sich z.B. daran erkennen, dass sie System-LED schnell blinkt oder eben daran, dass 192.168.1.1 pingbar ist
  4. Sie können sich nun über Telnet mit 192.168.1.1 verbinden – es erscheint sofort eine root Shell (ohne Passworteingabe)

Auslösen via Tastenkombination in der Seriellen Konsole

  1. Trenn den Router vom Stromnetz.
  2. Schließ dein serielles Kabel an den Router an
  3. Verbinde den LAN1 Port des Routers direkt mit deinem PC.
  4. Setz die IP deines PCs statisch auf eine Adresse zwischen 192.168.1.2 und 192.168.1.254 (z.B. 192.168.1.2), Gateway und DNS werden nicht benötigt.
  5. Schließ den Router ans Stromnetz.
  6. Starte dein Terminalprogramm
  7. Warte bis die folgende Nachricht erscheint: Press the [f] key and hit [enter] to enter failsafe mode
  8. Drück nun innerhalb von 2 Sekunden "f" und anschließend die Enter-Taste
  9. du kannst dich nun auch über Telnet mit dem Router an der Adresse 192.168.1.1 anmelden (kein Benutzername und Passwort nötig)

Im Failsafe Modus

Im Failsafe Modus besteht das OpenWrt-root-Dateisystem nicht aus dem mini-fo-Dateisystem, welches eine Kombination von SquashFS- und JFFS2-Dateisystem ist, sondern lediglich aus der SquashFS-Partition. Die JFFS2-Partition wird gar nicht eingehängt. Um nun Reparaturen auf der JFFS2-Partition vornehmen zu können, müssen Sie diese zunächst beschreibbar einhängen. Am einfachsten geht das mit Hilfe eines Skriptes:

mount_root

  • Falls du dein Passwort vergessen hast, erstelle ein neues mit:
    passwd
  • Falls du die IP des Routers vergessen hast, kannst du sie ermitteln mit:
    uci get network.lan.ipaddr
  • Falls du den gesamten Speicherplatz der JFFS2-Partition belegt hast, lösch die komplette JFFS2-Partition mit:
    mtd -r erase rootfs_data
  • Oder ruf das Skript firstboot auf - alle Einstellungen werden zurückgesetzt:
    firstboot

Wenn alle Arbeiten im Failsafe-Modus erledigt sind, ruf

reboot -f
auf um den Router neu zu starten (das übliche /sbin/reboot funktioniert nicht, da init nicht läuft). Oder schalt den Router aus und wieder an.

Erklärungen

SquashFS-Images haben sowohl eine (grundsätzlich nicht beschreibbare) SquashFS-Partition als auch eine JFFS2-Partition.
JFFS2-Images fehlt diese SquashFS-Partition und damit eine Möglichkeit, irgendwas vor dem Benutzer (also Ihnen) zu schützen ;-)
Anschaulich ist das im Artikel Flash Layout darlegt.
Wenn OpenWrt im Failsafe-Modus gestartet wird, werden sämtliche, nach der Installation selbst vorgenommenen Einstellungen (diese befinden sich gänzlich auf der JFFS2-Partition, da lediglich diese beschreibbar ist), umgangen und OpenWrt startet mit wenigen Default-Einstellungen (diese befinden sich auf der SquashFS-Partition und dadurch vor Manipulation geschützt).

Wann hilft der OpenWrt Failsafe-Modus?

Der Failsafe-Modus hilft also bei grundsätzlich allen Problemen mit der JFFS2-Partition, z.B.

  • falls Sie ihr Passwort vergessen haben
  • wenn Sie sich durch ungeschickte Firewall-Regeln ausgeschlossen haben
  • wenn Sie Start-Skripte verbockt haben,
  • wenn Sie versucht haben, ein zu großes Paket zu installieren und die JFFS2-Partition übergelaufen ist
  • wenn Sie unpassende Kernel-Module installiert haben und das System nicht mehr richtig startet
  • usw.
  • das Gerät muss einen einstellbaren Hardware Taster haben, d.h. beim Drücken und beim Loslassen wird ein IRQ gesendet. Das ist häufig der Fall, doch kommt es selten vor, dass die Reset-Taste keinen IRQ sendet, sondern den Strom unterbricht.
  • alternativ kann man sich über den seriellen Port auf der Platine mit einem Terminalprogramm verbinden

Wann hilft der OpenWrt Failsafe-Modus nicht?

Der Failsafe-Modus benötigt ein funktionierendes OpenWrt-Betriebsystem, d.h. er hilft nicht, wenn

  • der Bootloader fehlerhaft ist
  • der Linux-Kernel fehlerhaft ist
  • die SquashFS-Partition fehlerhaft ist

Fehler auf diesen Flash-Bereichen können jedoch im normalen Betrieb nicht vorkommen, sondern lediglich beim flashen! Bei solchen Problemen könnte Ihnen der Artikel generic.debrick weiterhelfen.

Back to top

de/doc/howto/generic.failsafe.txt · Last modified: 2012/07/28 13:29 (external edit)