[Eisfair] [EisNG] - zweite HDD einbinden

Erwin Lottermann broeselmeier at gmx.de
Mo Mär 30 15:44:12 CEST 2015


>
> 1. nur die kleine Platte im System und booten
> 2. FAT-formierten USB-Stick (500MB) anstecken
> 3. fdisk -l sagt, dass der Stick /dev/sdb ist und dass /dev/sdb1 bereits
> bootfähig ist (ist der selbe Stick von dem ich EisNG installiert habe)
> 4. mount -t vfat -o rw /dev/sdb1 /mnt
> 5. Verzeichnis boot auf dem Stick angelegt
> 6. extlinux --install /mnt/boot
> im boot-Verzeichnis sind danach die Dateien ldlinux.sys und ldlinux.c32
> 7. Datei extlinux.conf aus /boot nach /mnt/boot kopiert
>
> erster Bootversuch -> "failed to load COM32 file menu.c32"
>
> 8. Datei menu.c32 von /boot nach /mnt/boot kopiert
>
> zweiter Bootversuch -> jetzt fehlt libutil.c32
>
> 9. Datei libutil.c32 von /boot nach /mnt/boot kopiert
>
> dritter Bootversuch -> Endlosschleife bei "Alpine will boot in 1,2,3
> seconds"
>
 > Habe schon etwas probiert, aber komme jetzt nicht mehr weiter.
 >
 > 1. nur die kleine Platte im System und booten
 > 2. FAT-formierten USB-Stick (500MB) anstecken
 > 3. fdisk -l sagt, dass der Stick /dev/sdb ist und dass /dev/sdb1 bereits
 > bootfähig ist (ist der selbe Stick von dem ich EisNG installiert habe)
 > 4. mount -t vfat -o rw /dev/sdb1 /mnt
 > 5. Verzeichnis boot auf dem Stick angelegt
 > 6. extlinux --install /mnt/boot
 > im boot-Verzeichnis sind danach die Dateien ldlinux.sys und ldlinux.c32
 > 7. Datei extlinux.conf aus /boot nach /mnt/boot kopiert
 >
 > erster Bootversuch -> "failed to load COM32 file menu.c32"
 >
 > 8. Datei menu.c32 von /boot nach /mnt/boot kopiert
 >
 > zweiter Bootversuch -> jetzt fehlt libutil.c32
 >
 > 9. Datei libutil.c32 von /boot nach /mnt/boot kopiert
 >
 > dritter Bootversuch -> Endlosschleife bei "Alpine will boot in 1,2,3
 > seconds"
 >

Nun bin ich etwas schlauer.

Der HP Server hat übrigens keine UEFI sondern ein normales BIOS.

Das EisNG/Alpine-Setup scheint einen fast normalen MSDOS-MBR auf die 
500GB-Platte an Port5 geschrieben zu haben.

Die Installation von extlinux auf dem USB-Stick, wie oben beschrieben, 
scheint ok gewesen zu sein.
Dass man die zu den COM32-Modulen von extlinux/syslinux gehörenden 
Dateien manuell kopieren muss, scheint auch normal zu sein.
Alles was es sonst noch zu syslinux/extlinux gibt, findet man unter 
/usr/share/syslinux.

Idealerweise sollte auf dem Boot-Stick nichts sein, was bei sich bei 
einem EisNG/Alpine-Update ändern könnte. Also z.B. kein Kernel.

Wenn ich das hier
http://www.syslinux.org/wiki/index.php/Comboot/chain.c32
richtig verstehe, dann muss das extlinux auf dem Stick so konfiguriert 
werden, dass es ein Chainloading des MBR der Platte an Port5, auf der 
EisNG installiert ist, macht.
Für das Chainloading werden noch die COM32 Dateien chain.c32 und 
libcom32.c32 aut dem Stick benötigt, die man auch in 
/usr/share/syslinux/ findet.

Für die APPEND-Option in der extlinux.conf sollte in meinem Fall
mbr:[disk identifier] geeignet sein, um den MBR der Platte an Port5 für 
das Chainloading zu adressieren. Der disk identifier sind die 4 Byte von
1b8 bis 1bb im MBR.

fdisk -l sollte eigentlich den disk identifier anzeigen.
Das fdisk von Alpine tut das aber nicht und hat in den Experten-Optionen 
auch nicht die Option 'i', mit der man normalerweise den disk identifier 
anzeigen und ändern kann.
Ursache steht vielleicht hier
http://wiki.r1soft.com/display/kb3/Creating+a+Unique+Partition+ID+with+fdisk
(Obwohl da häufig die Begriffe Partition und Disk verwechselt werden)

Schaut man sich mit 'd' in den Experten-Optionen von fdisk die 4 Byte ab 
1b8 an, dann stellt man fest, dass beim Alpine-Setup wohl auch keine 
Disk ID gesetzt wird, denn alle 4 Byte stehen auf 00.

Zum Test habe ich ein Ubuntu vom Stick gestartet und bin mit dem ubuntu 
fdisk auf die Alpine-Platte gegangen. Das hat den Disk identifier mit 
0x00000000 angezeigt und mit 'i' ließ sich er sich in den 
Experten-Optionen ändern.

Zurück zur extlinux.conf für den Boot-Stick.

DEFAULT menu.c32
PROMPT 0
TIMEOUT 100
MENU TITLE Microserver Gen8 USB Boot Helper
MENU AUTOBOOT Alpine from HDD at Port5 will be booted automatically in # 
seconds.
LABEL AlpPort5
   MENU DEFAULT
   MENU LABEL Boot Alpine from HDD at Port5
   COM32 chain.c32
   APPEND mbr:0x22111967
MENU SEPARATOR

Der Bootversuch endet dann mit einem Bildschirm mit rotem Hintergrund 
und weißer Schrift: Illegal OpCode, EAX=00000000, EBX=00000000 usw.

So lange ich nur eine Platte im System habe, hätte auch 'hd0' als 
APPEND-Option in der extlinux.conf für den MBR der ersten Platte im 
System funktionieren sollen. Das führt jedoch zu dem selben Fehler wie 
die mbr-Option.

Hat jemand eine Idee, was ich falsch mache?


Mehr Informationen über die Mailingliste Eisfair