Wiederherstellen
Zum Test soll das ursprünglich auf einer 16 GByte großen SD-Karte installierte Raspbian-System auf eine Micro-SD-Karte mit nur 8 GByte umziehen. Dazu schreiben wir zunächst das mit PiShrink verkleinerte Image mit dd auf die Speicherkarte (Listing 5), packen diese in den Raspberry Pi und starten das geschrumpfte System.
Um den Speicherplatz auf die komplette Speicherkarte auszudehnen, startet das System automatisch beim ersten Boot-Vorgang einmal neu durch. Am Ende landen wir dann wieder im gewohnten Raspbian-System; ein df -h zeigt, dass das System jetzt wieder die komplette Karte verwendet (Listing 6).
Listing 5
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT [...] sdd 8:48 1 7,4G 0 disk ??sdd1 8:49 1 63M 0 part /run/media/[...]/boot ??sdd2 8:50 1 7,3G 0 part /run/media/[...]/0aed834e-8c8f-412d-a276-a26 $ sudo dd if=raspberry-pi_pishrink.img of=/dev/sdd bs=1M; sync 1560+1 Datensätze ein 1560+1 Datensätze aus 1636684288 Bytes (1,6 GB, 1,5 GiB) kopiert, 116,203 s, 14,1 MB/s
Listing 6
pi@raspberrypi:~ $ df -h Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/root 7,2G 990M 6,0G 14% / devtmpfs 459M 0 459M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 6,2M 457M 2% /run tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 463M 0 463M 0% /sys/fs/cgroup /dev/mmcblk0p1 63M 21M 42M 33% /boot
Jenseits von Raspbian
Sichern Sie ein Raspberry-Pi-System, das nicht auf Raspbian basiert und dem eine /etc/rc.local fehlt, wie etwa die angesprochenen Kodi-Distributionen LibreELEC oder OpenELEC, dann erhalten Sie schon beim Schrumpfen des Images eine Fehlermeldung (Listing 7). In diesem Fall müssen Sie mit der Option -s bereits beim Eindampfen des Images verhindern, dass PiShrink das Kommando zum Vergrößern der Datenpartition in diese Datei einzubauen versucht. Danach läuft das Schrumpfen dann auch ohne eine Fehlermeldung durch (Listing 8).
Listing 7
### Fehlermeldungen beim Schrumpfen eines LibreELEC-Images: $ sudo pishrink.sh libreelec.img [...] md5sum: /tmp/tmp.4ornQ3Va4y/etc/rc.local: Datei oder Verzeichnis nicht gefunden /home/[...]/bin/pishrink.sh: Zeile 63: [: !=: Einstelliger (unärer) Operator erwartet. [...]
Listing 8
### LibreELEC, OpenELEC und Co. schrumpft man besser so: $ sudo pishrink.sh -s libreelec.img Skipping autoexpanding process... e2fsck 1.43.4 (31-Jan-2017) /dev/loop2: Journal wird wiederhergestellt Durchgang 1: Inodes, Blöcke und Größen werden geprüft Durchgang 2: Verzeichnisstruktur wird geprüft [...] Die Inode-Referenzen werden aktualisierXXXXXXXXXXXXXXXXXXXXX- Das Dateisystem auf /dev/loop2 is nun 49976 (1k) Blöcke lang. Shrunk libreelec.img from 7,5G to 563M
Das auf die Speicherkarte zurückgeschriebene System wird nun jedoch nicht mehr automatisch vergrößert. LibreELEC und OpenELEC bieten in den Menüs auch keine Option zum Ausdehnen. Die in das System integrierte Routine fs-resize ist nur für eine frisch auf die SD-Karte kopierte Installation gedacht [2]. Mit Tools wie GParted [3] lässt sich die Partitionsgröße jedoch schnell wieder korrigieren – allerdings eben nur von Hand. GParted gibt es nur für Linux, Windows-Nutzer können das Programm jedoch bei Bedarf über eine Live-CD oder einen Live-USB-Stick starten.
In GParted wählen Sie über das Ausklappmenü in der rechten oberen Ecke die SD-Karte aus (meist unter der Geräte-ID /dev/sdd). Dann geben Sie die Datenpartition vor (im Beispiel die /dev/sdd2 mit einer Größe von nur 48,81 MByte) und öffnen über einen Rechtsklick das Kontextmenü. Dort wählen Sie die Option Größe ändern/Verschieben aus. Im sich öffnenden Dialog ziehen Sie den Schieberegler ganz nach rechts: So füllt die Partition die gesamte Speicherkarte aus und das System verschwendet keinen Speicherplatz mehr (Abbildung 2).

Abbildung 2: Mit GParted lässt sich die Datenpartition eines Raspberry-Pi-Systems von Hand auf die komplette Speicherkarte ausdehnen.
Fazit
Die Vielfalt an Einsatzgebieten und Betriebssystemen für den Raspberry Pi lädt zum Basteln ein: Heute dient der Mini-Rechner als stromsparender Server, morgen als kompaktes Mediacenter und übermorgen macht er sich samt Webcam und GPS-Tracker an Bord eines Wetterballons auf den Weg in die Stratosphäre.
Damit Sie das System nicht immer neu einrichten müssen, lohnt es sich, die angepasste Installation als Image zu sichern und bei Bedarf zurückzuspielen. Mit PiShrink geschrumpfte Abbilddateien nehmen auf der Festplatte weniger Platz ein und lassen sich schneller wieder auf eine neue Speicherkarte überspielen. Dabei vergrößert das System meist gleich die Datenpartition auf den gesamten freien Speicherplatz.
Infos
- PiShrink: https://github.com/Drewsif/PiShrink
- Fs-resize unter LibreELEC: https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/sysutils/busybox/scripts/fs-resize
- PiShrink: http://gparted.sourceforge.net
- Ubuntu: https://www.ubuntu.com
- Lubuntu: http://lubuntu.net
- VirtualBox: https://www.virtualbox.org
- SD Card Copier: https://www.raspberrypi.org/blog/another-update-raspbian/





