openHAB auf Raspberry sichern und wiederherstellen (Backup und Restore)

In diesem Beitrag erkläre ich euch, wie ein auf einem Raspberri Pi installiertes openHAB gesichert und wiederhergestellt werden kann. Dazu gibt es mehrere Wege. Ich erkläre euch kurz die Vor- und Nachteile und wie es funktioniert.

Backups erstellen ist ja immer ein etwas leidiges Thema. So wirklich Spaß macht es nicht und man sieht den Nutzen erst später. Aber wenn die SD Karte plötzlich den Geist aufgibt oder man das System kaputtgespielt hat, ist es doch schön, nicht wieder zig Stunden in die Einrichtung investieren zu müssen. Ich spreche da aus Erfahrung..

Zum Zeitpunkt des Artikels ist die Version openHAB 2.5.1 aktuell.

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 letzt 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 denn 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 Festplatten anderer Größe ist kein Problem, die Partitionen werden entsprechend angepasst.

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 (Bild 3). 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/restore

Anschließend findet ihr das Backup als ZIP Archiv unter

\\openhab\openHAB-share\openhab2-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 beschrieben. Folgt einfach der Anleitung bis einschließlich Punkt 5.

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

\\openhab\openHAB-share\openhab2-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:

sudo systemctl stop openhab2 

sudo $OPENHAB_RUNTIME/bin/restore $OPENHAB_BACKUPS/openhab2-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.

sudo systemctl start openhab2

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 🙂

Wenn diese Seite für Dich hilfreich war und Du dich bei mir bedanken möchtest, spende doch einen kleinen Betrag. Die durchschnittliche Spendenhöhe beträgt 3,50 €, gerade richtig für einen guten Kaffee ;-).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.