Image von Raspberry verkleinern

Wenn Ihr mit Raspberrys zu tun habt, wollt ihr bestimmt auch öfter mal ein Backup eurer Speicherkarte anfertigen um Datenverlust zu verhindern. Wenn man eine 8GB Speicherkarte benutzt, währe das Backup ebenfalls 8GB groß, außer man verkleinert das vorher ein wenig.

Zuerst stecken wir die Speicherkarte in einen zweiter Rechner ein und mounten die Datenpartition:

sudo mount /dev/disk2s2 /mnt/Raspi

Bei euch kann die Partition durchaus einen anderen Namen besitzen, das am besten vorher kurz checken (mount).

Jetzt erstellen wir eine Datei die mit Nullen gefüllt wird. Stellt euch schon mal einen Kaffeé auf, das kann jetzt eine ganze Weile dauern 😉

sudo dd if=/dev/zero of=/mnt/Raspi/zero.file

Wenn, nach einer Weile, eine Fehlermeldung kommt und der Vorgang abgebrochen wird, können wir die Datei wieder löschen und die Karte auswerfen.

sudo rm -f /mnt/Raspi/zero.file
sudo umount /mnt/Raspi

Jetzt ist der komplette Speicherplatz auf der SD-Karte mit Nullen beschrieben. Beim Erstellen und Komprimieren des Images können wir nun einiges an Speicherplatz sparen. Bevor wir jetzt das Image erstellen, benötigen wir noch das genaue Ende der zweiten Partition.

sudo fdisk -l /dev/disk2

Disk /dev/disk2: 8 GB, 8073510912 bytes
4 Köpfe, 16 Sektoren/Spur, 246384 Zylinder, zusammen 7697408 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0xAA55

         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C    0 130   3 -    7 165  30 [      8192 -     114688] Win95 FAT32L
 2: 83  896   0   1 -  927   3  16 [    122880 -   15271936] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

Das Ende der zweiten Partition liegt bei dieser Karte bei 15271936. Dieser Wert ist wichtig für den “count” Parameter den wir wie folgt berechnen:

15271936 (Ende der zweiten Partition) + 1 = 15271937

Jetzt erstellen wir das Image:

sudo dd if=/dev/disk2 bs=512 count=15271937 | gzip > Raspi_Backup.dump.gz

Wiederherstellen können wir das Image wie folgt:

gzip -dc Raspi_Backup.dump.gz | sudo dd of=/dev/disk2