This is an old revision of the document!
Im folgenden wird beschrieben, wie MLD beim Installieren von Noobs als weitere Distribution eingebunden werden kann. Das Ganze wurde für MLD 5.3 und 5.4 erfolgreich umgesetzt. Bei der Version 5.3 muss während des Installationsprozesses allerdings nochmals “händisch” eingegriffen werden. Der entsprechende Forumsbeitrag zum Thema:
Siehe auch https://github.com/raspberrypi/noobs/wiki/Adding-custom-OS-version-examples .
Aus Wikipedia:
Noobs lässt sich von der Webseite der Raspberry Pi Foundation herunterladen (als ZIP-Datei), entpacken und auf eine mit dem Dateisystem FAT32 vorformatierte SD-Karte (für Raspberry Pi A und B) oder einer Mikro-SD-Karte (für Raspberry Pi A+, B+, sowie 2 und 3) abspeichern. Nachdem die (Mikro-)SD-Karte in den Raspberry Pi gesteckt wurde, lässt sich per Mausklick das Betriebssystem auswählen, welches installiert werden soll. Dieses wird dann sofort heruntergeladen und auf dem Raspberry Pi installiert. Nach der Installation kann man mit einem weiteren Mausklick das gewünschte Betriebssystem starten. Dies setzt voraus, dass alle Peripheriegeräte wie Monitor, Tastatur und LAN-Kabel/WLAN bereits angeschlossen sind.
Vorteil ist, dass man mit einer SD-Card mehrere Distributionen hosten und beim Hochfahren über Tastatur, Maus oder Fernbedienung entscheiden kann, welches System booten soll, z.B. Raspbian, MLD einer bestimmten Version, LibreElec etc…
Das kann dann auch so aussehen:
Was wir brauchen:
Für MLD werden auf der Noobs-SD-Card drei Partitionen angelegt, nämlich Boot, System (Root) und Daten (Video). Für alle drei Partitionen werden die Größen festgelegt (siehe später “partitions.json”) und entsprechende TAR-Archive für jede Partition vorbereitet. Das TAR-Archive für die Bootpartition enthält die Installationsdateien aus dem MLD-Image. Für die TAR-Archive der System- und Datenpartition werden “leere” TAR-Archive generiert.
$ cd $HOME $ mount | egrep sdX <---- Device der eigenen Umgebung entnehmen /dev/sdbX on /media/<USER>/MLD type vfat ... $ tar -cvf boot.tar -C /media/<USER>/MLD ./ <---- Mountverzeichnis der eigenen Umgebung entnehmen $ xz -9 -e boot.tar
$ mkdir dummy $ echo -e "README.txt\nThis is a tar file for you to use as a placeholder for a partition during Noobs installation." >dummy/README.txt $ tar -cvf root.tar -C dummy ./ $ xz -9 -e root.tar $ cp root.tar.xz data.tar.xz
boot.tar.xz data.tar.xz MLD.png os.json partition_setup.sh partitions.json root.tar.xz
{ "name": "MLD", "version": "5.4", "release_date": "2018-02-01", "kernel": "4.14.18", "description": "VDR based on MLD.", "username": "root", "password": "mld500", "supported_models": ["Pi 2","Pi 3"] }
{ "partitions": [ { "label": "boot", "filesystem_type": "FAT", "partition_size_nominal": 384, "want_maximised": false, "uncompressed_tarball_size": 256 }, { "label": "root", "filesystem_type": "ext4", "partition_size_nominal": 4904, "want_maximised": false, "mkfs_options": "", "uncompressed_tarball_size": 10 }, { "label": "data", "filesystem_type": "ext4", "partition_size_nominal": 9808, "want_maximised": false, "mkfs_options": "", "uncompressed_tarball_size": 10 } ] }
#!/bin/sh set -ex if [ -z "$part1" ] || [ -z "$part2" ] || [ -z "$part3" ]; then printf "Error: missing environment variable part1, part2 or part3\n" 1>&2 exit 1 fi mkdir -p /tmp/1 /tmp/2 /tmp/3 mount "$part1" /tmp/1 mount "$part2" /tmp/2 mount "$part3" /tmp/3 bootuuid=$(blkid $part1 -o value -s UUID) sed /tmp/1/cmdline -i -e "s|root=[^ ]*|root=UUID=${bootuuid}|" #sed /tmp/1/cmdline -i -e "s|root=[^ ]*|root=${part2}|" #sed /tmp/2/etc/fstab -i -e "s|^.* / |${part2} / |" #sed /tmp/2/etc/fstab -i -e "s|^.* /boot |${part1} /boot |" umount /tmp/1 umount /tmp/2 umount /tmp/3
Menu bei einer Noobs-Installation mit je einmal LibreElec und MLD:
Die Partition-Table unter MLD zeigt dann folgendes:
MLD> fdisk -l Disk /dev/mmcblk0: 31.1 GB, 31104958464 bytes 4 heads, 16 sectors/track, 949248 cylinders Units = cylinders of 64 * 512 = 32768 bytes Device Boot Start End Blocks Id System /dev/mmcblk0p1 129 53620 1711724+ e Win95 FAT16 (LBA) <--- Noobs Installations-Partition /dev/mmcblk0p2 53620 949120 28656019+ 5 Extended /dev/mmcblk0p5 53633 54656 32767 83 Linux <--- NOOBS Settingspartition. /dev/mmcblk0p6 54657 71040 524287 c Win95 FAT32 (LBA) <--- Libreelec (SYSTEM) /dev/mmcblk0p7 71041 466048 12640255 83 Linux <--- Libreelec (STORAGE) /dev/mmcblk0p8 * 466049 478336 393215 b Win95 FAT32 <--- MLD Boot /dev/mmcblk0p9 478337 635264 5021695 83 Linux <--- MLD System/Root /dev/mmcblk0p10 635265 949120 10043392 83 Linux <--- MLD Data