Есть вопрос касательно загрузки pxe в freebsd. Давайте предположим следующее.

  • Компьютер A = сервер dhcpd/tftp/console
  • Машина B = нет ОС (о том, чтобы получить один по PXE)

После pxe-загрузки машины B я ожидаю, что у машины B будет возможность доступа к сети.

Сегодня я столкнулся с чем-то действительно интересным. Я загрузил pxe Machine B, но когда я набрал «ifconfig -a», я нашел только петлю. Что невозможно, должен быть хотя бы один интерфейс, тот самый интерфейс, который использовался машиной B для загрузки с машины А.

Кто-нибудь может дать мне некоторое представление о том, почему это происходит?

Спасибо

1 ответ1

2

Процесс загрузки / установки PXE состоит из нескольких этапов. На первом этапе микропрограмма, содержащаяся в вашей плате сетевого адаптера, предоставляет услуги стандартизированного сетевого драйвера PXE (UNDI). Этот драйвер обрабатывает первые передачи TFTP как:

  1. NBP (программа сетевой загрузки), т.е. pxelinux.0
  2. ядро т.е. в мире Linux vmlinuz
  3. initrd, т.е. в мире Linux initrd.gz

NBP после TFTP-передачи файлов ядра и initrd передает управление ядру, которое монтирует initrd.

На этом этапе (второй этап) работающее ядро больше не будет использовать драйвер PXE UNDI и начинает использовать свои собственные сетевые драйверы. Здесь вы можете очень хорошо видеть, что переданный initrd "не включает в себя соответствующий драйвер NIC", а затем на консоли, если вы введете ifconfig, вы увидите только петлю 127.0.0.1

Как вы можете видеть, в то время как драйвер сетевой платы PXE может передавать начальные загрузочные компоненты, загруженная ОС может не включать необходимые драйверы сетевой карты для продолжения нормальной работы.

В моем примере упоминался Linux, но загрузка любого варианта BSD также включает начальные передачи PXE, обрабатываемые драйвером UNDI, и следующее загруженное ядро с использованием его собственных сетевых драйверов (если доступно).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .