Raspberry Pi Image verkleinern mit pishrink
Ich hatte kürzlich das Problem, dass auf einem meiner Raspberry Pis die SD-Karte ausgetauscht werden musste. Ich habe dort eine 32 GB-Karte von Samsung im Einsatz gehabt. Bei einem Onlinehändler habe ich mir ebenfalls eine 32 GB-Karte jedoch von SanDisk gekauft.
Glücklicherweise habe ich für den Raspberry Pi ein Backup eingestellt, dass ein komplettes Image der SD-Karte erstellt und auf einen externen Datenträger schreibt.
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 32 GB aufgedruckt war, war nicht 32 GB 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.
Codeberg
Dein Weg zur eigenen Nextcloud
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
Photo by Denise Jans on Unsplash