[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