Firmware Recovery - Es geht nicht immer so, wie QNAP sagt

[EPILOG]


Passend zu der Zeit wo ich mich gerade ein bisschen intensiver mit dem DOM beschäftige und gerade noch an meinem zweiten Artikel arbeite flattert ein neuer Thread rein:

Ein User kennt die Logindaten seines Systems nicht mehr, er möchte ein Firmware Recovery durchführen.

Warum? Keine Ahnung! Da hat jemand nicht ganz verstanden was dabei passiert oder es falsch interpretiert... und dann hat das Recovery nichtmal funktioniert...


Dazu möchte ich hier ein paar Worte verlieren - über DOM und Recovery -, welche bisher über meine anderen beiden Artikel verteilt sind.

Außerdem möchte ich kurz ein paar Stolpersteine bei der Recovery aus dem Weg räumen, denn die offiziellen Anleitungen von QNAP taugen unter Umständen gar nichts oder bringen einen bei diesem "heiklen" Unterfangen zur Verzweiflung.


Hätte ich vorher gewusst, dass das hier nicht ein "Ein-Artikel-Blog" wird, hätte ich das Ganze sicherlich anders aufgezogen.


[DAS RECOVERY IMAGE - UNTERSCHIED ZUM FW-UPDATE]


Bei einem normalen Firmware Update werden die Daten des Betriebsystems QTS auch auf den eingesetzten HDD, von denen das betriebsfähige QTS geladen wird, aktualisiert oder ergänzt.

Dies geschieht beim Neustart, nachdem die Daten zunächst auf den DOM geschrieben wurden. Der DOM ist ein integrierter Speicher, von dem der QNAP gebootet wird.

Darauf befinden sich unter anderem - je nach System - der Bootloader sowie das "Dual Boot" QTS auf jeweils unterschiedlichen Partitionen.

Der Bootloader wird beim normalen Firmware Update in der Regel nicht verändert und die Partitionen für das "Dual Boot" werden einzeln beschrieben, sodass im Fehlerfall ein funktionierendes Betriebssystem bestehen bleibt.

Das auf dem DOM befindliche QTS wird benötigt um die Ersteinrichtung zu starten und QTS auf den eingesetzten Laufwerken zu installieren, auch wird das Laden des QTS auf den HDD vom DOM eingeleitet.

Weitere Daten wie z.B. Einstellungen welche im QTS getroffen werden, sind nicht auf dem DOM abgelegt, zumindest nicht in der Form, dass die Einstellungen von dort aus geladen werden.


Bei einem Firmware Recovery hingegen werden nicht nur Daten aktualisiert, sondern der komplette DOM wird samt Partitionsinformationen neu geschrieben, also auch der Bootloader.

Dabei wird das initiale "Fabriks-QTS" installiert, mit dem es nicht möglich ist den QNAP mit Datenträgern in Betrieb zu nehmen. Es ist also zwingend erforderlich anschließend eine betriebsfähige Firmware zu installieren. Außerdem werden bei einer Recovery keine Daten auf den installierten HDD geändert, denn diese werden zu Beginn der Prozedur getrennt.


[GRÜNDE FÜR EIN RECOVERY UND WOBEI ES NICHT HILFT]


Ein Recovery kann nützlich sein, wenn ein Firmwareupdate fehlschlägt und das System anschließend nicht mehr nutzbar ist.

Dies kann dadurch zustande kommen, dass Daten fehlerhaft sind oder gar die logischen Laufwerksinformationen des DOM "zerschossen" sind.

Grundsätzlich kann ein Recovery also Abhilfe schaffen, wenn es Probleme beim Booten des QNAP gibt.


Sollte man aus irgendwelchen Gründen auf eine ältere QTS Version downgraden wollen, obwohl dieses Downgrade von der installierten Version nicht unterstützt wird, kann man dies ebenfalls mit einer Recovery einleiten, allerdings müssen dazu im Anschluss auch die eingesetzten Laufwerke mit dem QTS gelöscht werden um die vom Downgrade nicht unterstützte Version installieren zu können.


Mehr Gründe für ein Recovery fallen mir dann auch nicht ein, was nicht bedeutet dass es keine weiteren gibt.


Da beim Recovery ja nur der DOM verändert wird, sich hier aber keinerlei Einstellungen oder Daten befinden, kann man es nicht anwenden um Passwörter oder andere Einstellungen zurückzusetzen.

Auch ist schwer vorstellbar, dass es bei Funktionsstörungen von Apps oder dem vollständig geladenen QTS einen Nutzen bringen kann, denn auch hier bleibt alles unberührt.


[DURCHFÜHRUNG EINER FW RECOVERY]

Im Nachfolgenden wird das Verfahren sowie Änderungen gegenüber der offiziellen Anleitung für x86-based NAS beschrieben, was nicht bedeutet, dass es nicht auch (stellenweise) für andere Geräte funktioniert. Vor Anwendung sollte in allen Fällen in der offiziellen Anleitung geprüft werden, ob die Verfahren deckungsgleich sind; die nachfolgende Beschreibung ersetzt nicht die offizielle Anleitung des jeweiligen Gerätetyps, sondern zeigt einen Alternativweg auf, falls die offizielle Anleitung nicht funktioniert. Änderungen gegenüber der offiziellen Anleitung habe ich kommentiert und begründet. Einzelne Schritte wie die Navigation durch das BIOS sind unter Umständen nicht bis ins kleinste Detail beschrieben.

Hier die offizielle Anleitung


Vor dem ersten Handschlag ist es insbesondere für diejenigen, die bislang wenig Berührungspunke mit der Linux Shell hatten ratsam,

sich zunächst alles durchzulesen, insbesondere den letzten Abschnitt "Fehler und Probleme"


Vorbereitung 1 - Grundlagen

  1. Hardware zusammenstellen, wir brauchen:
    - Einen Monitor passend für die VGA oder HDMI Schnittstelle des QNAP.
    - Eine USB Tastatur und (optional) Maus.
    - Zwei USB Sticks mit mindestens 1GB Speicher, einer davon wird formatiert! Externe HDDs tun es auch.
    Möglicherweise funktioniert das auch mit nur einem Stick, ich verwende allerdings zwei.

    - Einen PC, Mac, was auch immer u.a. um erforderliche Daten herunterzuladen und auf den USB Stick zu übertragen.
    - Qfinder-Installation auf dem besagten PC.
    - Optional ein USB Hub, falls der QNAP nicht genügend USB Anschlüsse (vorne + hinten) bereitstellt.
    - Optional, sofern der QNAP keine Video-Schnittstelle besitzt, das entsprechende Konsolenkabel sowie ggf. RS232 Adapter. Info siehe offizielle Anleitung.
    Auf die Schritte hierbei zur Konsole zu gelangen gehe ich nicht weiter ein, die restlichen Schritte könnten identisch sein.
  2. Daten und Konfig sichern!
    Auch wenn die Daten auf den HDD nicht berührt werden, sollten diese für den Fall von unerwarteten Fehlern bei der späteren Wiederinbetriebnahme gesichert sein!
  3. Prüfen, welche QTS Version aktuell installiert ist. => merken oder aufschreiben!
  4. QNAP herunterfahren.
  5. HDD aus den Schächten entnehmen/ trennen, Steckplatz merken oder markieren.
  6. Monitor und Eingabegeräte (alternativ Konsolenkabel) anschließen.
  7. Ältere verfügbare Firmwareversionen für das Gerät herunterladen, um zu große Versionssprünge zu vermeiden (z.B. von der initialen v 1.x.x auf 4.4.x). Dateien auf dem PC entpacken.
    Ich persönlich halte das an dieser Stelle für optional. Wenn man das QTS samt Einstellungen auf den HDD aktualisiert, macht das durchaus Sinn;
    In diesem Fall allerdings ersetzen wir lediglich Daten auf dem DOM, sodass durch Versionssprünge m.E. keine Probleme zu befürchten sind.

Vorbereitung 2 - USB Stick (am PC)

  1. USB Stick einstecken (wird formatiert)
  2. Rufus herunterladen und starten, es kann die portable Version verwendet werden.
    Die ofizielle Anleitung weicht bereits hier ab, Grund dafür ist der nächste Schritt...
  3. Xubuntu herunterladen, ich habe die 64bit Version verwendet.
    Die ofizielle Anleitung verlangt hier noch nach Linux DSL, welches jedoch so veraltet ist, dass bei neueren Geräten die Hardwareerkennung fehlschlägt und es somit unbrauchbar ist.
  4. In Rufus den USB Stick als Laufwerk (ganz oben) und das heruntergeladene Xubuntu als Image (rechts "AUSWAHL") wählen. Auf "START" klicken.
  5. Wenn der Vorgang abgeschlossen ist kann Rufus beendet und der Stick entnommen werden, wir nennen ihn ab jetzt "Xubuntu-Stick".
  6. Den anderen USB Stick anschließen.
  7. Initiales Firmware Image für das entsprechende Modell herunterladen.
  8. Heruntergeladenes Image umbenennen in "dom.img"
    Das macht die Eingabe später einfacher, mehr steckt nicht dahinter.
  9. Die Datei dom.img auf den Stick in das root Verzeichnis kopieren.
    Das macht auch nur die späteren Eingaben einfacher, theoretisch ist das Verzeichnis egal, die späteren Befehle können dann aber nicht 1 zu 1 übernommen werden.
  10. USB Stick entnehmen, wir nennen ihn fortan "DOM-Stick".

Durchführung der Recovery - QNAP von USB in Xubuntu booten

  1. "Xubuntu Stick" am QNAP einstecken.
  2. QNAP einschalten, ein eingeschalteter Monitor auf dem richtigen Eingang wäre von Vorteil ;)
  3. Taste "ENTF" / "DEL" ein paar Mal betätigen um ins Bios zu gelangen.
    Die offizielle Anleitung spricht von "F11" um ins Bootmenu zu gelangen, damit hatte ich bislang aber keinen Erfolg, daher gehe ich den Weg über das BIOS.
  4. Im BIOS zur Bootorder navigieren, den ersten Eintrag (vermutlich "USB DISK MODULE PMAP") wählen und "ENTER" betäigen. Es folgt die Auswahl des Datenträgers.
    Hier wählen wir unseren USB Stick, die Bezeichnung kann variieren. Er sollte einmal mit dem Zusatz "UEFI" und einmal ohne auftauchen. Wir wählen den ohne UEFI.
  5. Wir navigieren nun zum Speichern und Beenden vom BIOS, bestätigen dass die Daten gespeichert werden sollen und es erfolgt ein Neustart.
  6. Der QNAP sollte nun Xubuntu laden, wenn nicht vorherigen Schritt prüfen und ggf. anderen Datenträger wählen.

Durchführung der Recovery - Den DOM neu beschreiben

  1. Nachdem Xubuntu geladen wurde, wählen wir die Live Version aus.
  2. Nachdem diese nun vollständig in den RAM geladen wurde und wir den Desktop sehen, machen wir an eine freie Stelle einen Rechtsklick und wählen "open terminal here".
    Wichtig ist, dass wir das Terminal / die Shell starten, wie man das anstellt ist unrelevant, irgendwie wird es auch ohne Maus gehen...
  3. Das Terminal startet und wir erteilen uns erstmal superuser Rechte mit dem Befehl sudo su , natürlich gefolgt von "ENTER"
  4. Nun gilt es festzustellen, welcher Datenträger der DOM ist. Dies machen wir mit fdisk -l (kleines L). Es folgt eine Auflistung der Datenträger.
    Der DOM hat bei älteren Modellen eine Kapazität von 128 MB, bei neueren Modellen 512 MB. Ich habe in offiziellen Quellen auch schon von 4 GB gelesen, aber ob das stimmt?!
    Die Bezeichnung des DOM lautet entweder "sdb" oder "hda". Außerdem hat der DOM (im Normalfall) 5 oder 6 Partitionen, z.B. sdb1 - sdb6 darunter aufgelistet.
    Ein Beispiel: fdisk-l.PNG
    Der Screenshot stammt aus SSH, nicht aus dem Terminal, daher kann es ein paar Abweichungen geben, außerdem wird die Größe der Datenträger hier in MiB statt MB angegeben, also nicht beirren lassen.
  5. Im Beispiel haben wir "sdb" als DOM identifiziert, es kann aber auch hda sein! Bei den weiteren Aktionen verwende ich "xxx" als alias für "sdb" oder "hda", welche entsprechend ersetzt werden müssen.
  6. Nun stecken wir den DOM-Stick ein, dieser wird direkt als /cdrom gemountet, sodass wir nicht manuell mounten müssen.
    Der "Xubuntu-Stick" muss gesteckt bleiben!
  7. Mit cd /cdrom wechseln wir auf den DOM-Stick...
  8. ...und starten das Recovery mit cp dom.img /dev/xxx . Die schicke Farbe erinnert nochmal daran, dass wir xxx ersetzen müssen.
  9. Das dauert eine kurze Zeit, in der man durch die leeren HDD-Slots des QNAP die LED am DOM wild blinken sieht.
    Der Vorgang ist abgeschlossen wenn xubuntu@xubuntu:/cdrom$ am Ende des Terminals steht und es wieder für Eingaben bereit ist.
  10. Terminal schließen und oben links über das Startmenu das Gerät herunterfahren. Auf den Bildschirm achten, denn man wird kurz darauf aufgefordert, den Xubuntu Stick zu entfernen und ENTER zu betätigen.
  11. Das DOM-Recovery ist damit abgeschlossen, es gibt aber noch ein paar Arbeiten die anschließend durchgeführt werden müssen, damit ein Firmware-Recovery daraus wird.

Durchführung der Recovery - Die Firmware aktualisieren

  1. USB Sticks entfernen, diese benötigen wir nicht mehr.
  2. Gerät einschalten, und wieder mit "ENTF" / "DEL" das BIOS aufrufen. Hier navigieren wir wieder zur Boot Ordner und stellen den Standard ein, der sollte "USB DISK MODULE PMAP" heißen. Einstellungen speichern und BIOS beenden.
    Wir wollen ja schließlich nicht, dass irgendwann versehentlich von einem bootfähigen USB Datenträger gebootet wird, falls einer gesteckt ist.
  3. Der QNAP sollte nun booten, natürlich geht es hier nicht sehr weit, denn die initiale Firmware die momentan aufgespielt ist kann noch nicht viel.
  4. Wir müssen zunächst die Firmware des DOM aktualisieren, die HDD sind dabei nicht gesteckt!
    Am einfachsten erledigen wir das über den Qfinder, denn die IP des NAS kommt nun vom DHCP, sofern einer vorhanden ist. Die IP Adresse des QNAP hat sich also (unter Umständen) geändert.
  5. Wenn der Qfinder das NAS gefunden hat, gehen wir mit einem Rechtsklick auf Firmware aktualisieren und wählen aus, dass wir das manuell über ein Firmwareimage machen.
    Anschließend wählen wir die niedrigste Version, die für das Gerät gefunden und heruntergeladen wurde. Das Gerät startet nach Abschluss neu.
  6. Wir wiederholen Schritt 5 so lange mit der jeweils niedrigsten, nicht installierten Version die wir vorliegen haben.
    Achtung! Nur bis zu jener Version aktualisieren, welche auf den HDD installiert ist. Das wurde unter Vorbereitung 1, Schritt 3 geprüft.
  7. Nachdem die aktuell auf den HDD installierte Firmware auch auf dem DOM installiert wurde und das Gerät soweit hochgefahren ist, fahren wir es mit dem Qfinder herunter.
  8. Die HDD können nun wieder in der ursprünglichen Reihenfolge eingesetzt werden.
  9. Gerät einschalten.
    Auf dem Bildschirm sollte kurz darauf "Unkompressing Linux" erscheinen und sobald alles geladen wurde die Oberfläche von QTS bzw. die Shell.
    (Das sollte übrigens auch bei jedem der vorherigen Neustarts sichtbar sein)
  10. QTS sollte nun korrekt geladen werden, Monitor, Tastatur und alles kann abgeklemmt werden.
    Die Firmware Recovery ist vollbracht.

[PROBLEME UND FEHLER BEI DER RECOVERY]


An dieser Stelle wird es viel mehr mögliche Fehler und Probleme geben als ich mir vorstellen kann...

Anbei eine Auswahl mir bekannter oder gut vorstellbarer Fehler, ansonsten gibt es ja noch das Forum:

  1. Kein Zugriff auf das BIOS?
    Die Tasten F2, F10 und F12 unter anderem sind ebenfalls bekannte Vertreter für den BIOS-Aufruf.
  2. Xubuntu lädt nicht?
    Wurden die BIOS Einstellungen korrekt vorgenommen und gespeichert? Anderen USB Anschluss für den "Xubuntu Stick" probiert?
    Ist der Stick wirklich bootfähig? Gegebenenfalls an einem anderen Gerät testen oder einen anderen USB Stick verwenden.
  3. Die Linux Shell legt sehr großen Wert auf Groß- und Kleinschreibung, stets beachten!
  4. Ein Tippfehler führt unweigerlich dazu, dass der Befehl nicht oder nicht korrekt ausgeführt wird. Es ist nicht ausgeschlossen, dass dadurch ungewollte Befehle wie das Löschen eines Datenträgers ausgeführt werden.
  5. Beachtet Leerzeichen sowie die genauen Zeichen. Kopiert Codes im Zweifel in ein Dokument mit dem ihr die Zeichen identifizieren könnt. Typische Fehler:
    / und \
    I und l sowie | (Großes i und kleines L sowie senkrechter Strich [Alt Gr+<])
  6. Fehler beim Kopieren des Recovery Image?
    Alle Befehle korrekt eingegeben? "DOM-Stick" in einem anderen USB Port versucht? Wenn der Stick erkannt wird, sollte er über die Oberfläche von Xubuntu (ähnlich Windows) sichtbar sein.
    Dort mit einem Rechtsklick auf den Stick prüfen ob dieser gemountet ist: Sollte "mount" zur Auswahl angezeigt werden, wählen wir dies aus.
    Wurde "dom.img" korrekt umbenannt und ins root Verzeichnis des Stick abgelegt? /dev/xxx is read only (oder ähnlich) ? Dies deutet auf einen defekten DOM hin.