Eiko Wagenknecht
Softwareentwickler, Freiberufler & Gründer

OpenHAB auf Raspberry sichern und wiederherstellen (Backup und Restore)

Eiko Wagenknecht

In 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

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:

Nachteile:

B) Sicherung der Konfiguration von openHAB

Vorteile:

Nachteile:

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:

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

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:

<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.

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.