Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
de:doc:howto:generic.failsafe [2016/12/28 11:26] – firstboot (bzw. jffs2reset) benötigt den Parameter "y" zur Bestätigung mhaendlerde:doc:howto:generic.failsafe [2018/03/03 20:55] – ↷ Links adapted because of a move operation bobafetthotmail
Line 1: Line 1:
 +====== 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.
 +
 +| {{:meta:icons:tango:48px-dialog-warning.svg.png?nolink}} | Der OpenWrt Failsafe-Modus ist nur in Verbindung mit **<color green>SquashFS-Images</color>** verfügbar. Siehe [[docs:techref:flash.layout]] für eine Erklärung. |
 +| {{:meta:icons:tango:48px-dialog-warning.svg.png?nolink}} | Zum Auslösen muss ihr Gerät einen **programmierbaren Hardware-Taster** aufweisen. |
 +
 +
 +===== Auslösen via Hardware Taster (übliche Methode) =====
 +  - 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
 +  - Starten Sie ihr Gerät neu indem Sie den Strom unterbrechen
 +  - 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. [[toh/d-link/dir-300#with.manual.step.by.step.guide|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
 +  - Sie können sich nun über Telnet mit ''192.168.1.1'' verbinden -- es erscheint sofort eine root Shell (ohne Passworteingabe)
 +  - [[#Im Failsafe Modus]]
 +
 +===== Auslösen via Tastenkombination in der Seriellen Konsole =====
 +  - Trenn den Router vom Stromnetz.
 +  - Schließ dein serielles Kabel an den Router an
 +  - Verbinde den LAN1 Port des Routers direkt mit deinem PC.
 +  - 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.
 +  - Schließ den Router ans Stromnetz.
 +  - Starte dein Terminalprogramm
 +  - Warte bis die folgende Nachricht erscheint: Press the [f] key and hit [enter] to enter failsafe mode
 +  - Drück nun innerhalb von 2 Sekunden "f" und anschließend die Enter-Taste
 +  - 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: <code bash>
 +mount_root
 +</code>
 +  * Falls du dein Passwort vergessen hast, erstelle ein neues mit:<code>passwd</code>
 +  * Falls du die IP des Routers vergessen hast, kannst du sie ermitteln mit: <code>uci get network.lan.ipaddr</code>
 +  * Falls du den gesamten Speicherplatz der JFFS2-Partition belegt hast, lösch die komplette JFFS2-Partition mit:<code>mtd -r erase rootfs_data</code>
 +  * Oder ruf das Skript ''[[https://dev.openwrt.org/browser/trunk/package/base-files/files/sbin/firstboot|firstboot]]'' auf - alle Einstellungen werden zurückgesetzt: <code>firstboot -y</code>
 +
 +Wenn alle Arbeiten im Failsafe-Modus erledigt sind, ruf <code>reboot -f</code> 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 =====
 +
 +| {{:meta:icons:tango:dialog-information.png?nolink}} | **<color green>SquashFS-Images</color>** haben sowohl eine (grundsätzlich nicht beschreibbare) [[wpde>SquashFS]]-Partition als auch eine [[wp>JFFS2]]-Partition.\\ **<color red>JFFS2-Images</color>** fehlt diese SquashFS-Partition und damit eine Möglichkeit, irgendwas vor dem Benutzer (also Ihnen) zu schützen ;-) \\ Anschaulich ist das im Artikel [[docs:techref:flash.layout|Flash Layout]] darlegt.\\ Wenn OpenWrt im Failsafe-Modus gestartet wird, werden sämtliche, nach der [[de:doc:howto:generic.flashing|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). |
 +
 +  * Der Artikel [[docs:techref:process.boot]] hilft bei Verständnis, wann ''failsafe'' aufgerufen wird.
 +  * Das Skript ''[[https://dev.openwrt.org/browser/trunk/package/base-files/files/sbin/mount_root|mount_root]]''
 +  * die Länge des Zeitfensters: https://forum.openwrt.org/viewtopic.php?pid=173503#p173503
 +
 +==== Wann hilft der OpenWrt Failsafe-Modus? ====
 +Der Failsafe-Modus hilft also bei grundsätzlich allen Problemen mit der [[docs:techref:filesystems#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.
 +  * <color red>das Gerät muss einen **einstellbaren Hardware Taster** haben</color>, d.h. beim Drücken und beim Loslassen wird ein [[wpde>Unterbrechungsanforderung|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 [[de:doc:howto:generic.flashing|flashen]]! Bei solchen Problemen könnte Ihnen der Artikel [[docs:guide-user:troubleshooting:generic.debrick]] weiterhelfen.
  
  • Last modified: 2019/10/22 14:19
  • by pearmint