У меня есть dnsmasq в режиме прокси, обслуживающий службу pxe и tftp-сервер, используя эту конфигурацию:
port=0
log-dhcp
log-queries
log-facility=/var/log/dnsmasq.log
dhcp-range=192.168.0.0,proxy
enable-tftp
tftp-root=/tftp
pxe-service=x86-64_EFI,boot, grub/bootx64.efi
Используя эту конфигурацию. Grub загружается нормально, но имеет неправильный префикс, значения net_default_server и pxe_default_server. Они установлены на 192.168.0.1, что является IP-адресом маршрутизатора, предоставляющего DHCP. Когда я вручную устанавливаю префикс и корень и запускаю normal
команда. Конфиг загружается и все работает нормально.
Я использую grubnetx64.efi.signed файл, предоставленный ubuntu, с регулировочной шайбой для надежного крепления.
Как grub определяет значение этих переменных?
Могу ли я изменить их навсегда?
Это давно известная ошибка в Shim / Grub.
https://bugs.launchpad.net/ubuntu/+source/shim/+bug/1813541
Это происходит в прокси-конфигурациях, где DHCP <> PXE. Прокладка TFTP жестко запрограммирована на DHCP и игнорирует PXE-параметр «следующий-сервер». Поскольку вам нужна версия, подписанная (Microsoft), вы находитесь в руках Ubuntu или Debian. Но вот уже много лет это остается неизменным.