[Eisfair] Wechselseitiges eisfair-Booten von HD bzw. Stick

Marcus Röckrath marcus.roeckrath at gmx.de
Mo Jun 26 15:52:02 CEST 2023


Hallo,

ich hatte das Problem zu lösen, an einem PC sowohl einen Stick als auch
direkt von der HD eisfair booten zu wollen.

Üblicherweise kann man das natürlich durch An- und Abstecken des Sticks
lösen, aber mit Arthrose und PC im Keller, ist das keine Option.

Die Lösung sieht wie folgt aus; alles passiert auf dem eisfair-USB-Stick:

1. Anlegen des Verzeichnisses /boot/eis64hd

2. Hinterlegen eines Bootmenüeintrages für die eisfair-HD-Installation in
einer Datei namens /boot/eis64hd/extlinux.conf.eis64hd mit folgendem Inhalt
(UUID müsste jeder für seine Verhältnisse natürlich anpassen):

LABEL eis64hd
    MENU LABEL eis64hd
    KERNEL ../eis64hd/kernel-eis64hd
    INITRD ../eis64hd/initrd-eis64hd.gz
    APPEND root=UUID=1c951cc5-6e00-4062-9b28-4fea81a794ac consoleblank=600
vga=769 nomodeset

3. Erstellen des folgendes Skriptes:

#/bin/sh
label=eis64hd
if (mount /dev/sda1 /mnt)
then
    cp /mnt/kernel /boot/${label}/kernel-${label}
    cp /mnt/initrd.gz /boot/${label}/initrd-${label}.gz
    umount /mnt
fi
if ! grep -q "^LABEL ${label}$" /boot/extlinux/extlinux.conf
then
    echo Adding boot entry for ${label}
    cat /boot/${label}/extlinux.conf.${label}
>> /boot/extlinux/extlinux.conf
fi
if grep -q "^LABEL ${label}$" /boot/extlinux/extlinux.conf
then
    extlinux --once=${label} /boot/extlinux
    reboot
else
    echo Boot label ${label} not found
fi

und z. B. als bootfromhd abspeichern und ausführbar machen.

Was tut das Skript nun?

Es mountet zunächst die boot-Partition von hd und kopiert dann kernel und
initrd.gz von der HD ins Verzeichnis /boot/eis64hd. Dateinamen dabei noch
um -eis64hd ergänzt (nur wegen Optik).

Dann wird geprüft, ob es in der richtigen extlinux.conf schon einen
Bootmenüeintrag für den HD-Kernel gibt und wird gegebenenfalls aus obiger
extlinux.conf.eis64hd hinzugefügt.

Nach erneuter Prüfung auf das notwendige Bootlabel wird mit extlinux dieses
für einen einmaligen Boot aktiviert und dann in das HD-System rebootet.

Beendet man das HD-System wird nun automatisch wieder vom Stick gebootet.

Da immer erst bei Nutzung das Skript notwendige Vorarbeiten macht, wäre das
sogar Kernelupdatefest.

Nur so als Anregung, weitere Ideen oder Verbesserungen sind willkommen.

-- 
Gruß Marcus
[eisfair-Team]


Mehr Informationen über die Mailingliste Eisfair