Heute möchte ich eine etwas unkonventionelle Methode vorstellen ein Image einer größeren auf eine kleinere MicroSD-Karte zu bringen. Voraussetzung ist natürlich, dass die Datenmenge geringer ist als die Größe der kleineren MicroSD.
Warum macht man so etwas?
Ganz einfach. Ich habe mir einen weiteren Raspberry Pi 2 zugelegt und wollte die SD der ownCloud (32GB Raspberry Pi 1 B) auf eine MicroSD (16GB) bringen, weil ich diese noch irgendwo rumliegen hatte.
Zur Problemlösung findet man leider nicht viel im Netz.
Es funktioniert aber wie folgt:
GParted starten und das Device der SD auswählen (/dev/mmcblk0). Jetzt werden alle Partitionen ausgehängt. Im Anschluss wählt man die ext4-Partition und verkleinert diese (hier ca. 150MB Platz am Ende Platz lassen). Nun wird die Aktion ausgeführt und GParted beendet.
Man wechselt nun zur Konsole und gibt
1 |
fdisk /dev/mmcblk0 |
ein und dann
1 |
p |
Nun notiert man den End-Wert der Linux-Partition (ext4, letzte Partition Bsp. 8000000) und verlässt fdisk mit
1 |
q |
Jetzt gibt man den Befehl zum Erstellen des Images ein. Hierbei wird das Image auf dem Rechner im Home-Verzeichnis gespeichert. Das kann bei der Größe natürlich eine ganze Weile dauern. Der Befehl wird mit dem zuvor notierten Endwert angepasst. Hier ist zu beachten, dass dieser Wert um 1 erhöht werden muss!
1 |
dd count=8000001 bs=512 if=/dev/mmcblk0 of=/home/"dein Home-Verzeichnis"/backup.img |
Nun ist das Image erstellt und gespeichert. Dieses kann nun wie im Artikel „Raspberry Pi Backup“ beschrieben auf die MicroSD geschrieben werden. Im Nachgang muss das Dateisystem noch via raspi-config erweitert werden. Hat alles geklappt, dann sieht das Ergebnis unter GParted so aus.
Diese Vorgehensweise funktioniert auch von SD => SD, MicroSD => MicroSD oder MicroSD => SD.
Beachten muss man aber, wenn man das Image vom RPi 1 auf einem RPi 2 einsetzen möchte, dass man dieses noch anpassen muss (siehe hierzu Artikel „RPi 2 Modell B läuft absolut flott„).
Viel Spaß!