Raspberry Pi Image installieren, Backup und verkleinern

Im Artikel „Raspberry Pi Image installieren, Backup und verkleinern“ möchte ich Euch zeigen wie Ihr auf einfache Weise mit Euren Images umgehen könnt.
Wer kennt das nicht, man hat gerade ein Image nach seinem Geschmack auf dem Raspberry Pi installiert und möchte jetzt aber doch nochmal etwas anderes ausprobieren. Jetzt hilft nur noch eine andere SD Karte oder man erstellt sich ein Image um die derzeitige Installation zu sichern.  In einem anderen Fall wollte ein Freund ein Image kopiert haben, er hatte eine 16GB SD-Karte, das Image hatte aber eine 32GB Größe, da ich selbst eine 32GB SD-Karte benutze. Hier möchte ich zeigen wie man die Images verkleinern kann.

Hardwareliste

Softwareliste

Im Artikel möchte ich auf die folgenden 3 Fälle eingehen.

  1. Raspbarry Pi image installieren
  2. Raspberry Pi image backup erstellen
  3. Raspberry Pi image backup verkleinern

Raspbarry Pi image installieren

Seit März 2020 bietet die Raspberry Pi Foundation ein eigenes Tool zur Installation der Images an.
Den Raspberry Pi Imager, die Oberfläche ist schlicht gehalten, ähnlich dem Etcher. Zusätzlich kann aber direkt aus dem Menü die Raspbian Version gewählt werden und das Tool lädt die entsprechende Datei herunter und installiert diese dann direkt auf die SD Karte. Es können aber auch andere Images gewählt werden.

raspberry pi imager

Alternativ können die üblichen Programme Etcher und Win32 Disk Imager benutzt werden. Dann muss das Betriebssystem aber vorher herunter geladen werden. Das offizielle Betriebssystem für den Raspberry Pi ist Raspbian und basiert auf Debian Linux. Es wird auf der Herstellerseite bereitgestellt und ist als Image für die SD Karte verfügbar: Download Raspbian Es existieren natürlich viele weitere Betriebssysteme.

Betriebssystem auf die Micro SD Karte kopieren

Um das im ersten Schritt herunter geladene Image nun auf eine SD Karte zu kopieren, benötigt man ein Zusatzprogramm.

Etcher:

Wenn Ihr Etcher und das Betriebssystem herunter geladen habt, kann das Image auf die SD Karte kopiert werden.

Raspberry pi image auf SD Karte schreiben

Etcher installieren und öffnen, das Image und die SD Karte wählen und auf „Flash!“ klicken. Wenn das Image auf die SD Karte kopiert wurde empfehle ich Euch noch ssh und WLAN zu aktivieren, wie das gemacht wird könnt ihr in meinem Artikel nachlesen. Danach die SD Karte in den Raspberry Pi einlegen und starten.

Win32 Disk Imager:

  • Zuerst wird das Zusatzprogramm Win32DiskImager heruntergeladen und installiert.
  • Dann wird die SD Karte in den SD Kartenleser geschoben und man sollte sich den zugeordneten Laufwerksbuchstaben merken.
  • Jetzt den Win32DiskImager öffnen und das vorher heruntergeladene Image wählen, Laufwerksbuchstabe (Device) überprüfen und mit Write auf die SD Karte schreiben.

raspberry pi win32 disk imager

  • Wenn der Schreibvorgang erfolgreich abgeschlossen ist, kann die SD Karte entnommen werden.

Raspberry Pi image backup erstellen

Ein Backup der SD-Karte kann auf verschiedene Weise gemacht werden, die wohl bekannteste ist die mit dem Win32 Disk Imager, eine andere ist mit dem dd Befehl direkt auf dem Raspberry Pi. In diesem Artikel möchte die nur auf die dd Variante eingehen, da die Win32 Disk Imager Variante bereits auf vielen Internetseiten und Youtube gezeigt wird.

Der Vorteil bei dieser Variante ist, dass man das Image direkt nach dem erstellen mit PiShrink verkleinern kann da man alle Eingaben auf dem Raspberry Pi macht. Zuerst sollte man einen USB Stick oder eine externe Festplatte im FAT32 oder NTFS Format vorbereiten. Natürlich muss das Speichermedium, auf dass das Image erstellt werden soll, größer als die benutzte SD Karte sein.

Im ersten Schritt muss ein Terminalfenster geöffnet werden, dann gebt ihr folgenden Befehl ein.

sudo fdisk -l

Jetzt wird eine Übersicht über das derzeitige Filesystem angezeigt, unter anderem, wie z.B. Ramdisks, sollte auch die im Raspberry Pi eingesetzte SD-Karte zu finden sein. Bei mir wird diese mit „Disk /dev/mmcblk0: … “ und der entsprechenden Größe der SD-Karte angezeigt.

raspberry pi image

Als nächstes wird der zuvor vorbereitete USB Stick oder die USB Festplatte in den Raspberry Pi eingesteckt. Dann führt ihr den Befehl nochmal aus, jetzt sollte das USB Device zusätzlich angezeigt werden.

sudo fdisk -l

Jetzt wird auch das USB Device angezeigt, in meinem Fall als „/dev/sda“, dieser Name ist im weiteren Verlauf noch wichtig. Je nach Betriebssystem Version können die Namen anders angezeigt werden.

raspberry pi image

Man sollte sich jetzt folgende Pfade merken, einmal für die SD-Karte „/dev/mmcblk0“ und für das USB Device „/dev/sda“. Im nächsten Schritt gebt ihr folgenden Befehl ein.

df -l

Jetzt wird der freie Speicherplatz der einzelnen Laufwerke angezeigt, unter anderem auch unter welchem Namen das USB Device gemountet ist. Hier suche ich in der Liste nach „sda“, da wir im ersten Schritt die Festplatte unter „/dev/sda“ identifiziert haben.

df -l

Nun merken wir uns noch den Namen unter dem das USB Device gemountet ist, bei mir „/media/usb0“.

Nun kann das Backup Image erstellt werden. Das macht ihr mit folgendem Befehl. Alles in einer Zeile eingeben.

sudo dd bs=4M if=/dev/Eure_SD_Karte of=/media/Euer_USB_Device/imagename.img status=progress

Ihr müsst natürlich Eure Daten dem entsprechend einsetzen, im meinem Beispiel würde der Befehl dann wie folgt aussehen:

sudo dd bs=4M if=/dev/mmcblk0 of=/media/usb0/backup.img status=progress

Das erstellen des Image kann je nach Größe der SD-Karte und der USB Geschwindigkeit länger dauern, aber mit dem Zusatz „status=progress“ am obigen Befehl seht ihr jederzeit wie viel Daten schon geschrieben wurden.

dd

Raspberry Pi Image verkleinern

Da der Befehl dd ein komplettes Image der SD-Karte anlegt, egal wie voll diese beschrieben ist, hat das Image immer die Größe der SD-Karte. Wenn nun das Backup auf eine kleinere, als die zuvor benutzte, SD-Karte gespielt werden soll, passt das natürlich nicht. Das ist übrigens auch der Fall wenn das Image mit dem Win32 Disk Imager erstellt wird.
Im letzten Schritt wird nun das zuvor erstellte Backup Image verkleinert, dazu benutze ich das Programm PiShrink. PiSkrink löscht den ungenutzten Bereich der SD Karte und verkleinert das Image dem entsprechend.

Wechselt zunächst in das Verzeichnis eures USB Devices, hier könnt ihr jetzt die Image Datei und ihre Größe sehen, bei mir sind es knapp 16GB.

cd /media/EUER_USB_DEVICE

Jetzt muss PiShrink heruntergeladen werden, das mach ihr mit folgendem Befehl.

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

Jetzt muss die Datei noch ausführbar gemacht werden und in das /usr/local/bin Verzeichnis kopiert werden.

chmod +x pishrink.sh
sudo mv pishrink.sh /usr/local/bin

Mit folgendem Befehl verkleinert ihr nun das erstellte Image.

sudo pishrink.sh EUER_IMAGE.img

Hier das Ergebnis, mein Image wurde von knapp 16GB auf 6,4GB verkleinert. Jetzt könnte ich es sogar auf eine 8GB SD-Karte zurückspielen. Ein weiterer Vorteil ist, dass es direkt auf dem externen Datenträger liegt und ich jetzt mit einem Windows System und z.B. dem Etcher das Image auf eine andere SD-Karte schreiben kann. PiShrink bietet auch weitere Optionen, welche in den Befehl eingebaut werden können, die komplette Beschreibung findet ihr auf der PiShrink Seite. Vorab aber schon einige Optionen:

pishrink.sh [-adhrspvzZ] imagefile.img [newimagefile.img]

  -s         Don't expand filesystem when image is booted the first time
  -v         Be verbose
  -r         Use advanced filesystem repair option if the normal one fails
  -z         Compress image after shrinking with gzip
  -Z         Compress image after shrinking with xz
  -a         Compress image in parallel using multiple cores
  -p         Remove logs, apt archives, dhcp leases and ssh hostkeys
  -d         Write debug messages in a debug log file

In der Praxis hat das Erstellen des Images mit meinem Raspberry Pi 3 und einer USB2.0 Festplatte sehr lange gedauert, wahrscheinlich ist es schneller wenn man einen Umweg über ein Windows System und den Win32 Disk Imager macht. Also das Image mit Win32 Disk Imager erstellen, danach das Image auf das USB Device kopieren und dann am RaspberryPi mit PiShrink verkleinern oder man startet mit der Erstellung des Images wenn man sowieso nicht am Computer ist. 🙂 Vielleicht ist das ganze praktikabler wenn man einen Raspberry Pi4 mit USB 3.0 verwendet.

Ich hoffe der Artikel „Raspberry Pi Image installieren, backup und verkleinern“ hat Euch gefallen und einen Weg gezeigt wie ihr eure Images verkleinern könnt. Wie immer bin ich auf Eure Kommentare und konstruktive Kritik gespannt. Gerne könnt Ihr auch auf Facebook der TechGeeks Gruppe beitreten oder meldet Euch bei meinem Newsletter an. Wenn Ihr mich unterstützen möchtet, dann könnt Ihr ja mal einen meiner Links zu Amazon ausprobieren, damit kaufe ich dann meine Hardware für neue Artikel, Euch kostet es nicht mehr.

Das könnte dich auch interessieren …

3 Antworten

  1. Piet sagt:

    Sehr hilfreich und gut nachvollziehbar! Danke dafür.

  2. Tom sagt:

    Hallo
    Darauf achten, dass bei einem FAT32 USB-Stick das Image nicht grösser als 4 GB sein kann.
    Hatte immer einen Abbruch, weil das Image über 4 GB war.
    Also besser von Beginn weg einen Stick mit NTFS Format benutzen.
    Tom

  3. Terhi sagt:

    Hallo,
    super Anleitung – vielen Dank !
    Um das ganze zu beschleunigen, kann man das Image auch direkt in einem Linux System erstellen (raspbian ist ja auch nichts anderes).
    Entweder den PC als Dual-Boot System einrichten (Windows und Linux) oder ein Live-Linux direkt von USB / DVD starten.
    Dann einfach die SD Karte in den PC einstecken und ggf. die externe USB Festplatte oder den USB Stick.
    Danach könnt ihr im Linux auf dem PC mit den gleichen Befehlen ein Image der SD Karte direkt auf die Festplatte des PCs oder ggf. auf die USB Festplatte oder den USB Stick speichern…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*