Kleinstmögliche Image-Grösse

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ich wollte heute in einer Ubuntu VM ein Raspbian Jessie Lite Image mit meiner Entwicklungsumgebung verkleinern das auf einer 16 GB SD-Karte erstellt wurde und hatte das Problem, dass ich das Image nicht weiter als auf ca. 2.4 GB verkleinern konnte, obwohl die Dateien auf der root Partition nur rund 1.6 GB belegen. Rund 800 MB sind also unbenutzt, aber ich bekomme mit resize2fs -M das Filesystem einfach nicht kleiner hin. Ist das normal?

    Das Image scheint ansonsten absolut in Ordnung zu sein und ich kann mit der Grösse auch leben. Ich möchte es einfach so klein, wie möglich haben um das Schreiben mit Win32DiskImager zu beschleunigen.

  • Servus pgloor,
    ich hab' da eine Vermutung:
    das Dateisystem enthält u.a. Verwaltungs-Informationen. Für eine 16 GB Karte nehmen die halt so viel Platz ein.
    Versuch das mal auf eine z.B. 4 GB SD zu flashen und dann noch mal zu verkleinern.
    Ist aber, wie gesagt, nur eine Vermutung ;)

    //EDIT: was mir grad' noch einfiel: Du könntest den "Datenträger" für das Backup quasi "virtuell" mit dd erzeugen ( Datei mit Nullen und z.B. 4 GB ), darin die Dateisysteme erzeugen und die Daten "hineintransferieren" indem Du die Partitions über loop mountest.
    Dieses neue Image-File müsste sich schliesslich mit fdisk entsprechend verkleinern lassen.
    Ich müsste jetzt aber auch erst mal nachlesen, wie das genau funktioniert ( der mount bekommt einen offset für die zweite "Partition" ... so weit weiss ich das noch ).
    Wär' vielleicht auch mal einen Versuch wert ...

    cu,
    -ds-

  • Zum Verkleinern des Dateisystems habe ich wie im nachstehenden Beispiel resize2fs verwendet.

    peter@ubuntu:~$ sudo resize2fs -M /dev/loop0
    resize2fs 1.42.13 (17-May-2015)
    Resizing the filesystem on /dev/loop0 to 638343 (4k) blocks.
    The filesystem on /dev/loop0 is now 638343 (4k) blocks long.

    Heute habe ich noch einen Versuch mit einer 8 GB SD Karte gestartet, auf die ich das Image von gestern aufgespielt habe, die Partition mit raspi-config wieder auf die volle Grösse erweitert habe und mit der dann den Vorgang von gestern exakt wiederholt habe.

    Das Resutltat war tatsächlich viel besser, was sich schon beim resize2fs gezeigt hat.

    peter@ubuntu:~$ sudo resize2fs -M /dev/loop0
    resize2fs 1.42.13 (17-May-2015)
    Resizing the filesystem on /dev/loop0 to 515556 (4k) blocks.
    The filesystem on /dev/loop0 is now 515556 (4k) blocks long.

    Im Endresultat ergibt sich folgender Unterschied:
    2.03 GB (2'182'086'656 Bytes) beim Image das mit der 8 GB Karte erstellt wurde.
    2.50 GB (2'685'403'136 Bytes) beim Image das mit der 16 GB Karte erstellt wurde.

    In Zukunft werde ich zum Erstellen meines Images nur noch 4 GB Karten verwenden, dann komme ich wohl auf die 1.8 GB, die ich eigentlich in etwa erwartet habe.

    dreamshader: danke für den Hinweis mit dem 'virtuellen' Datenträger. Das werde ich mal versuchen.

    Einmal editiert, zuletzt von pgloor (10. Januar 2017 um 12:27)

  • Das reicht aber auch noch nicht aus da in den Speicherzellen dann immer noch Daten sind. Du müsstest dann noch daher gehen und in den freien Speicher Null'n rein schreiben da sich diese weitaus "kleiner" packen lassen...

    Guck einfach mal hier:
    FAQ => Nützliche Links / Linksammlung => Linux: Image/Abbild (Backup) von SD erstellen und verkleinern
    FAQ => Nützliche Links / Linksammlung => Image verkleinern

  • Ich frage mich die ganze Zeit ob das mit dem Image verkleinern wirklich funktioniert?

    Der win32diskimager und jeder andere Imagesicherer soll sich doch nicht darum kümmern wie groß das Image ist, es soll alles kopieren denn niemand kann wissen welche Daten auf dem Speicher relevant sind.

    Mein Plan war die 16 GB vom PI auf 15 GB zu verkleinern damit das auch immer auf andere 16 GB Karten passt auch wenn diese ein Byte kleiner sind.
    Wird aber 16,001 GB gesichert von Stick A so passt es nicht auf die 15,999 GB vom Stick B. weil der Imagesicherer immer den ganzen Stick/oder Platte sichert.

    Ich habe der GB Flut Einhalt geboten in dem ich immer den ganzen Stick sichere aber danach mit 7zip das komprimiere, das hilft zumindest bei 10x 16GB Sicherungen keine 160 GB zu belegen!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!