PBecker.net

Raspberry Pi Image sichern und verkleinern

Mehr
6 Jahre 10 Monate her - 2 Jahre 10 Monate her #25 von p.becker
Nachdem ein Raspberry Pi installiert ist und läuft ist es sinnvoll eine Sicherung der SD-Karte anzulegen. Eine Imagedatei der Karte kann unter Windows relativ einfach mit dem Tool " Win32DiskImager " erstellt werden. Allerdings kann es vorkommen, dass beim Schreiben des Images auf eine andere SD-Karte eine Fehlermeldung "Zu wenig Speicherplatz auf Datenträger" angezeigt wird, obwohl es sich um die gleiche Kartengröße handelt.

Beim Sichern des Image wird immer die komplette Karte gespeichert, egal ob sich darauf ein Dateisystem befindet oder nicht. Mit einer Linux-Live-CD, auf welcher "GParted" vorhanden ist, wie z.B. Knoppix lassen sich die Images auf die wirklich benötigte Größe verkleinern. Das hat auch den Vorteil, dass für die Sicherung des Images auf der Festplatte viel weniger Speicher benötigt wird.
Nach dem zurückschreiben auf die SD-Karte kann das Dateisystem über den Befehl
Code:
sudo raspi-config
wieder vergrößert werden, so dass dem Raspbery der komplette Speicher der Karte zur Verfügung steht.

Als erstes muss das Linux von der CD/USB-Stick gebootet und die Festplatte auf der sich das Raspberry Image befindet eingebunden werden. Danach wird das Image mit einem Loopback-Device verbunden. Das Image heißt in diesem Fall "pi.img".
Code:
losetup /dev/loop0 pi.img
Damit der Kernel die Partitionen auf dem Loopback-Device erkennt, ist ein zusätzlicher Befehl nötig.
Code:
partprobe /dev/loop0

Verkleinern des Dateisystems über resize2fs
Die Systempartition kann über fdisk ermittelt werden.
Code:
fdisk -l /dev/loop0
Vor dem Verkleinern sollte das Dateisystem auf Fehler geprüft und ggf. repariert werden.
Code:
e2fsck -p /dev/loop0p2
In der Regel sollte /dev/loop0p2 die Linux Partition sein. Das Dateisystem kann jetz auf die minimale Größe verkleinert werden.
Code:
resize2fs -M /dev/loop0p2
alternativ funktioniert das auch über die grafische Oberfläche mittelt GParted. Allerdings sind hier einige zusätzliche Schritte notwendig.

Verkleinern des Dateisystems über GParted
Eigentlich sollte GParted jetzt schon funktionieren.
Code:
gparted /dev/loop0
Es kann aber vorkommen, dass GParted die Partitionen anstatt als /dev/loop0p2 als /dev/loop0_part2 erkennt. Da diese Geräte aber nicht vorhanden sind, werden die Dateisysteme auf den Partitionen nicht erkannt. Abhilfe schaft hier das manuelle Anlegen von Links auf die entsprechenden Partitionen.
Code:
ln -s /dev/loop0p1 /dev/loop0_part1 ln -s /dev/loop0p2 /dev/loop0_part2

und so weiter. Nach einem erneuten Start von GParted kann nun die Ext4 Partition verkleinert werden.
Die minimale Größe des Dateisystems kann wie folgt ermittelt werden:
Code:
resize2fs -P /dev/loop0p2 resize2fs 1.42.11 (09-Jul-2014) Geschätzte minimale Größe des Dateisystems: 375647

Jetzt noch in MB umrechnen:

(375647*4096/1024/1024)+1 = 1468,37 MB

Jetzt das Dateisystem mit GParted verkleinern.

Verkleinern des Images
Nun kann das Loopback-Device wieder gelöst werden.
Code:
losetup -d /dev/loop0
Jetzt muss die eigentliche Image-Datei noch verkleinert werden. Dazu wird als erstes die neue Größe des Partitionsystems ermittelt.
Code:
fdisk -l pi.img Festplatte pi.img: 7,5 GiB, 8010072064 Bytes, 15644672 Sektoren Einheiten: Sektoren von 1 * 512 = [i]512[/i] Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: dos Festplattenbezeichner: 0x9db3e6ad Gerät Boot Anfang Ende Sektoren Größe Kn Typ pi.img1 8192 137215 129024 63M c W95 FAT32 (LBA) pi.img2 137216 3362815 3225600 1,6G 83 Linux

Die neue Größe der Imagedatei wird über den Ende-Sektor der letzten Partition und die Sektorgröße berechnet.
Mit dem Befehl truncate wird die Imagedatei gekürzt.
Code:
truncate --size=$(( (3362815+1)*512)) pi.img

Fertig.

Das geschrumpfte Image kann nun problemlos auch auf kleinere als die originale SD-Karte geschrieben werden.

Kleiner Tip: Das Image zur Sicherung noch gezipt werden, was auch noch Platz auf der Festplatte spart.
Letzte Änderung: 2 Jahre 10 Monate her von p.becker.

Bitte Anmelden um der Konversation beizutreten.

Ladezeit der Seite: 0.510 Sekunden
Powered by Kunena Forum
Diese Webseite benutzt Cookies zur Authentisierung, Navigation und für andere Funktionen. Mit der Nutzung dieser Webseite stimmen Sie zu, dass Cookies auf Ihrem Gerät abgelegt werden. Weitere Hinweise zur Nutzung von Cookies auf dieser Seite finden Sie in der "Datenschutzerklärung".