Zum Inhalt springen
LGM-OS
Dokumentation

Wenn schon etwas passiert ist.

Wiederherstellung nach einem Ausfall

10 min · 8 Abschnitte

Was jeder Mechanismus abdeckt

RisikoSchutz
Versehentlich gelöschte DateienSnapshots + Papierkorb im Netz (SMB)
Ausfall von 1–2 FestplattenRAID (mirror/RAID1/10, RAID-Z1/Z2) + SMART-Warnungen
Stille DatenverfälschungGeplante Scrubs (Prüfsummen von ZFS/Btrfs)
Verlust der SystemfestplatteSicherung der Konfiguration + Neuinstallation
Totalverlust des GerätsBackup der Daten außer Haus (App Sicherungen) + Neuinstallation → Ablauf

RAID ist kein Backup: Es schützt vor dem Ausfall einer Festplatte, nicht vor Löschen, nicht vor Ransomware und nicht vor Feuer. Wie du die Kopie einrichtest, die das Gerät verlässt, und wie du sie testest, steht in backups.md; diese Anleitung ist das, was du tust, wenn schon etwas passiert ist.

Bevor etwas passiert

Fünf Minuten heute, Stunden weniger Angst am schlechten Tag:

  1. Ein Backup außer Haus, eingerichtet und durch Zurückholen getestet (backups.md).
  2. Ein aktuelles nas-config-*.tar.gz innerhalb dieses Backups außer Haus (nicht nur auf dem NAS).
  3. Warnungen per E-Mail oder Webhook eingeschaltet (Systemsteuerung → Warnungen): Eine Festplatte, die ausfällt, oder eine Sicherung, die seit einem Monat fehlschlägt, müssen dir Bescheid sagen.
  4. Irgendwo außerhalb des NAS notiert: die Namen der Pools, der Name des Servers, die DDNS-Domain und die Wiederherstellungscodes der 2FA.

Ausgefallene Datenfestplatte

  1. Du bekommst eine Warnung: Der Pool steht auf DEGRADED, oder ein SMART-Wert ist kritisch.
  2. Finde die Festplatte unter Speicher → Zustand (Seriennummer und Zustand je Festplatte).
  3. Schließ die neue Festplatte an. Kann das Gerät im Betrieb tauschen (Hot Swap), geht das ohne Ausschalten; wenn nicht, schalte aus (Systemsteuerung → Ausschalten und neu starten), tausche sie und starte wieder.
  4. Speicher → Zustand → Festplatten der Pools → „Tauschen“ bei der defekten Festplatte, und wähle die Ersatzfestplatte. Der Vorgang läuft als Aufgabe im Hintergrund: Das Resilver (ZFS) oder die Kopie (Btrfs) kann Stunden dauern, und der Pool bleibt währenddessen in Benutzung.
  5. Verfolge den Fortschritt unter Speicher (Zeile „scan“), bis der Pool wieder gesund ist. Nimm keine zweite Festplatte heraus, solange das läuft: Das ist der Moment mit der geringsten Redundanz.

Wenn dir die Konsole lieber ist, entspricht das zpool replace <pool> <alte-festplatte> /dev/sdX bei ZFS und btrfs replace start <devid> /dev/sdX /mnt/<pool> bei Btrfs.

Das System neu installieren und die Daten behalten

Wenn die Systemfestplatte stirbt, aber die Datenfestplatten heil sind. Die Pools liegen auf den Datenfestplatten; das System ist austauschbar:

  1. Installiere LGM-OS auf einer neuen Systemfestplatte (install.sh oder die ISO).
  2. Hol die Konfiguration zurück: Systemsteuerung → Sicherung der Konfiguration → „Aus Datei wiederherstellen…“ mit deinem letzten nas-config-*.tar.gz, und starte den Dienst neu. Benutzer, Gruppen und Freigaben kommen mit ihren Berechtigungen zurück; der Signierschlüssel der Sitzungen wird neu erzeugt (alle müssen sich neu anmelden).
  3. Importiere die Pools:
    • ZFS: zpool import -f <pool> (oder zpool import, um sie aufzulisten).
    • Btrfs: Die wiederhergestellten Mount-Units hängen von selbst nach Label ein; wenn nicht: mount /dev/disk/by-label/<pool> /mnt/<pool>.
  4. Wende die Dienste im Panel neu an (SMB/NFS/WebDAV werden beim Speichern neu geschrieben).

Totalverlust des Geräts

Das NAS gibt es nicht mehr: Feuer, Wasser, Diebstahl, eine Überspannung, die Hauptplatine und Festplatten mitgerissen hat, oder eine Ransomware, die alles verschlüsselt hat, was das NAS eingebunden hatte. Die Daten liegen nicht im Gerät, sie liegen in deinem Backup außer Haus, und der Ablauf besteht darin, das NAS darum herum wieder aufzubauen.

Voraussetzung: ein aktuelles, getestetes Backup außer Haus. Hast du nie daraus zurückgeholt, erfährst du heute, ob es taugt. Das ist genau der Fall, den backups.md zu verhindern versucht.

Die Reihenfolge der Arbeit

1. Hardware. Sie muss nicht die gleiche sein wie vorher. Du brauchst Datenfestplatten mit mindestens der Kapazität dessen, was du zurückholen willst, und eine Festplatte für das System.

2. Installiere LGM-OS. Starte von der ISO und beantworte die vier Fragen (Name des Servers, Netzwerk, Benutzer für die Konsole und Systemfestplatte). Danach geh auf https://<ip>:5001 und leg im Assistenten beim ersten Start den Administrator an.

3. Hol die Konfiguration zurück. Nimm das nas-config-*.tar.gz aus dem Backup außer Haus (es liegt zwischen den kopierten Dateien; ist das Backup eine USB-Festplatte, schließ sie an und hol es von dort) und lade es unter Systemsteuerung → Sicherung der Konfiguration → „Aus Datei wiederherstellen…“ hoch. Danach:

sudo systemctl restart nas-backend

Benutzer, Gruppen, Freigaben mit ihren Berechtigungen, Dienste, Netzwerk, geplante Aufgaben und Warnungen kommen zurück. Daten und Pools gibt es noch nicht: Das ist der nächste Schritt.

4. Leg die Pools mit denselben Namen an. Speicher → „Pool erstellen“. Dass der Name mit dem von vorher übereinstimmt, ist wichtig: Freigaben, Exporte und Apps verweisen auf Pfade /mnt/<pool>/…, und mit einem anderen Namen müsstest du sie eine nach der anderen neu machen.

5. Leg die Freigaben neu an über die Systemsteuerung (nach Schritt 3 sind sie noch definiert: Es reicht, sie zu speichern, damit sie mit ihren Berechtigungen auf dem neuen Volume angelegt werden).

6. Hol die Daten mit der App Sicherungen zurück. Ziele und Aufgaben kamen mit der Konfiguration aus Schritt 3 zurück, die App weiß also schon, wo dein Backup liegt. Zwei Hinweise, bevor du anfängst:

  • Ist das Ziel entfernt, hat das neue NAS einen neuen SSH-Schlüssel: Erlaube ihn auf dem entfernten Server genauso wie beim ersten Mal (Schritt 3 von backups.md), sonst kann es das Backup nicht einmal lesen.
  • Ist das Ziel eine USB-Festplatte, schließ sie an und prüfe, dass das Ziel als verfügbar angezeigt wird.

Danach für jede Aufgabe: Wähle die Version, die du willst (meist die letzte gute), und den Zielordner. Fang mit dem an, was sich nicht ersetzen lässt — Dokumente und Fotos — und lass die Mediensammlung zum Schluss: So hast du das Wichtige in Stunden wieder, auch wenn der Rest Tage braucht. War die Aufgabe verschlüsselt, brauchst du das Passwort der Verschlüsselung; ohne es ist keine Wiederherstellung möglich.

Wenn du es lieber (oder notgedrungen) von Hand in der Konsole machst, zum Beispiel mit einer USB-Festplatte, die unter /mnt/usb-backup eingehängt ist:

sudo rsync -aHAX --numeric-ids --info=progress2 \
     /mnt/usb-backup/<pfad-der-version>/dokumente/ /mnt/tank/dokumente/

Pass auf die Schrägstriche am Ende auf: quelle/ kopiert den Inhalt dieses Ordners ins Ziel; ohne den Schrägstrich würde es den ganzen Ordner hineinkopieren.

Wurde das entfernte Ziel mit rrsync -wo erlaubt (nur schreiben), kann dieser Schlüssel nicht lesen: Hol die Daten vom entfernten Server selbst zurück oder nimm diese Einschränkung vorübergehend aus seiner authorized_keys heraus.

7. Wende die Dienste neu an (SMB/NFS/WebDAV), indem du sie im Panel speicherst, und prüfe von einem PC aus, dass die Freigaben zu sehen sind und dass man in sie schreiben kann.

8. Docker-Apps. Installiere sie aus dem Paketzentrum neu und hol vor dem Starten ihre Daten nach /var/nas/apps/<app>/ zurück. Eine App mit leerer Datenbank zu starten und sie danach wiederherzustellen, endet meistens schlecht.

9. Zugriff von außen. Das Zertifikat von Let's Encrypt wird nicht wiederhergestellt: Es wird von selbst neu ausgestellt, unter Systemsteuerung → Externer Zugriff, sobald die Domain auf die neue IP zeigt (sieh dir das DDNS und die Portweiterleitung im neuen Router an).

10. Bring die Sicherungen wieder zum Laufen. Prüfe, dass die Ziele verfügbar sind und dass die Aufgaben aktiv sind und eine Uhrzeit haben. Ein wiederhergestelltes NAS ohne Backup außer Haus ist ein halb behobener Ausfall: Der nächste erwischt dich genauso wie dieser.

11. Teste die Sicherung. Lass eine Aufgabe von Hand laufen und hol ein paar Dateien aus der Version zurück, die sie gerade angelegt hat. Schließ den Kreis am selben Tag, nicht „wenn ich mal Zeit habe“.

Wie lange es dauert

Ungefähre Werte, damit du weißt, was dich erwartet, und entscheiden kannst, wo du anfängst:

SchrittÜbliche Dauer
LGM-OS von der ISO installieren20–40 Min.
Konfiguration zurückholen und Pools anlegen15 Min.
Daten von einer USB-Festplatte zurückholen (USB 3, 2 TB)4–8 Std.
Daten über das Internet zurückholen (2 TB, 30 Mbit/s Upload am anderen Ende)3–5 Tage

Dass das Zurückholen über das Netz so langsam ist, ist der Grund, auch eine Kopie vor Ort zu haben (oder eine, die du mit dem Auto holen kannst): Die entfernte Kopie ist deine Versicherung gegen das Feuer, die vor Ort ist die, die dich am selben Tag weiterarbeiten lässt.

Dateien aus einem Snapshot zurückholen

  • ZFS: Die Snapshots sind unter /mnt/<pool>/<dataset>/.zfs/snapshot/<name>/ zu sehen — kopier dir heraus, was du brauchst, ohne sonst etwas anzufassen. rollback aus dem Panel setzt das ganze Dataset zurück (und zerstört spätere Snapshots).
  • Btrfs: „Wiederherstellen“ legt /mnt/<pool>/restaurado-<Datum> mit dem Inhalt des Snapshots an; kopier dir heraus, was du brauchst, und lösch diesen Ordner (er ist ein Subvolume: btrfs subvolume delete).

Die Sicherung der Konfiguration

Lade sie von Hand unter Systemsteuerung → Sicherung der Konfiguration herunter, oder automatisiere es: Systemsteuerung → Geplante Aufgaben → Typ „backup“ nach /mnt/<pool>/backups (zum Beispiel wöchentlich). Bewahr diesen Ordner innerhalb des Backups außer Haus auf: Er ist das Erste, was du im Fall oben brauchst.

Was im nas-config-*.tar.gz drin ist

  • state/der gesamte Zustand aus /var/nas/state: Benutzer und Gruppen, Freigaben mit ihren Berechtigungen je Benutzer und Gruppe, SMB, NFS, WebDAV, SSH, Firewall, Netzwerk, eingetragene Pools, geplante Aufgaben, Warnungen, Benachrichtigungen, App Store, SNMP, Zugangsportal, USV und automatisches Sperren von IPs. Das ist das, was wiederhergestellt wird.
  • etc/ — eine Kopie der erzeugten Dateien (smb.conf, exports, nftables, sshd, htpasswd) nur als Nachschlagewerk: Das Wiederherstellen überschreibt sie nicht, sie werden von selbst neu geschrieben, sobald du die Dienste im Panel neu anwendest.

Was mit Absicht NICHT drin ist

Nur Geheimnisse des Geräts und Zustand zum Wegwerfen; nie Konfiguration:

SchlüsselWarum er draußen bleibt
secretDer Signierschlüssel der JWT: Wer ihn hat, kann Sitzungen von Administratoren fälschen. Beim Start wird ein neuer erzeugt.
revoked_tokensLäuft mit den Tokens selbst ab und ist sinnlos, sobald sich der Signierschlüssel ändert.
lgm_updateEnthält das Token für den Zugriff auf git bei der automatischen Aktualisierung.
ups_secretEin Passwort, das es mit NUT teilt; es wird neu erzeugt, sobald die USV neu angewendet wird.
job_slotsInterne Markierungen des Planers; sie entstehen von selbst neu.

Jeder andere Schlüssel des Zustands kommt standardmäßig in die Sicherung, auch die künftiger Funktionen: Die Tabelle ist die einzige Ausnahme, und backend/tests/test_backup_state.py schlägt fehl, wenn jemand neuen Zustand hinzufügt, ohne zu entscheiden, auf welche Seite er gehört. Früher war es umgekehrt — eine Liste von zwölf Dateien, die mitkamen — und die Freigaben gingen bei jedem Wiederherstellen stillschweigend verloren.

Wiederherstellen

Systemsteuerung → Sicherung der Konfiguration → „Aus Datei wiederherstellen…“. Angenommen werden nur Einträge state/<schlüssel>.json aus dem eigenen Format (jeder Pfad, der aus dem Verzeichnis des Zustands herausführt, wird abgewiesen), und die geschützten Schlüssel aus der Tabelle werden übergangen, auch wenn sie in der Datei stehen. Danach: systemctl restart nas-backend und die Dienste im Panel neu anwenden.

⚠️ Diese Sicherung enthält deine Daten nicht: Dafür sind die Snapshots da (im Gerät) und das Backup außer Haus (außerhalb davon).

Was weiterhin nicht abgedeckt ist

Mit einem Backup außer Haus ist der Totalverlust keine Sackgasse mehr. Trotzdem solltest du wissen, wo die Grenzen liegen:

  • Was seit der letzten Sicherung passiert ist, ist weg. Sicherst du nachts und brennt das Gerät um 20:00 Uhr, ist die Arbeit des Tages verloren. Sichere häufiger, was du nicht noch einmal machen kannst.
  • Was in keiner Aufgabe stand, ist nicht da. Eine Freigabe, die nach dem Einrichten der Sicherungen entstanden ist, kommt nicht von selbst dazu: Sieh dir ab und zu die Quellen deiner Aufgaben an.
  • Es gibt kein Abbild der Systemfestplatte (bare metal): LGM-OS wird von der ISO neu installiert und die Konfiguration wird zurückgeholt. Das geht schnell, ist aber kein „klonen und starten“.
  • Lag die Sicherung neben dem NAS, hat der Ausfall sie mitgenommen. Eine Kopie auf einer USB- Festplatte, die dauerhaft am Gerät hängt, übersteht weder ein Feuer noch einen Diebstahl noch eine Ransomware. Deshalb muss eine der Kopien außer Haus liegen.
  • Sitzungen und 2FA: Der Signierschlüssel wird neu erzeugt und alle melden sich neu an; die TOTP-Codes sind auf dem Handy jedes Benutzers. Bewahr die zur Wiederherstellung getrennt auf.
  • Die Schlüssel und Zertifikate des Geräts sind neu: Du musst den SSH-Schlüssel des NAS am Ziel der Sicherung neu erlauben und das Zertifikat von Let's Encrypt neu ausstellen lassen.