So wählen Sie eine Bootdiskette aus wie bei pxelinux

So wählen Sie eine Bootdiskette aus wie bei pxelinux

Ich habe einen Computer mit pxelinux konfiguriert und kann von DHCP/TFTP booten. Ich kann den Bootloader empfangen und dann von einer lokalen Festplatte oder SSD booten. Aber ich möchte mit dem Bootloader auswählen, von welchem ​​Gerät gebootet werden soll. Auf einem Computer mit zwei Geräten möchte ich beispielsweise auswählen, von welchem ​​Gerät gebootet werden soll. Ich habe mit der Konfiguration von pxelinux herumgespielt und die Dokumentation gelesen, aber es scheint, dass dort nur der Net-Boot-Prozess erwähnt wird. Hier ist meine Beispielkonfigurationsdatei (Standard)

default ssd
prompt 1
ONTIMEOUT local
timeout 3000

MENU TITLE PXE Menu

LABEL hdd
    MENU LABEL Boot local hard drive
    root= (hd0,2)
    kernel /boot/vmlinuz-3.11.6-4-desktop
    initrd=(hd0,2)/boot/initrd-3.11.6-4-desktop

LABEL ssd
    MENU LABEL Boot local hard drive
    LOCALBOOT -1

Es hat pxelinux 6.0.3 und ich habe fast jede Kombination ausprobiert, aber die einzige Antwort ist immer, dass es den Kernel oder die Datei nicht finden kann initrd, egal ob ich etwas sage /dev/sda2oder (hd0,2)oder so.

Übersehe ich etwas, oder ist diese Aufgabe mit pxelinux nicht möglich?


Bei jeder Option lautet die Antwort immer „Keine solche Datei oder kein solches Verzeichnis“, außer bei Option „zwei“, bei der der Bootvorgang ordnungsgemäß funktioniert. (Ich konnte kein Protokoll von der Konsole abrufen.) TFTP vom Client zum Server funktioniert ohne Probleme.

default menu.c32
prompt 0
ONTIMEOUT local
timeout 3000

MENU TITLE PXE Menu

LABEL one
        MENU LABEL Boot local hard drive
    root= hd0 2
    kernel /boot/vmlinuz-3.11.6-4-desktop

LABEL two
        MENU LABEL Boot local hard drive
        LOCALBOOT 0

LABEL three
        MENU LABEL Boot local hard drive
    root=/dev/sda2
    kernel vmlinuz-3.11.6-4-desktop
    initrd=/boot/initrd-3.11.6-4-desktop.gz

LABEL four
        MENU LABEL VIER
    root=/dev/sda2 rw
        KERNEL ftp://179.99.99.1/chain.c32

LABEL five
    MENU LABEL Hole chain.c32 uebers Netz
    root hd0 2
    KERNEL chain.c32

LABEL six
        MENU LABEL VIER
    root=(hd0,2) rw
        KERNEL /boot/chain.c32

LABEL seven
    MENU LABEL Hole chain.c32 uebers Netz
    root hd0 2
    KERNEL /boot/chain.c32
    initrd=/boot/initrd-3.11.6-4-desktop.gz 

Der Status des xinetd-Daemons zeigt, dass der Client-Tftp die Dateien vom Server anfordert. Es scheint, als würde der Client die Dateien vom Server abrufen. Aber warum verarbeitet er sie nicht...

xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled)
   Active: active (running) since Wed 2016-06-29 16:08:46 CEST; 21min ago
 Main PID: 1536 (xinetd)
   CGroup: /system.slice/xinetd.service
           |-1536 /usr/sbin/xinetd -stayalive -dontfork
           `-2938 in.tftpd -s /rde/installation/tftpboot -vvv

Jun 29 16:21:47 uaewg-srv in.tftpd[4161]: RRQ from ::ffff:199.99.99.10 filename menu.c32
Jun 29 16:22:32 uaewg-srv in.tftpd[4279]: RRQ from ::ffff:199.99.99.10 filename chain.c32
Jun 29 16:22:32 uaewg-srv in.tftpd[4280]: RRQ from ::ffff:199.99.99.10 filename chain.c32
Jun 29 16:22:36 uaewg-srv in.tftpd[4288]: RRQ from ::ffff:199.99.99.10 filename chain.c32
Jun 29 16:24:17 uaewg-srv in.tftpd[4544]: RRQ from ::ffff:199.99.99.10 filename pxelinux.0
Jun 29 16:24:17 uaewg-srv in.tftpd[4545]: RRQ from ::ffff:199.99.99.10 filename ldlinux.c32
Jun 29 16:24:17 uaewg-srv in.tftpd[4556]: RRQ from ::ffff:199.99.99.10 filename pxelinux.cfg/default
Jun 29 16:24:17 uaewg-srv in.tftpd[4558]: RRQ from ::ffff:199.99.99.10 filename menu.c32
Jun 29 16:24:34 uaewg-srv in.tftpd[4580]: RRQ from ::ffff:199.99.99.10 filename chain.c32
Jun 29 16:24:38 uaewg-srv in.tftpd[4588]: RRQ from ::ffff:199.99.99.10 filename chain.c32

Antwort1

Ich habe herausgefunden, wie ich pxelinux für meine Bedürfnisse konfigurieren kann. tftp lief bereits und funktionierte, ich habe ein „tail -f /var/log/messages“ ausgeführt und festgestellt, dass chain.c32 nicht funktionierte (es wurde geladen, aber es passierte nichts):

2016-06-29T16:15 uaewg-srv xinetd[1536]: START: tftp from=::ffff:172.99.199.9
2016-06-29T16:15 uaewg-srv in.tftpd[2939]: RRQ from ::ffff:172.99.199.9 filename chain.c32
2016-06-29T16:18 uaewg-srv sshd[3183]: Accepted keyboard-interactive/pam for uae_wg_sim from 127.0.0.1 port 54948 ssh2

Dann könnte ich es mit den anderen Dateien versuchen, ich habe die vmlinuz und initrd Dateien in der../tftpboot/pxelinux.cfg/defaultKonfigurationsdatei:

prompt 0
ONTIMEOUT local
timeout 3000

MENU TITLE PXE Menu

LABEL local
        MENU LABEL Boot local hard drive
        LOCALBOOT 0

LABEL hdd
      kernel vmlinuz-3.11.6-4-desktop
      APPEND initrd=initrd-3.11.10-21-desktop  root=/dev/sda2

chain.c32, menu.c32 hat auf dem System auch nicht funktioniert, ich weiß nicht warum, vielleicht versuche ich es herauszufinden, wenn ich noch Zeit habe, ich bin froh, dass es jetzt funktioniert. /var/log/Nachrichtenist eine gute Hilfe bei der Fehlerdiagnose. Es war nicht klar, wer für den tftpd verantwortlich war, aber ich fand heraus, dass er vermutlich von xinetd und nicht von systemd gestartet wurde. Ich änderte den Inhalt von/etc/xinetd.d/tftpZu :

service tftp
{
#   per_source      = 11
    cps         = 100 2
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /rde/installation/tftpboot -vvv
    flags           = IPv6 IPv4
}

Grüße und Danke an Cas für seine Hilfe!

Antwort2

Sie müssen den Kettenlader verwenden (Kette.c32) aussyslinuxWie bei den anderen syslinuxModulen gibt es unterschiedliche Versionen für BIOS, efi32 und efi64.

LABEL local
    MENU DEFAULT
    MENU LABEL Boot from Local Hard Disk
    KERNEL /path/to/chain.c32
    APPEND hd0 2

Das ist eine leicht angepasste Version meiner /srv/tftp/defaultDatei – meine Version hat KERNEL http://ip.ip.ip.ip/tftp/chain.c32(mein httpd ist so konfiguriert, dass es /tftp/von aus bedient wird /srv/tftp– TFTP würde genauso gut funktionieren) und APPEND hd0 0.

verwandte Informationen