USB-Flashspeicher im EdgeRouter ersetzen
Diese Anleitung wurde getestet mit einem Ubiquiti EdgeMax - EdgeRouter PoE - ERPoe-5
Vorbereitung und Voraussetzungen:
-
kompatibler USB Stick (ich habe den Kingston DataTraveler DTSE9H 8GB, ca. 8€, verwendet)
-
muss recht klein sein
-
Liste von mgölichen Alternativen: https://community.ubnt.com/t5/EdgeRouter/List-of-Compatible-USB-drives/m-p/1185171/highlight/true#M57699
-
-
Runterladen EdgeMax Rescue Kit: http://packages.vyos.net/tools/emrk/0.9c/emrk-0.9c.bin
-
Runterladen aktuelle EdgeRouter Firmware: https://www.ui.com/download/edgemax (ich habe es mit Version ER-e100.v2.0.0.5155284 getestet)
-
Webserver, z.B. über das SimpleHTTP Python Modul
-
Minicom für die serielle Kommunikation
-
Serielles Kabel RJ-45 für den Konsolenport (das hier sollte funktionieren: https://www.amazon.de/Unilike-Cisco-Konsolenkabel-Ftdi-Chip-RJ45-Kabel-Windows/dp/B01NGYKRCS/)
Schritte:
-
USB Stick mit FAT32 formatieren und mounten
-
Die Datei emrk-0.9c.bin auf den Stick kopieren, dann unmounten
-
Die 3 kleinen Schrauben des EdgeRouter Gehäuses lösen und den Deckel runterschieben
-
Den alten USB-Stick mit dem Neuen ersetzen
-
Serielle Konsole anschließen und minicom starten
-
Port /dev/ttyUSB0
-
Baud 115200
-
8 Bits
-
Parität aus (N)
-
Stopbits 1
-
Flusskontrolle aus (rtscts + xonxoff)
-
-
EdgeRouter anstecken und Booten lassen, es sollte folgender Prompt zu sehen sein „
Octeon ubnt_e100#
“ -
Bei den Bootmeldungen den USB Teil kontrollieren, sollten dort irgendwelche Warnungen auftauchen könnte der Stick nicht ordentlich funktionieren
-
Mit „
fatload usb 0 $loadaddr emrk-0.9c.bin
“ das Rescue Kit laden -
und mit „
bootoctlinux $loadaddr
“ booten -
Die Warnung mit „
yes
“ bestätigen und das Netzwerk konfigurieren (entweder DHCP oder statisch möglich, ich nutzte die statische Variante, da der EdgeRouter bei mir DHCP macht) -
Den EdgeRouter via LAN mit dem Computer verbinden, auf dem die Downloads liegen, und via Ping die konfigurierte IP testen
-
Die heruntergeladene Firmware via HTTP verfügbar machen, am einfachsten geht das mit Python. Auf dem PC eine Shell öffnen und in den Ordner mit der heruntergeladenen Firmware wechseln. Über „
python -m SimpleHTTPServer
“ den Webserver starten (default ist Port 8000) -
Das Script „
emrk-reinstall
“ starten, die Abfrage mit „yes“ bestätigen. Das Script bereitet nun den USB-Stick für die EdgeOS Firmware vor -
Als image URL nehmen wir unseren Webserver mit der Firmware, z.B. „
http://192.168.1.10:8000/ER-e100.v2.0.0.5155284.tar
“ -
Die Firmware wird nun auf den Stick kopiert und entpackt. Am Ende sollte „Installation finished, Please reboot your router“ erscheinen. Via reboot neu starten und den Bootvorgang auf der Konsole beobachten
-
Wenn das System vollständig hochgefahren ist, kann man sich via serieller Konsole oder SSH (192.168.1.1) einloggen. Standarbenutzer und -passwort ist: ubnt
-
Von der alten Konfiguration hat man hoffentlich immer ein aktuelles Backup. Dieses kann mit SCP auf den Router kopiert werden („
scp config.boot ubnt@192.168.1.1:
“). Auf dem Router dann über „configure
“ in den Konfigurationsmodus wechseln und die Datei laden: „load /home/ubnt/config.boot
“. Via „commit
“ kann die Konfiguration angewendet werden. Dabei sieht man dann auch gleich eventuelle Fehler, z.B. fehlende SSL-Zertifikate für VPN-Verbindungen. Eventuell vorhandene Konfigurationen und Scripte in/config/user-data
oder/config/scripts
müssen ebenfalls aus einem Backup wiederhergestellt werden
Hier sind noch zwei weitere Varianten wie man die Firmware auf einen neuen USB-Stick bekommen kann: