Ich habe in letzter Zeit öfter Backups von meinem Raspberry Pi erstellen und auch wieder zurückspielen müssen. Dazu habe ich bisher zunächst eine Kopie der SD-Karte mit dd erstellt und danach komprimiert. Das Problem ist, dass man dann mit relativ vielen 32GB großen Dateien hantieren muss. Daher habe ich mir jetzt angeschaut, wie ich die Daten direkt beim Lesen auch komprimieren kann.
Zunächst muss man feststellen, wie der SD-Kartenslot angesprochen wird im System. Auf dem Mac nutzen wird dazu diskutil list
, unter Linux geht das mit fdisk -l
.
diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *240.1 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 239.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Ohne Titel *238.9 GB disk1
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *32.5 GB disk2
1: Windows_FAT_32 58.7 MB disk2s1
2: Linux 32.4 GB disk2s2
Die 32GB SD-Karte wird also mit /dev/disk2
angesprochen. Bevor wir Daten lesen oder schreiben können, müssen wir die Karte zunächst unmounten:
sudo diskutil unmountDisk /dev/disk2
So erstellt man ein Image von der SD-Karte (die bei mir unter /dev/disk2 angesprochen wird) und legt es direkt bzip2 komprimiert ab:
sudo dd bs=1048576 if=/dev/disk2 | bzip2 > backup.img.bz2
Wenn man das komprimierte Image dann wieder zurück auf die SD-Karte spielen möchte, dann funktioniert das folgendermaßen:
sudo bunzip2 backup.img.bz2 --stdout | sudo dd bs=1048576 of=/dev/disk2
Viel Spaß beim Backups erstellen! :)