Raspberry Pi Backup der SD Karte

Aus Laub-Home Wiki

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:

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.

Quellen