OpenWrt - Failsafe
Tryb awaryjny dla ruterów z OpenWrt
Ostatnia zmiana: 2013-02-13 15:23

1. Tryb failsafe


Tryb failsafe
Oprogramowanie OpenWrt wykonane jest w pewien modułowy sposób, pozwalający na uruchomienie samego systemu w trybie failsafe. Jest to specjalny tryb "awaryjny", w którym nie są uruchomione prawie żadne usługi poza serwerem telnetu (można dostać się bez hasła do rutera), a interfejs sieciowy ma zawsze ustawiony adres 192.168.1.1. Wszystkie zmiany które zostały wykonane w systemie są ignorowane, dzięki czemu nawet po błędnej konfiguracji interfejsów sieciowych można ruter doprowadzić do stanu używalności.
Ruter uruchomiony jest z partycji squashfs, część z jffs, a więc ta z wykonanymi przez nas zmianami nie jest domyślnie zamontowana. Po wejściu w ten tryb można przywrócić ruter do stanu jak po pierwszym uruchomieniu lub podmontować partycję i poprawić zmiany które wcześniej zostały wykonane.
Większość ruterów wyposażona jest w jakiś przycisk. Wprowadzenie rutera w tryb failsafe oznacza uruchomienie go z wciśniętym dowolnym przyciskiem. Cała procedura wygląda następująco:
  • wyłączyć ruter z zasilania
  • połączyć go kablem z jednego portu LAN do komputera
Wyjątek: TP-LINK TL-MR3420v2 i TL-WR741NDv8 - włączymy do portu WAN

  • ustawić na stałe w komputerze adres IP karty sieciowej na 192.168.1.2 z maską 255.255.255.0. Brama może zostać pusta
  • podłączyć zasilanie do rutera
  • przez kilka sekund naciskać cyklicznie dowolny przycisk na ruterze.
Jedna z diod (różne w zależności od typu rutera) powinna zacząć szybko migać, 3 razy na sekundę. Oznacza to że ruter jest w trybie failsafe. Teraz można:
  • zalogować się przez telnet do rutera (telnet 192.168.1.1)
i
  • polecenie mount_root które zamontuje system plików i można poprawić to co zepsuliśmy w konfiguracji
lub
  • polecenie firstboot które usunie wszystkie zmiany i doprowadzi ruter to stanu świeżo jak po wgraniu firmware. Po tym poleceniu należy bezwzględnie zresetować router - można tak po prostu przez odłączenie zasilania.
Ew można wydać polecenie

    # mtd -r erase rootfs_data 

które powinno mieć taki sam skutek - usunięcie całość zmian ze flash i przywrócenie routera do pierwotnego stanu.

Można też wgrać nowe oprogramowanie - potrzebujemy serwera http lub ftp na komputerze i połączamy pod niego router. Na serwerze ftp/http umieszczamy plik z firmware pod nazwą np. a.bin. Następnie logujemy się do routera przez telnet i wydajemy polecenia:

    # cd /tmp
    # wget ftp://ip-komputera/a.bin
    # sysupgrade -n a.bin


Jeżeli z jakiegoś powodu powyższe polecenia nie działają można to wykonać "ręcznie" wydając polecenie:

    # mount -t jffs2 /dev/mtdblock3 /overlay

które zamontuje system plików i można poprawić to co zepsuliśmy w konfiguracji. W katalogu /overlay będą znajdowały się wszystkie pliki jakie zostały zmienione w systemie. Wystarczy zmodyfikować to co zostało zmienione i zrestartować router.
Jeżeli chcemy przywrócić ruter do stanu jak po flashowaniu należy usunąć wszystkie pliki:

    # rm -rf /overlay/*


Urządzenie /dev/mtdblock3 może być różne w zależności o typu routera (jak powinna być oznaczona partycja można zobaczyć po wydaniu polecenia cat /proc/mtd).