Мои параметры загрузки выглядят так:
set i ${net0/ip}
set ns 192.168.99.101
set t tftp://${ns}/pxelinux.cfg
set h http://${ns}:8070/api/1.0
initrd ${t}/initrd.gz
kernel ${t}/vmlinuz initrd=${t}/initrd.gz BOOTIF=${net0/mac} vga=788 net.ifnames=0 biosdevnames=0 auto url=${h}/preseed ip=192.168.99.89:::255.255.255.0::eth0:none ip=:::::eth1:dhcp BOOT_DEBUG=1 language=en country=US locale=en_US.UTF-8
Это загружается, но конфигурация IP ядра не выполняется. Я не загружаюсь из NFS, для которой я знаю ip=
изначально был задан параметр загрузки, однако в Google говорят, что он все еще должен работать.
Проверка syslog
на тестовой машине я не могу найти ничего полезного для отладки, кроме этой записи:
INFO: Could not find valid BOOTIF= entry in /proc/cmdline
Тем не мение, /proc/cmdline
является:
# cat /proc/cmdline
initrd=tftp://192.168.99.101/pxelinux.cfg/initrd.gz BOOTIF=08:00:27:5e:18:12 vga=788 net.ifnames=0 biosdevnames=0 auto url=http://192.168.99.101:8070/api/1.0/preseed ip=192.168.99.89:::::eth0:none ip=:::::eth1:dhcp BOOT_DEBUG=1 language=en country=US locale=en_US.UTF-8
Во время процесса установки отображается диалоговое окно, в котором указано, что было найдено несколько интерфейсов, и нужно выбрать, какой из них я хочу использовать в качестве основного. Я выбираю eth1, потому что DHCP, и надеюсь, что я получаю это диалоговое окно только потому, что мой cmdline
args еще не обработаны. Однако вскоре после того, как DHCP выполняется для eth0, я получаю сообщение об ошибке, что preseed не может быть найден. Это очевидно потому, что ip=
params не были (еще?) обработаны. Это проблема, которую я пытаюсь решить.
Вот еще немного контекста текущей настройки ...
undionly.kpxe
...В настоящее время.config net0
192.168.99.89
255.255.255.0
dhcp net1
ifopen
set i ${net0/ip}
set ns 192.168.99.101
set t tftp://${ns}/pxelinux.cfg
set h http://${ns}:8070/api/1.0
initrd ${t}/initrd.gz
kernel ${t}/vmlinuz initrd=${t}/initrd.gz BOOTIF=${net0/mac} vga=788 net.ifnames=0 biosdevnames=0 auto url=${h}/preseed ip=${i}:::255.255.255.0::eth0:none ip=:::::eth1:dhcp BOOT_DEBUG=1 language=en country=US locale=en_US.UTF-8
boot
Конечная цель - автоматическая установка динамически создаваемых файлов preseed с использованием этой сетевой конфигурации.
Следует отметить, что если я переключаюсь на виртуальную консоль на тестовой машине и устанавливаю IP-адрес на eth0, установка работает отлично.
Кстати, я знаю, что загружать initrd
в ipxe, а затем используйте его как параметр в kernel
строка, но по какой-то причине, если я этого не сделаю, при загрузке я получаю ошибку VFS паники ядра.