UEFI syslinux не загружает initrd через HTTP при загрузке PXE

Я пытаюсь настроить загрузку GParted Live PXE и следую инструкциям PXELINUX, чтобы настроить загрузку.

У меня это работает с TFTP, но теперь я хочу переключить загрузку vmzlinuz, initrd и другие "большие" файлы в HTTP, потому что это медленно.

Однако, когда я меняюсь, initrd=/gparted/initrd (TFTP) в http://192.168.0.1/gparted/initrd в конфиге pxe экран загрузки висит бесконечно

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...

Глядя на сетевой трафик через wireshark, я вижу соответствующие передачи для /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz, После этого наступает мертвая пауза, поэтому я предполагаю, что стек HTTP не работает должным образом.

На странице PXELINUX написано:

Начиная с версии 5.10, специальный двоичный файл PXELINUX, lpxelinux.0, изначально поддерживает передачу по HTTP и FTP.

Однако в разделе UEFI говорится:

Загрузчики "(l)pxelinux.0" могут загружать клиенты на основе BIOS. Аппаратное обеспечение, использующее UEFI, должно использовать соответствующий "syslinux.efi" (для EFI IA32 или EFI X64 соответственно) вместо использования "(l)pxelinux.0".

Как вы можете видеть из списка загруженных файлов TFTP, после моего опыта в моем предыдущем вопросе PXE я перешел с загрузчиком UEFI.

Существует ли также дополнительная "l"-версия загрузчиков UEFI, которая предлагает поддержку HTTP? Что я могу сделать для дальнейшей диагностики?

1 ответ

Решение

Согласно этому сообщению, syslinux.efi должен поддерживать HTTP. Это может зависеть от некоторых функций / сервисов UEFI. В этом отношении конкретная реализация UEFI вашей доски может быть нарушена.

Поэтому я выполнил некоторые тесты, используя мой компьютер и QEMU с прошивкой OVMF, используя мою существующую конфигурацию PXELINUX. Я заметил следующие эффекты:

  • Когда у меня была локальная загрузка в качестве настройки по умолчанию и тайм-аут, он немедленно выходил, возвращая меня в меню выбора загрузки (ПК) или перезагрузки (QEMU).
  • Когда у меня был какой-либо интерфейс (проверено: vesamenu.c32, menu.c32), он зависнет (ПК) или перезагрузится (QEMU).
  • Когда я удалил UI, DEFAULT а также TIMEOUTЯ прибыл в обычном текстовом режиме подсказки. Ничто не загрузится, хотя, он только жаловался ни UI ни DEFAULT быть установленным

Этот опыт в сочетании с тем фактом, что GRUB2 работал безупречно, включая графический режим на моем ПК и QEMU, приводит меня к выводу, что SYSLINUX 6.03 (пока) не подходит для сетевой загрузки UEFI.

К сожалению, GRUB2 не был создан для установки "вручную". Он также очень тяжелый, он загружается через PXE в течение нескольких секунд (в обычной модульной версии). Хотя я не знаю лучшей альтернативы.

Другие вопросы по тегам