Basics – Multi boot


Multi-Boot (noch in Arbeit!)

Für meinen GoDi-Player wollte ich die Möglichkeit nutzen, standardmäßig das GoDi-Radio zu starten und für “Freaks” wahlweise Volumio, um mit dessen Internetradio-Fähigkeiten einen Mehrwert besonders für jüngere Leute zu schaffen. Eine Umschaltung mittels Schalter habe ich leider nicht finden können, aber mit einem Bootmenü geht es auch.

Um sich sehr viel Arbeit zu ersparen, lädt man das gewünschte Image von hier, falls es zu finden ist:

http://berryboot.alexgoldcheidt.com/images/

Im folgenden Beispiel nutze ich den genannten Link für Volumio, während ein selbsterstelltes Image meines GoDi-Radio (Jessie Lite) nach untenstehendem “Rezept” genutzt wird. Die momentane Doku zeigt dagegen einen vergeblichen Versuch, Volumio zum Laufen zu bringen.

Man sollte großzügig planen! Wer keinen “echten” Linux-PC hat, ist mit einem Raspi 3 noch relativ gut bedient. Dieser sollte mindestens dreimal so viel Platz auf der SD-Karte frei haben, wie das größte Bootimage groß ist. Bei mir ist es ein Volumio-Image mit 3 GB Größe und ein eigenes Jessie-Lite-Image mit 4 GB. Meine SD-Karte ist eine schnelle 32GB-Karte. Das Betriebssystem für diese Aktion ist ein Jessie-Lite und ich habe erst einmal die Partition auf Maximum vergrößert:

$ sudo raspi-config
7 “advanced”
A1 “resize”

Zuerst kopiert man sich das erste Image (volumio-2.185-2017-06-03-pi.img) auf einen USB-Stick, der mindestens doppelt so groß sein sollte, wie das Image. Dann nimmt man ein funktionierendes Jessie, wiederum mit ausreichend freiem Platz, wie gerade beschrieben, um das selbsterstellte Image in ein bootbares Format zu konvertieren. Das lässt sich natürlich für jedes gewünschte Image erstellen. Zusätzlich braucht man zwei Tools, die man sich installiert:

$ sudo apt-get install kpartx
$ sudo apt-get install squashfs-tools

Dann folgt der etwas komplizierte Konvertierungsvorgang. Es wird der USB-Stick gemountet und die IMG-Datei vom Stick auf die SD-Karte kopiert.

$ sudo mount /dev/sda1 /mnt
$ cp /mnt/*.img .
$ sudo umount /dev/sda1
$ sudo kpartx -av volumio-2.185-2017-06-03-pi.img

Das ergibt bei mir eine Bildschirmausgabe, die häufig “loop0” enthält. Daraus ergibt sich, dass man bei der folgenden Zeile diesen Wert plus “p2” benutzt. Hier das Beispiel:

$ sudo mount /dev/mapper/loop0p2 /mnt

Mittels “ls -al /mnt” sehe ich eine Datei volumio_current.sqsh. Dann kann ich also weitermachen und die SQSH-Datei auf /mnt bearbeiten. Das Ergebnis liegt dann im Home des Users Pi und wird auf den USB-Stick kopiert:

$ sudo mksquashfs /mnt volumio_current.sqsh -comp lzo -e lib/modules
$ sudo umount /dev/mapper/loop1p2
$ sudo kpartx -d volumio_current.sqsh
$ sudo mount /dev/sda1 /mnt
$ sudo cp *.sqsh /mnt
$ sudo umount /dev/sda1

Nebenbei bemerkt: die IMG-Datei hatte 3 GB Größe und die daraus resultierende SQSH-Datei 260 MB!

Nun wird die SQSH-Datei auf dem PC für den späteren Einsatz gesichert und das nächste Image ist dran. Dazu wird es wieder als IMG-Datei auf den Stick kopiert und dieser nach obiger Prozedur bearbeitet, wobei es bei “sudo mount /dev/sda1 /mnt” beginnt.