Raspberry Pi Backup der SD Karte
SD Karten sind leider nicht für die Ewigkeit gedacht. Auch wenn man so gut es geht alle Schreiboperationen des Betriebssystems deaktiviert hat, ist es nur eine Frage der Zeit bis die SD-Karte im Raspberry Pi den Geist aufgibt. Es gib verschiedenste Lösungen Backups eines Systems zu machen. Eine gute Basis ist auf jeden Fall ein Image des kompletten Systems / Speicherkarte zu haben, um dann darauf die File Level Backups auszurollen. Ich gehe hier deshalb auf die einfach Lösung eines komprimierten dd
Image Backups ein.
Zum Thema File Level Sicherungen könnt ihr gerne hier einmal vorbeischauen:
- Linux Local System Backup Script
- Docker Compose Project Backup Script
- Docker Backup und Restore - eine kleine Anleitung
- Docker Volume Backup Script
- Docker MySQL and MariaDB Backup Script
- Systembackup mit Hilfe von dd
Device finden
Als erstes müssen wir herausfinden wie unsere SD Karte als Device heißt.
unter MacOS
diskutil list
Ausgabe:
/dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *31.9 GB disk2 1: Windows_FAT_32 boot 268.4 MB disk2s1 2: Linux 31.6 GB disk2s2
Die SD Karte hier wäre /dev/disk2
unter Linux
fdisk -l
Ausgabe:
Disk /dev/mmcblk0: 59.5 GiB, 63864569856 bytes, 124735488 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x738a4d67
Die SD Karte hier wäre /dev/mmcblk0
Backup
Da wir nun wissen welches Device wir sichern wollen (hier /dev/disk2
), könne wir mit dem folgenden Befehl ein gzip
komprimiertes Image Namens PiOS.img.gz
erstellen. Es empfiehlt sich vorab die SD Karte zu nullen.
# MacOS
diskutil umountDisk /dev/disk2
sudo dd bs=4096 if=/dev/disk2 | gzip > PiOS.img.gz
# Linux
dd bs=4M if=/dev/disk2 status=progress | gzip > PiOS.img.gz
Das Backup kann einige Zeit in Anspruch nehmen! Je nachdem wie groß die SD Karte ist kann es ein paar Stunden dauern.
Tipp unter MacOS gibt es die Status Anzeige nicht. Hier kann man sich mit dem drücken von CTRL + t
den aktuellen Progress holen:
load: 2.02 cmd: dd 88666 uninterruptible 0.00u 8.42s 5+0 records in 4+3 records out 671088640 bytes transferred in 146.923804 secs (4567596 bytes/sec)
Restore
Den Restore kann man mittels dd
machen, oder mit dem Raspberry Pi Imager. Hier die Befehle den Restore mit dd
auszuführen:
# MacOS
gunzip --stdout PiOS.img.gz | sudo dd bs=4096 of=/dev/disk2
# Linux
gunzip --stdout PiOS.img.gz | dd bs=4M of=/dev/disk2 status=progress
Der Restore ist nur auf eine gleichgroße oder größere SD Karte möglich und kann einige Zeit in Anspruch nehmen! Je nachdem wie groß die SD Karte ist kann es ein paar Stunden dauern.
Wenn ihr den Restore auf eine größere SD Karte ausgerollt habt, könnt ihr nach dem Booten mit raspi-config
den freien Speicherplatz erweitern.