Tryb awaryjny dla routerów z OpenWrt
Ostatnia zmiana: 2020-02-02 14:39

Tryb failsafe

Oprogramowanie OpenWrt wykonane jest w pewien modułowy sposób, pozwalający na uruchomienie samego systemu w tzw. trybie failsafe. Jest to specjalny tryb "awaryjny", w którym nie są uruchomione prawie żadne usługi poza serwerem telnetu/ssh (zależy od wydania - można dostać się bez hasła do routera nawet jak było ustawione), 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 router doprowadzić do stanu używalności.

W tym trybie router uruchamiany jest z partycji squashfs zaś część z jffs, ta przechowujące zmiany wykonane w systemie nie jest domyślnie zamontowana. Po wejściu w ten tryb można przywrócić router do stanu jak po pierwszym uruchomieniu lub podmontować partycję i poprawić zmiany które wcześniej zostały wykonane.
Większość routerów wyposażona jest w jakiś przycisk. Wprowadzenie routera w tryb failsafe oznacza uruchomienie go i wciśnięcie dowolnego przycisku w określonym momencie. Cała procedura wygląda następująco:

  • należy wyłączyć router z zasilania
  • połączyć go kablem z jednego portu LAN do komputera
Wyjątek: Niektóre urządzenia np. TP-LINK TL-MR3420v2 i TL-WR741NDv8 - należy podłączyć do portu WAN. Zależy to też od wydania OpenWrt, inaczej może być w Attitude Adjustment inaczej w Barrier Breaker i późniejszych. Jeżeli router nie będzie chciał się zgłosić na porcie LAN należy przełączyć kabel do WAN i sprawdzić.

  • 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 routera
  • router zacznie migać jedną z diod LED
  • przez kilka sekund naciskać cyklicznie dowolny przycisk na routerze.
Jedna z diod (różne w zależności od typu routera) powinna zacząć szybko migać, 3 razy na sekundę. Oznacza to że router jest w trybie failsafe. Teraz można zalogować się przez do routera i wykonać jedną z przedstawionych niżej operacji.

- w starszych wydaniach OpenWrt (wydanych przez październikiem 2017r): logujemy się telnetem (w putty: protokół telnet, ip: 192.168.1.1, brak hasła)
- w nowszych wydaniach OpenWrt (wydanych po październiku 2017r): logujemy się ssh (w putty: protokół ssh, ip: 192.168.1.1, użytkownik root, brak hasła)
- w Gargoyle logujemy się ssh (w putty: protokół ssh, ip: 192.168.1.1, użytkownik root, hasło: password)
- w LEDE: logujemy się ssh (w putty: protokół ssh, ip: 192.168.1.1, użytkownik root, brak hasła)

Jeżeli obraz nie pochodzi z oficjalnego wydania i miał wcześniej ustawione hasło, to może być konieczne podane tego domyślnego hasła. To samo może dotyczyć adresu IP.

Wyczyszczenie konfiguracji

Router po restarcie będzie wyglądał jak świeżo po wgraniu nowego firmware - będzie miał domyślną konfigurację.


    # firstboot -y
    # reboot -f

Istnieje także możliwość skasowania całej partycji ze zmianami:


    # mtd -r erase rootfs_data
    # reboot -f

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

Wgranie nowego oprogramowania

Potrzebujemy serwera www na komputerze czy innym urządzeniu w sieci lokalnej; połączamy pod niego router jednym z portów LAN. Na serwerze http umieszczamy plik z firmware pod nazwą np. a.bin. Następnie wykonujemy polecenia:


    # wget http://192.168.1.x/a.bin -O /tmp/a.bin
    # sysupgrade -n /tmp/a.bin

gdzie 192.168.1.x to adres IP naszego komputera lub serwera gdzie umieściliśmy plik.

Zmiana ustawień w systemie plików

Należy najpierw wydać polecenie które zamontuje zmiany w /overlay:


    # mount_root

Następnie można zmienić to co zepsuliśmy w konfiguracji. Można także ustawić nowe hasło:


    # passwd

lub zmienić adres ip na lan:


    # uci set network.lan.proto=static
    # uci set network.lan.ipaddr=192.168.1.1
    # uci commit network


Jeżeli z jakiegoś powodu mount_root nie działa można "ręcznie" zamontować partycję wydając polecenie:


    # mount -t jffs2 /dev/mtdblock3 /overlay

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. Urządzenie /dev/mtdblock3 może być różne w zależności od typu routera (jak oznaczona jest partycja można zobaczyć po wydaniu polecenia cat /proc/mtd - szukamy rootfs_data).