Eigenes Image - Problem beim verkleinern mit PiShrink

Rund um die Software von Revolution Pi
Post Reply
mdirk
Posts: 4
Joined: 22 Sep 2020, 14:43
Answers: 0

Eigenes Image - Problem beim verkleinern mit PiShrink

Post by mdirk »

Hallo zusammen,

ich habe mir eine eigenes Image-Backup mit Win32 DiskImager erstellt. Dieses will ich dann als Basis-Image auf mehrere RevPi's spielen.

Jetzt ist das Image ja nur immer so Groß wie die Speichergröße des eMMC. Bei mir also 8 GB.
Das schreiben dauert damit also unnötig lang. Jetzt war meine Idee mein Backup-Image mit PiShrink zu verkleinern. Dazu kopiere ich das Image auf einen USB Stick (NTFS) und führte PiShrink auf meinem RevPi aus. Soweit funktioniert das auch. PiShrink läuft ohne Fehlermeldung durch und das Image ist danach nur noch 3 GB groß.

Das kleine Image jetzt wieder auf den RevPi flashen mit Win32 DiskImager klappt auch problemlos. Nur wenn ich dann booten möchte wirft mir der RevPi fehler aus.
Sprich er bootet gar nicht sondern gibt folgenden Fehler auf dem Bildschirm aus:

Code: Select all

Timed out waiting for device dev-disk-by\x2dpartuuid-cd48578f\x2d01.device.
.
.
Failed to start Create Volatile Files and Directories.
.
.
Failed to start Network Time Synchronization.
.
.
Failed to start Update UTMP about System Boot/Shutdown
.
.
Cannot open access to console, the root account is locked.
Failed

Hier ein Bild davon

Image
User avatar
dirk
KUNBUS
Posts: 1942
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: Eigenes Image - Problem beim verkleinern mit PiShrink

Post by dirk »

Hi mdirk, wir machen unsere Images mit Linux Tools siehe ImageBakery.
Dort kannst Du ja mal nachschauen, wie wir das Image verkleinern und vergrößern implementiert haben.
mdirk
Posts: 4
Joined: 22 Sep 2020, 14:43
Answers: 0

Re: Eigenes Image - Problem beim verkleinern mit PiShrink

Post by mdirk »

Danke für die Antwort. Ganz unten im "customize_image.sh" finde ich den Codeblock.

Code: Select all

# shrink image to speed up flashing
resize2fs -M "$LOOPDEVICE"p2
PARTSIZE=$(dumpe2fs -h "$LOOPDEVICE"p2 | egrep "^Block count:" | cut -d" " -f3-)
PARTSIZE=$(($PARTSIZE * 8))   # ext4 uses 4k blocks, partitions use 512 bytes
sfdisk --dump "$LOOPDEVICE" | /bin/sed -r -e "\$!n
\$s/size=[^,]+/size=$PARTSIZE/" | /sbin/sfdisk "$LOOPDEVICE"
PARTSTART=$(cat /sys/block/$(basename "$LOOPDEVICE")/$(basename "$LOOPDEVICE"p2)/start)
truncate -s $((512 * ($PARTSTART + $PARTSIZE))) "$1"

cleanup_losetup
Ich blick jetzt nur noch nicht ganz durch ob ich diese Codezeilen auch auf ein bestehendes Image anwenden kann? Oder wird das auf dem RevPi ausgeführt und verkleiner hier direkt die Partion und ich mach anschließend ein Image vom RevPi, z.B. mit Win32 DiskImager
User avatar
dirk
KUNBUS
Posts: 1942
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: Eigenes Image - Problem beim verkleinern mit PiShrink

Post by dirk »

Hi mdirk, mit imagebakery erstellst Du Dir ein minimales Image mit einer verkleinerten Partition. Das macht PiShrink dann in dem Fall überflüssig.
Das machst Du NICHT auf Deinem RevPi. Viele benutzen einfach eine Virtuelle Maschine z.B. Debian oder Ubuntu. Das gibt es auch direkt zum Download, z.B. hier.

Du kannst in den Ordner "debs-to-install" Debian Pakete kopieren, die dann im Image bereits enthalten sein werden.

Beim 1. Login mit "pi/raspberry" (deutsches Tastaturlayout), wenn diese Datei NICHT existiert

Code: Select all

/home/pi/.revpi-factory-reset
wird automatisch das Tool aufgerufen

Code: Select all

pi@RevPi403002:~ $ revpi-factory-reset
Usage: revpi-factory-reset <compact|connect|core> <serial> <mac addr>
(see front plate)
Das Tool expandiert dann unter Anderem Deine Partition auf die maximale Größe.
Nach einem

Code: Select all

sudo reboot
Ist Dein Gerät einsatzbereit.

Falls Dich die Funktionsweise das Shell Skriptes "customize_image.sh" interessiert dann kannst Du auch dafür sorgen, dass es z.B. mit "-x" ausgeführt wird, um Debug Ausgaben zu erhalten. ;)
mfalk
Posts: 1
Joined: 28 Apr 2021, 08:05
Answers: 0

Re: Eigenes Image - Problem beim verkleinern mit PiShrink

Post by mfalk »

Hallo zusammen,

ich bin gerade dran, mein "eigenes" Image für den RevPi zu erstellen und bin dabei auf diesen Post gestoßen.
Ich hab versucht, mithilfe einer Debian VM auf meinem Windows Rechner mit imagebakery das Image zu erstellen, allerdings bricht mein Skript nach sehr kurzer Zeit schon ab.
Vermutlich fehlen einfach ein paar Tools, um das Skript nutzen zu können, da ich aber das Skript nicht zu 100% verstehe müsste ich wissen, welche Abhängigkeiten das Skript hat.

Könnt ihr mir da weiterhelfen?

Gruß Marc
User avatar
p.rosenberger
KUNBUS
Posts: 89
Joined: 03 Jul 2020, 11:07
Answers: 1

Re: Eigenes Image - Problem beim verkleinern mit PiShrink

Post by p.rosenberger »

Hallo Marc,

bei sowas ist die Ausgabe des Skripts immer hilfreich. Wir haben versucht fehlende Tools zu erkennen und einen entsprechenden Fehler auszugeben. Ohne mehr Datails kann ich aktuell nicht raus orakeln was bei dir fehlt oder schief geht. Mach doch bitte einen neuen Thread mit deinem Problem und den Ausgaben der imagebakery auf.

Viele Grüße
Philipp
Post Reply