Raspberry Pi Backup erstellen – SD Karte sichern
Nach einigen meiner Raspberry Pi Tutorials kam die Frage auf, wie man die Projekte am Besten sichert, wenn sie funktionieren.
Zunächst einmal sollte man seinen Code immer in einer Versionsverwaltung sichern, wie zB Git oder Subversion.
Außerdem sollte man immer sobald etwas auf dem Raspberry läuft sofort eine Sicherung machen. Der Grund ist, dass SD Karten nicht ewig halten, wie im Artikel Pi Backup auf ein NAS beschrieben:
SD Karten haben leider nur eine begrenzte Lebensdauer. Diese hängt maßgeblich von der Anzahl der Lese- und vor allem der Schreibzugriffe ab. Linux schreibt jedoch die ganze Zeit Einträge in diverse Log-Files. Desto mehr Programme, desto schlimmer. Besonders übel sind Datenbanken. Was tun wir dagegen? Eigentlich lässt sich nicht wirklich was dagegen unternehmen. Im Netz kursieren viele Scripte die alle Schreiboperationen von Logs in’s RAM verlagern, davon halte ich persönlich wenig, weil: Strom weg = RAM weg = Daten & Logs weg = Keine Möglichkeit Ursachenforschung oder Fehler zu suchen.
Quelle: Raspberry Pi SD-Karte auf NAS sichern = Pi-Backup
Wenn man aber nicht nur die Daten sondern die gesamte SD Karte sichern will, also ein Vollbackup machen will, muss man anders vorgehen.
Wenn es nicht anders geht, kann den Raspberry Pi auch im Betrieb sichern.
https://www.hagenfragen.de/tipps-und-tricks/raspberry-pi-tipps/raspberry-pi-backup-der-sd-karte-im-betrieb.html
Ich würde aber -wenn es geht- immer die hier beschriebene Lösung vorziehen.
Raspberry Pi Vollbackup erstellen
in einfachen Schritten:
Wichtig: Den Raspberry mit der zu sichernden SD Karte sauber herunterfahren
Wichtig! Nicht einfach den Strom abziehen. Wenn der Pi gerade Daten schreibt wäre das fatal. Also auf dem Pi anmelden und entweder über die Oberfläche oder die Kommandozeile herunterfahren.
sudo shutdown -h now
Der Linux-Weg und der Mac-Weg
Unter Linux und einem Mac ist das Backup Tool quasi schon eingebaut:
SD-Karte in den SD-Slot einstecken.
if= InputFile bzw Input Device Wichtig: Gerät direkt hinter dem “=” ohne Leerzeichen eingeben
of= OutputFile
Backup der SD-Karte erstellen:
sudo dd if=/dev/mmcblk0 of=my-hagenfragen-pi-backup.img bs=1M status=progress
Backup von einer kaputten SD-Karte mit ddrescue erstellen:
ddrescue macht das Gleiche wie dd, ignoriert aber Lesefehler und versucht defekte Blöcke mehrfach zu lesen. Und ich habe keine Ahnung, warum sich die Programmierer eine andere Syntax haben einfallen lassen.
sudo apt install ddrescue
sudo ddrescue -f /dev/mmcblk0 my-hagenfragen-pi-backup.img SD_card_rescue.log
Backup der SD-Karte wiederherstellen:
sudo dd if=my-hagenfragen-pi-backup.img of=/dev/mmcblk0 bs=1M status=progress
Der Windows-Weg
Backup-Tools installieren
Folgende drei Programme herunterladen und installieren: Win32 Disk Imager und balena Etcher und 7zip
Entweder von Hand oder mit Chocolatey (Anleitung hier): choco install win32diskimager etcher 7zip
Win32 Disk Imager starten
- Das Programm starten und in dem rechten Dropdown ein Laufwerk der zu sichernden SD Karte auswählen.
- Als Image Datei einen Namen vergeben und einen Speicherort wählen.
- “Lesen” klicken
- Auf Erfolgsmeldung warten
Das Backup komprimieren
Nach diesem Schritt liegt das Backup eigentlich fertig auf der Festplatte.
Das Backup hat aber leider 1:1 die Größe der SD Karte, weil es bis jetzt einfach von der SD Karte gelesen wurde.
Das heißt, bei einer 32GB Karte liegen nachher 32 Gig auf der Platte. Bei einer 64GB Karte sind es also 64 Gig usw. Man sollte also genug Platz auf der Platte haben 😉
Also packen wir das Image mit 7zip. Wichtig dabei ist nur, den Algorithmus “bzip2” und die Kompression “ultra2” zu wählen. Das ist wichtig, weil balena Etcher nur bestimmte Pack-Formate lesen kann. Also packen wir mal ein bisschen zusammen:
Was bringt ein Backup ohne erfolgreichen Test der Wiederherstellung? Nichts!
Also testen wir das Ganze mal mit einer neuen SD-Karte:
Das war’s: Backup erstellt und getestet.
Hi!
Müssen Quell- und Ziel-Speicherkarte gleich groß sein? Danke!
Was dd macht ist ja eine Block für Block Kopie der Karte.
Wenn Du die Blöcke zurückschreiben willst muss die Karte daher mindestens gleich groß sein. Eine größere Karte geht natürlich auch, dann bleibt der Überhäng der neuen Karte zunächst leer. Kann aber bequem mit Raps-Config erweitert werden.