Ich hatte kürzlich das Problem, dass auf einem meiner Raspberry Pis die SD-Karte ausgetauscht werden musste. Ich habe dort eine 32GB-Karte von Samsung im Einsatz gehabt. Bei einem Onlinehändler habe ich mir ebenfalls eine 32GB-Karte jedoch von SanDisk gekauft.
Glücklicherweise habe ich für den Raspberry Pi ein Backup eingestellt gehabt, dass ein komplettes Image der SD-Karte erstellt und auf einen externen Datenträger schreibt.
Die Anleitung dafür gibt es hier
➡ Raspberry Pi SD-Karte im Livebetrieb klonen.
Das so erstellte Image wollte ich mit dem Tool Etcher ( ➡ https://www.balena.io/etcher/) auf die neue Karte schreiben lassen. Jedoch gab es dabei eine unschöne Überraschung. Obwohl auf beiden SD-Karten 32GB aufgedruckt war, war nicht 32GB drin. Bei der neuen Karte meldete Etcher, dass Speicherplatz fehlt und deshalb das Image nicht auf die Karte geschrieben werden kann. Es galt also das Image zu verkleinern, um es auf die neue SD-Karte zu bekommen.
Es gibt dafür das recht cooles kleine Skript „pishrink“ von Drewsif auf github.com, dass diese Aufgabe übernimmt.
➡ https://github.com/Drewsif/PiShrink.
Die Bedienung ist sehr einfach gehalten und das Ganze funktioniert ohne Probleme.
Ich habe für das Shrinken einen Raspberry Pi 4 verwendet, da er mehr Leistung und über USB 3.0-Ports verfügt als der alte Raspberry Pi 3. Es geht auch ein älterer Pi, jedoch benötigt dieser für die Aufgabe wesentlich mehr Zeit.
Die Funktionsweise des Skripts ist schnell erklärt:
- Original-Image wird ausgewählt
- pishrink erstellt eine exakte Kopie des Original-Images
- pishrink verkleinert die Kopie
- Original-Image und Kopie werden im gleichen Ordner belassen
Es ist also bei diesem ganzen Prozess unbedingt darauf zu achten, dass eine ausreichend große Festplatte verwendet wird, auf der beide Image-Dateien Platz finden.
Hier ein Screenshot, der das besser veranschaulicht:
Ich habe mir das Skript in das Verzeichnis „/etc/skripte“ geladen.
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh chmod +x pishrink.sh sudo mv pishrink.sh /etc/skripte/
Im nächsten Schritt habe ich das Skript ausgeführt
sudo /bin/bash pishrink.sh nextcloud_2019-10-19.img nextcloud_2019-10-19_klein.img
Im obigen Screenshot ist schön zu sehen, was genau passiert und die einzelnen Schritte sind gut nachvollziehbar.
Im nächsten Schritt werde ich versuchen „pishrink.sh“ sinnvoll in beim Backup-Skript ( ➡ Raspberry Pi SD-Karte im Livebetrieb klonen)zu integrieren. Wahrscheinlich ist das nur sinnvoll bei einem Raspberry Pi 4, da sonst ggf. ältere Pis mit geringerem RAM swappen und dadurch die SD-Karte in Mitleidenschaft gezogen wird.
Ich habe das Image auf einer externen Festplatte gespeichert und diese an den RPi angebunden.
Hier noch ganz kurz, wenn ihr eine Festplatte direkt per /etc/fstab einhängen wollt.
UUID der Festplatte identifizieren
sudo blkid
Mount Piont erstellen
/mnt/pishrink
/etc/fstab editieren
sudo nano /etc/fstab
Die externe Festplatte ist im NTFS-Format formatiert.
Damit das Speichermedium schreibend eingebunden werden kann, wird das Paket „ntfs-3g“ benötigt.
Installiert wird das mit
sudo aptitude install ntfs-3g
Die folgende Zeile am Ende der Datei einfügen und die UUID anpassen.
# wird nur für das verkleinern eines Image eingebunden. UUID=xyxyxyxyxy /mnt/pishrink ntfs defaults,noauto,umask=000,users,rw 0 0
Festplatte einhängen
sudo mount /mnt/pishrink
Das wars, nun könnt ihr mit „pishrink“ das Image auf der Festplatte verkleinern und anschließend auf die neue SD-Karte schreiben.
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Photo by Denise Jans on Unsplash

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.
genau in dem Mist war ich vor 4 Jahren versunken, dass ich am Ende diverse 8 GB Karten hatte, die am Ende nicht identisch waren. Die Lösungen damals waren Spielereien mit den Images, die am Ende nicht klappten oder tabula rasa: 5 gleiche Marken SD bestellen und lagernHat bis jetzt geklappt, nur sind die alle weg und über Dein Script zum Archivieren per Image bin ich dann zu diesem shrink gekommen.Ich werde nun das Shrink in meiner Image Erstellung einarbeiten, da ich auch noch eine Generationsverwaltung mitfahre, nur die letzten x Generationen oder Wochen / Monate zu bewahren.Tolles Blog / Beiträge … jedenfalls für all die, die in den gleichen Untiefen gestrandet sind … und dann auch den Weg hier hin finden.DANKE