Назад | Перейти на главную страницу

Аргумент загрузки ядра Ubuntu `ip =` не соблюдается; не могу определить почему

Мои параметры загрузки выглядят так:

  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 не были (еще?) обработаны. Это проблема, которую я пытаюсь решить.

Вот еще немного контекста текущей настройки ...

Конечная цель - автоматическая установка динамически создаваемых файлов preseed с использованием этой сетевой конфигурации.

Следует отметить, что если я переключаюсь на виртуальную консоль на тестовой машине и устанавливаю IP-адрес на eth0, установка работает отлично.

Кстати, я знаю, что загружать initrd в ipxe, а затем используйте его как параметр в kernel строка, но по какой-то причине, если я этого не сделаю, при загрузке я получаю ошибку VFS паники ядра.