raspberry.tips
raspberry.tips - Raspberry.Tips - Projekte, Tutorials und News rund um den Mini-Computer Raspberry Pi
Wer schon etwas Erfahrung mit dem Raspberry Pi gesammelt hat wird sicherlich auch schon mal bemerkt haben das der Speicher des Pi die Schwachstelle des Mini-Rechners ist, SD-Karten haben eine begrenzte Lebensdauer, diese hängt vor allem davon ab wie oft von der Karte gelesen oder auf diese geschrieben wird. Teilweise sind mir SD-Karten schon im ersten Jahr “gestorben” oder das Dateisystem war zwecks Fehler auf der SD-Karte so korrupt das eine Rettung nicht mehr möglich war.
Daher ist es wichtig zu wissen wie eine Sicherung des Raspberry Pi erstellt werden kann.
Option 1 – Image Backup der SD-Karte an externem Rechner
Wenn ich aufwändige Software Installationen und Konfigurationen auf einem Raspberry Pi erledigt habe mache ich gerne eine komplette Sicherung der SD-Karte als Image (.img) Datei auf meinem Windows Rechner, das hat den Vorteil das ich das fertig eingerichtete System immer wieder verwenden kann. Diese Methode eignet sich auch für eine Sicherung vor Updates oder vor einer größeren Anpassung an der Software und/oder Konfiguration.
Das Verfahren zur Sicherung ist ähnlich wie das Bespielen der SD-Karten mit einem Betriebssystem (zum Beispiel Raspbian) das als img Datei vorliegt.
Vorteil
- Einfach ohne zusätzliche Software auf dem Pi, die SD-Karte des RasPi wird immer komplett gesichert
Nachteil
- Die Image Dateien werden sehr groß und dauern recht lange, die Sicherung muss offline an einem anderen Rechner mit SD-Leser durchgeführt werden
Wichtig!
Bei einer Sicherung via Image muss die SD-Karte, auf welcher das Image wiederhergestellt werden soll, mindestens so groß sein wie die ursprüngliche Karte. Eine img Datei hat, auch wenn nicht der komplette Platz auf der SD-Karte benutzt wurde, immer die komplette Größe und lässt sich nur schwer verkleinern.
Sicherung mit Win32 Disk Imager erstellen
- Ladet euch, falls noch nicht vorhanden die Software Win32 Disk Imager auf euren Rechner und installiert diese
- Fahrt euren Raspberry Pi sauber herunter und entfernt die Stromzufuhr
- sudo shutdown -h 0
- Legt die SD-Karte an eurem Rechner in den Kartenleser ein
- Öffnet Win 32 Disk Imager
- Wählt einen Speicherort für die img Datei aus und daneben das Laufwerk unter welchem Windows eure SD-Karte anspricht
- Dann wir der “Read” Button auswählbar, klickt darauf um die Sicherung zu starten
Die Wiederherstellung des Image erfolgt auf gleichem Weg via Win32 Disk Imager.
Option 2 – Komplette Image Sicherung des RasPi auf USB oder NAS
Der Raspberry Pi kann sich auch selbst als komplettes Image sichern, hierfür ist allerdings ein externer Speicher, wie zum Beispiel ein NAS oder eine angeschlossene USB-Festplatte notwendig. Die Methode basiert auf dem dd Kommando das via Cronjob regelmäßig ausgeführt wird.
Vorteil
- Sicherung läuft voll automatisch, die SD-Karte des RasPi wird komplett gesichert, es können mehrere Versionen der Sicherung aufbewahrt werden
Nachteil
- Die Image Dateien werden sehr groß und es wird ein zusätzlicher externer Speicher (NAS oder USB) benötigt
- Anwendungen sollten für eine konsistente Sicherung gestoppt werden, vor allem ist das bei Anwendungen mit Datenbank wichtig
Festplatte oder USB Stick Mounten
Zum Mounten eurer Festplatte oder USB-Sticks am Raspberry Pi (siehe Step 1) gibt es bereits ein Tutorial. Falls ihr eine USB-Platte ohne eigene Stromversorgung verwenden möchtet gibt es einen speziellen Tick um diese ans Laufen zu bekommen. Als Alternative zur Festplatte könnt ihr z.B. auch das FritzBox NAS als Speicher verwenden.
Backup auf dem Raspberry Pi einrichten
Wir erstellen unser Backup Script mit nano im Home des Benutzers pi
sudo nano /home/pi/Backup.sh
Das Script erhält folgenden Inhalt, die Variablen müssen unbedingt angepasst werden
- BACKUP_PFAD – Pfad zu eurer gemounteten Festplatte oder NAS Share
- BACKUP_ANZAHL – Wie lange sollen alte Sicherungen aufbewahrt werden (Anzahl Versionen)
- BACKUP_NAME – Name der Sicherung
- DIENST_START_STOP – Dienste die vor dem Backup gestoppt und dann wieder gestartet werden
#!/bin/bash # VARIABLEN - HIER EDITIEREN BACKUP_PFAD="/pfad/zum_backup_order" BACKUP_ANZAHL="5" BACKUP_NAME="RaspberryPiBackup" DIENSTE_START_STOP="service mysql" # ENDE VARIABLEN # Stoppe Dienste vor Backup ${DIENSTE_START_STOP} stop # Backup mit Hilfe von dd erstellen und im angegebenen Pfad speichern dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).img bs=1MB # Starte Dienste nach Backup ${START_SERVICES} start # Alte Sicherungen die nach X neuen Sicherungen entfernen pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popdWir machen die Datei noch ausführbar und verschieben Sie dann nach /usr/local/bin
sudo chmod 755 /home/pi/Backup.sh sudo mv /home/pi/Backup.sh /usr/local/bin/Backup.shUm die Sicherung regelmäßig auszuführen erstellen wir via crontab noch einen Job
sudo crontab -eIn einer neuen Zeile definieren wir den Job und speichern mit STRG+X, Y und Ebter
00 01 * * 0 /usr/local/bin/Backup.shHiermit wird jeden Tag um 01:00Uhr die Sicherung gestartet.
Zum Wiederherstellen auf eure SD-Karte verwendet ihr unter Windows entweder Win32 Disk Imager ode runter Linux folgender Befehl, sda muss entsprechend eure SD-Karte sein
dd if=/pfad/backup.img of=/dev/sda bs=1MB