OpenHAB auf Raspberry sichern und wiederherstellen (Backup und Restore)
Eiko WagenknechtIn diesem Beitrag erkläre ich, wie ein auf einem Raspberry Pi installiertes openHAB gesichert und wiederhergestellt werden kann. Backups sind essentiell, falls die SD-Karte ausfällt oder das System beschädigt wird. Ich stelle drei verschiedene Methoden vor: komplette SD-Karten-Sicherung mit Win32DiskImager (kostenlos), komplette Sicherung mit Paragon Hard Disk Manager (kostenpflichtig) und die Sicherung nur der openHAB-Konfiguration mit dem eingebauten Tool. Jede Methode hat ihre Vor- und Nachteile, die ich ausführlich erläutere. Diese Anleitung funktioniert sowohl für openHAB 2.5.1 als auch für openHAB 3.0.
Inhaltsverzeichnis
- Verwendetes Material / Lizenzen
- Die verschiedenen Varianten
- 1) Komplette Sicherung und Wiederherstellung mit Win32DiskImager (kostenlos)
- 2) Komplette Sicherung und Wiederherstellung mit Paragon Hard Disk Manager (kostenpflichtig)
- 3) Sicherung und Wiederherstellung der Konfiguration mit openHAB eigenem Tool (kostenlos)
- Optional: Wiederherstellen der statischen IP-Adresse
- Schlusswort
Verwendetes Material / Lizenzen
- Raspberry Pi (z.B. bei amazon.de als Komplettkit, ca. 80 EUR)
- microSD Karte, am besten mit 16GB oder mehr Speicher (z.B. Sandisk Ultra microSDHC 32GB bei amazon.de, ca. 7 EUR)
- Kartenleser für die microSD Karte (z.B. Transcend TS-RDF9K2 bei amazon.de, ca. 14 EUR)
Die verschiedenen Varianten
Für ein Backup eines auf einem Raspberry Pi installierten openHAB gibt es im Wesentlichen zwei Ansätze:
A) Komplette Sicherung der SD-Karte
Vorteile:
- Einfach, kein tieferes technisches Wissen erforderlich
- Wirklich alles ist gesichert, man erhält 1:1 den Systemzustand zurück bei Wiederherstellung
- Schnelle Wiederherstellung
Nachteile:
- Zeitaufwändiger als eine teilweise Sicherung
- SD-Karte muss aus dem Raspberry entnommen werden
- Größere Datenmengen je Sicherung (je nach genauer Methode und Größe der SD-Karte ~3 GB bis über 32 GB)
B) Sicherung der Konfiguration von openHAB
Vorteile:
- Kleine Datenmengen je Sicherung (wenige Megabyte)
- Stellt nur die Konfiguration wieder her, kann daher auch z.B. für die Migration auf eine neuere Linux Distribution oder von einem Pi3 auf einen Pi4 genutzt werden
- SD-Karte kann im Raspberry bleiben
- Automatisierbar
Nachteile:
- Mehr Aufwand bei der Wiederherstellung
- Komplizierter durchzuführen
Nach diesem kurzen Überblick stelle ich euch nun im Folgenden die Methoden vor, die ich selbst nutze oder genutzt habe:
1) Komplette Sicherung und Wiederherstellung mit Win32DiskImager (kostenlos)
Mit dem kostenlosen Tool Win32DiskImager könnt ihr komplette SD-Karten Bit für Bit sichern und wiederherstellen. Nachteil hierbei ist einerseits, dass das Backup genauso groß ist wie die SD-Karte (bei mir also z.B. 32 GB), unabhängig davon, wie viel Platz tatsächlich belegt ist.
Außerdem muss die neue SD-Karte mindestens genauso groß sein. Größer geht, kleiner nicht. Es empfiehlt sich daher, genau das gleiche SD-Karten Modell als Ersatz noch einmal da zu haben (oder eine größere), da auch Karten mit der gleichen angegebenen Größe (z.B. 32 GB) von Hersteller zu Hersteller um ein paar Byte abweichende Größen haben und die Wiederherstellung dann daran scheitern kann, wenn die neue Karte minimal kleiner ist.
Trotz der Nachteile ist es keine schlechte Methode, denn es ist immerhin kostenlos und einfach. Herunterladen könnt ihr das Tool hier.
Sicherung
Zum Sichern loggt ihr euch erst einmal per SSH auf dem Raspberry ein (eine Erklärung findet ihr z.B. im Installationsbeitrag von mir) und führt dort dann den Befehl
sudo shutdown
aus, damit das System ordnungsgemäß herunterfahren kann. Wartet noch ein paar Minuten ab und nehmt dann die SD-Karte aus dem Raspberry und legt sie in euren Kartenleser ein.
Gegebenenfalls von Windows aufpoppende Meldungen, ihr solltet doch die Karte formatieren, brecht ihr ab. Windows erkennt lediglich das Dateisystem nicht, da es zu Linux gehört.
Dann startet ihr den Win32DiskImager und wählt den zur SD-Karte zugehörigen Datenträger rechts aus. Vermutlich gibt es dort zwei Einträge. Wählt den, der im Explorer die Bezeichnung “boot” hat. Auch wenn dort im Explorer nur eine 250 MB große Partition angezeigt wird, wird dennoch die ganze SD-Karte gesichert.
Für die Imagedatei gebt ihr eine neue Datei mit der Endung .img an. Startet den Vorgang dann mit “Lesen”.

Das kann nun eine ganze Weile dauern. Bei mir ist es ca. eine Viertelstunde bei einer 32 GB Karte. Wenn der Fortschrittsbalken bei 100 Prozent angekommen ist, seid ihr fertig mit der Sicherung.

Wiederherstellung
Die Wiederherstellung funktioniert genau wie das Backup, nur dass ihr diesmal eure Sicherungs .img Datei auswählt und anschließend auf “Schreiben” klickt:

Das dauert jetzt auch wieder etwas länger (bei mir ca. 30 Minuten bei einer 32 GB Karte). Anschließend werft ihr die Karte unter Windows ordnungsgemäß mit dem “Hardware sicher entfernen” Icon in der Taskleiste aus und legt sie wieder in euren Raspberry ein.
2) Komplette Sicherung und Wiederherstellung mit Paragon Hard Disk Manager (kostenpflichtig)
Etwas bequemer geht es mit einem kostenpflichtigen Zusatztool, z.B. Paragon Hard Disk Manager (z.B. bei amazon.de auf CDROM für 36 EUR oder direkt beim Hersteller als Download für 50 EUR).
Vorteil ist, dass das Tool das Dateisystem auf der SD-Karte erkennt und daher nur die Bereiche sichert, die tatsächlich Daten enthalten. Die Sicherungen sind daher dann nur 2 GB statt 32 GB groß. Zusätzlicher Bonus ist, dass es viel schneller geht. Klar, es werden ja auch weniger Daten kopiert. Und auch das Wiederherstellen auf SD-Karten oder Festplatten anderer Größe ist kein Problem, die Partitionen werden entsprechend angepasst.
Achtung: Es gibt anscheinend aktuell noch ungeklärte Probleme bei der Wiederherstellung, wenn man nicht auf die selbe sondern auf eine andere SD-Karte zurückspielt (siehe Kommentare ganz unten). Ich empfehle daher dringend, lieber die Win32DiskImager Methode zu verwenden!
Sicherung
Folgt einfach den Bildern in der Galerie und schon habt ihr nach einer knappen Minute ein Backup erstellt. Wichtig ist vor allem, die vollständige SD-Karte auszuwählen. Der Rest sollte selbsterklärend sein.






Wiederherstellung
Auch hier gibt es keine großen Überraschungen. Folge einfach der bebilderten Anleitung.




3) Sicherung und Wiederherstellung der Konfiguration mit openHAB eigenem Tool (kostenlos)
Sicherung
Zur Sicherung verbindet ihr euch per SSH mit openHAB (eine Erklärung findet ihr z.B. im Installationsbeitrag von mir) und führt dort folgenden Befehl aus:
sudo $OPENHAB_RUNTIME/bin/backup

Anschließend findet ihr das Backup als ZIP-Archiv unter:
- openHAB2:
\openhab\openHAB-share\openhab2-userdata\backups
- openHAB3:
\openhab\openHAB-userdata\backups

Kopiert euch die ZIP-Datei an einen sicheren Ort eurer Wahl und ihr seid fertig.
Eine Automatisierung wäre z.B. möglich, indem das Backup-Skript per Cron Job täglich gestartet wird und die Datei auf einen angeschlossenen USB-Stick kopiert wird. Wenn euch das interessiert, hinterlasst einen Kommentar, dann beschreibe ich es ausführlicher.
Wiederherstellung
Zur Wiederherstellung verfahrt ihr zunächst ganz genau so, als wolltet ihr ein neues openHAB System einrichten. Wie das geht habe ich hier für openHAB 2 und hier für openHAB 3 beschrieben. Folgt einfach der Anleitung bis zur Einrichtung der Karaf / openHAB Konsole. Dann könnt ihr hier weitermachen.
Wenn das System so weit wieder läuft und aus dem Netzwerk erreichbar ist, könnt ihr als nächstes die Backup-Datei dorthin übertragen. Dafür müsst ihr unter
- openHAB2:
\\openhab\openHAB-share\openhab2-userdata
- openHAB3:
\\openhab\openHAB-userdata
einen Ordner mit dem Namen “backup” anlegen und die Datei dort hinein kopieren.


Von der Installation solltet ihr noch eine SSH-Verbindung zu openHAB offen haben. Wenn nicht, verbindet euch erneut. Dort führt ihr dann nacheinander die Befehle aus:
- openHAB 2:
sudo systemctl stop openhab2
- openHAB 3:
sudo systemctl stop openhab

- openHAB 2:
sudo $OPENHAB_RUNTIME/bin/restore $OPENHAB_BACKUPS/openhab2-backup-<DATUM>.zip
- openHAB 3:
sudo $OPENHAB_RUNTIME/bin/restore $OPENHAB_BACKUPS/openhab-backup-<DATUM>.zip
<DATUM>
ersetzt ihr natürlich durch den passenden Wert für eure Datei. Hinweis: Wenn ihr TAB benutzt, um die Pfade vervollständigen zu lassen, fügt die Shell für das Dollarzeichen $ noch einen Backslash \ ein. Damit funktioniert der Befehl nicht mehr.

Die Abfrage bestätigt ihr mit y. Auch ein Versionswechsel auf eine neuere Version (wie bei mir) ist grundsätzlich kein Problem, sofern sich nicht grundlegend etwas verändert hat (Release 2.5.0 war so ein Fall). Schaut euch im Zweifelsfall die Release Notes genau an und arbeitet dann nach der Wiederherstellung entsprechend nach.
- openHAB 2:
sudo systemctl start openhab2
- openHAB 3:
sudo systemctl start openhab

Wenn alles gut gegangen ist, sollte jetzt eure Konfiguration vollständig wiederhergestellt sein und alle Geräte auch direkt im “Online” Status.

Optional: Wiederherstellen der statischen IP-Adresse
Wenn ihr eine per DHCP verteilte statische Adresse für eure openHAB Installation nutzt, muss diese, falls sich der Raspberry Pi, den ihr verwendet, ändert (z.B. weil der alte defekt war), anschließend neu konfiguriert werden. Das gilt auch bei einem kompletten Wiederherstellen eines Backups. Grund ist, dass der neue Raspberry eine neue MAC-Adresse hat und daher vom DHCP-Server als neues Gerät erkannt wird und eine andere IP-Adresse zugewiesen bekommt.
Die alte IP weiterzuverwenden ist allerdings sehr empfehlenswert, da diese in diversen Stellen der Konfiguration genutzt wird und so keine Probleme auftreten können, die durch den IP-Wechsel aufkommen.
Im Fall der FritzBox ist das Einrichten damit erledigt, die alte Konfiguration zu entfernen (Mülltonnen-Symbol unter Heimnetz > Netzwerk) und anschließend dem neuen Gerät wieder die selbe IP-Adresse zuzuweisen mit dem Haken “Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen.”

Falls die FritzBox sich beschwert, dass die Adresse schon vergeben ist, versucht es einfach nach ein paar Minuten noch einmal, die Aktualisierung im Hintergrund kann ein paar Minuten dauern. Wenn auch das nicht hilft, reicht vermutlich ein Neustart der FritzBox aus.
Schlusswort
Ich freue mich über eure Kommentare, ob euch der Beitrag weitergeholfen hat. Schreibt auch gerne, wenn ihr Fragen habt oder doch etwas unklar geblieben ist. Oder wenn ihr aufbauend darauf spannende weitere Automatisierungs-Projekte umsetzen konntet!
Keine Kommentare? Kein Problem.
Dieser Blog unterstützt keine Kommentare, aber deine Gedanken und Fragen sind immer willkommen. Du erreichst mich mich über die Kontaktdaten im Footer unten.
Unterstützung
Wenn diese Seite für dich hilfreich war und du dich bei mir bedanken möchtest, dann freue ich mich ganz außerordentlich darüber, wenn du für deinen nächsten Einkauf bei amazon.de über diesen Link gehst. Ich bekomme dann eine kleine Provision, für dich kostet es keinen Cent extra. Wenn du mich lieber anders unterstützen möchtest, findest du hier weitere Möglichkeiten.