• Home
    • Hand in Hand ans Ziel
    • Mehr als Fotos
    • Reden wir über.
  • Impressum
    • Datenschutzerklärung
    • Netiquette
  • Kontakt
    • Hello, I am Stefan Fahl
    • MTB-Tourplanung Ahrtal
      • Biker Tour
    • PGP Schlüssel
      • Dienstseiten
  • Suche

Script : Automatic RPi Image Downsizer

Allgemein

Nicht jede Micro-SD-Karte hat die gleiche Speichergröße, das musste ich jetzt feststellen, als ich mein Image einer libreelec Version auf eine gleichgroße Karte kopieren wollte.

Ich habe mir auf 16-GB-Micro-SD ein Image erstellt, dieses konnte ich problemlos auf Karten kopieren.
Jetzt habe ich mir ebenfalls 16-GB-Micro-SD-Karten bestellt.

Beim Zurückschreiben auf diese Karten erhalte ich folgenden Fehler:

CODE: ALLES AUSWÄHLEN
Error mounting /dev/sdc2 at /media/stefan/f2c26989-d7ab-4c16-9d6a-36e40c02035b: Command-line `mount -t „ext4“ -o „uhelper=udisks2,nodev,nosuid“ „/dev/sdc2“ „/media/stefan/f2c26989-d7ab-4c16-9d6a-36e40c02035b“‚ exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sdc2,
missing codepage or helper program, or other error

 

Da die Hersteller bei Mirco-SD-Karten große Toleranzen des Speichervolumens haben, kann es vorkommen, dass man bei einem Image von einer 16-GB-Karte Probleme bekommt, wenn man diese auf eine angeblich ebenfalls 16-GB-Karte schreiben möchte. Es gibt mehrere Möglichkeiten, Image auf passender Weise zu erstellen.

Ich möchte euch den Weg zeigen, den ich gefunden habe.  

Auf der Webseite http://sirlagz.net/2013/03/10/script-automatic-rpi-image-downsizer/

habe ich dieses Script gefunden:

if [[ ! $(whoami) =~ „root“ ]]; then
echo „“
echo „**********************************“
echo „*** This should be run as root ***“
echo „**********************************“
echo „“
exit
fi
if [[ -z $1 ]]; then
echo „Usage: ./autosizer.sh “
exit
fi
if [[ ! -e $1 || ! $(file $1) =~ „x86“ ]]; then
echo „Error : Not an image file, or file doesn’t exist“
exit
fi
partinfo=`parted -m $1 unit B print`
partnumber=`echo „$partinfo“ | grep ext4 | awk -F: ‚ { print $1 } ‚`
partstart=`echo „$partinfo“ | grep ext4 | awk -F: ‚ { print substr($2,0,length($2)-1) } ‚`
loopback=`losetup -f –show -o $partstart $1`
e2fsck -f $loopback
minsize=`resize2fs -P $loopback | awk -F‘: ‚ ‚ { print $2 } ‚`
minsize=`echo $minsize+1000 | bc`
resize2fs -p $loopback $minsize
sleep 1
losetup -d $loopback
partnewsize=`echo „$minsize * 4096“ | bc`
newpartend=`echo „$partstart + $partnewsize“ | bc`
part1=`parted $1 rm 2`
part2=`parted $1 unit B mkpart primary $partstart $newpartend`
endresult=`parted -m $1 unit B print free | tail -1 | awk -F: ‚ { print substr($2,0,length($2)-1) } ‚`
truncate -s $endresult $1

 

Die Datei downloaden und ausführbar machen

chmod -c u+x autosizer.sh

Starten kann man das Script mit ./autosizer.sh Image.img

./autosizer.sh raspberry-pi-libreelec.img

Bei mir machte ein Code-Teil Probleme:

if [[ ! -e $1 || ! $(file $1) =~ „x86“ ]]; then
echo „Error : Not an image file, or file doesn’t exist“
exitecho „Usage: ./autosizer.sh “
exit

Ich habe diesen aus dem Script entfernt, diesen kann man hier Downloaden.

Das Image wird in-place ersetzt.  Das Image, das du als Parameter dem Skript übergeben hast, wird direkt verändert. Das verkleinerte Image ist also am gleichen Ort zu finden wie das alte und es hat den gleichen Namen.

Jetzt kann man das Image auch auf kleinere Karten spielen.

Archive

  • Januar 2021
  • Oktober 2020
  • September 2020
  • Juli 2020
  • Mai 2020
  • Februar 2020
  • Januar 2020
  • Dezember 2019
  • November 2019
  • Oktober 2019
  • September 2019
  • August 2019
  • Juli 2019
  • Mai 2018
  • Januar 2018
  • Juni 2017
  • Mai 2017
  • März 2017
  • Februar 2017
  • Januar 2017
  • Dezember 2016
  • Oktober 2016
  • September 2016
  • August 2016
  • Juni 2016
  • Mai 2016
  • April 2016
  • März 2016
  • Februar 2016
  • November 2015
  • Oktober 2015
  • September 2015
  • August 2015
  • Juli 2015
  • Juni 2015
  • Mai 2015
  • April 2015
  • März 2015
  • Januar 2015
  • Dezember 2014
  • September 2014
  • Mai 2014
  • April 2014
  • März 2014
  • Februar 2014
  • Januar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013
  • September 2013
  • August 2013
  • Juli 2013
  • Mai 2013
  • April 2013
  • März 2013
  • Februar 2013
  • Januar 2013
  • Dezember 2012
  • November 2012
  • Oktober 2012
  • September 2012
  • August 2012
  • Juli 2012
  • Juni 2012
  • Mai 2012
  • April 2012
  • März 2012
  • Februar 2012
  • Januar 2012
  • Dezember 2011
  • November 2011
  • Oktober 2011
  • September 2011
  • August 2011
  • Juli 2011
  • Juni 2011
  • Mai 2011
  • April 2011
  • März 2011
  • Februar 2011
  • Januar 2011
  • Dezember 2010
  • November 2010

Kategorien

Stefan Fahl| Mörterfeld 16 |47918 Tönisvorst
↑
Diese Website benutzt Cookies. Wenn du die Website weiter nutzt, gehen wir von deinem Einverständnis aus.OKNeinDatenschutzerklärung
You can revoke your consent any time using the Revoke consent button.Cookies widerrufen