UEFI syslinux lädt Initrd nicht über HTTP beim PXE-Start

2677
Nobody

Ich versuche, einen GParted Live PXE-Start einzurichten und den Anweisungen von PXELINUX zu folgen, um den Start einzurichten.

Ich habe es mit TFTP zu tun, aber jetzt möchte ich das Laden von und anderer "großer" Dateien auf HTTP umstellen vmzlinuz, initrdda es langsam ist.

Wenn ich jedoch die initrd=/gparted/initrd(TFTP) http://192.168.0.1/gparted/initrdin der pxe config ändere, hängt der Ladebildschirm unbegrenzt an

Getting cached packet My IP is 192.168.0.97 Loading vmlinuz... ok <-- that is still loadedvia TFTP) Loading http://192.168.0.1/gparted/initrd... 

Mit Blick auf den Netzwerkverkehr über wireshark kann ich die entsprechenden Übertragungen sehen für /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz. Danach ist es totenstill, also gehe ich davon aus, dass der HTTP-Stack nicht wie beabsichtigt funktioniert.

Die PXELINUX-Seite sagt:

Seit Version 5.10 unterstützt eine spezielle PXELINUX-Binärdatei, lpxelinux.0, HTTP- und FTP-Übertragungen

Der UEFI-Abschnitt sagt jedoch:

Die Bootloader "(l) pxelinux.0" können BIOS-basierte Clients netbooten. Hardware, die UEFI verwendet, muss die entsprechende "syslinux.efi" (für EFI IA32 bzw. EFI X64) anstelle von "(l) pxelinux.0" verwenden.

Wie Sie der Liste der mit TFTP geladenen Dateien entnehmen können, habe ich nach meiner Erfahrung in meiner früheren PXE-Frage den UEFI-Loader verwendet.

Gibt es auch eine zusätzliche "l" -Version der UEFI-Bootloader, die HTTP-Unterstützung bietet? Was kann ich zur weiteren Diagnose tun?

1
Gemäß [dieser Nachricht] (http://www.syslinux.org/archives/2014-August/022549.html) sollte es HTTP unterstützen. Dies kann von UEFI-Funktionen abhängen, die in Ihrer spezifischen Implementierung möglicherweise beschädigt werden. Daniel B vor 8 Jahren 0
Nachdem ich ein wenig experimentiert habe, finde ich, dass Syslinux mit UEFI netboot unbrauchbar ist. Ich schlage vor, Sie wechseln zu etwas anderem wie Grub2. Daniel B vor 8 Jahren 0
@DanielB: Danke für die Recherche. Ich war kurz davor, einige andere UEFI-Implementierungen zu überprüfen, habe aber sehr wenig Zeit. Machen Sie aus diesem Kommentar eine Antwort mit etwas Erklärung, was Sie versucht haben, und ich werde es akzeptieren. Nobody vor 8 Jahren 0

1 Antwort auf die Frage

2
Daniel B

Nach dieser Nachricht, syslinux.efisollte HTTP unterstützen. Es kann sich dabei auf einige UEFI-Funktionen / -Dienste verlassen. Die spezifische UEFI-Implementierung Ihres Boards ist in dieser Hinsicht möglicherweise defekt.

Also habe ich einige Tests mit meinem PC und QEMU mit der OVMF-Firmware durchgeführt und dabei meine vorhandene PXELINUX-Konfiguration verwendet. Ich habe folgende Auswirkungen beobachtet:

  • Wenn ich den lokalen Start als Standard festgelegt und ein Timeout festgelegt hatte, wurde er sofort beendet und kehrte zum Startauswahlmenü zurück (PC) oder einen Neustart (QEMU).
  • Wenn ich jede UI hatte (getestet: vesamenu.c32, menu.c32) aktiviert ist, wäre es (PC) oder Neustart (QEMU) hängen.
  • Wenn ich entfernt UI, DEFAULTund TIMEOUTkam ich in der üblichen Text-Modus - Eingabeaufforderung. Nichts würde jedoch starten, es beklagte sich nur darüber, dass es weder festgelegt UInoch DEFAULTfestgelegt wurde.

Diese Erfahrung, zusammen mit der Tatsache, dass GRUB2 sowohl auf meinem PC als auch auf der QEMU fehlerfrei im Grafikmodus funktioniert hat, führt zu der Schlussfolgerung, dass SYSLINUX 6.03 (noch) nicht für UEFI-Netboot geeignet ist.

Leider wurde GRUB2 nicht für "von Hand" eingerichtet. Es ist auch sehr schwer und dauert einige Sekunden, um PXE zu laden (unter Verwendung der regulären modularen Version). Ich kenne keine bessere Alternative.