Как включить сетевые драйверы в initramfs для загрузки PXE?
Я работаю над настройкой загрузки PXE на сервере HPE ProLiant DL360 Gen10. Сервер оснащен 1-портовым адаптером HPE Ethernet 100Gb 842QSFP28 для сетевого интерфейса.
У нас есть собственное ядро Linux, которое было специально настроено для некоторых тяжелых задач числовых вычислений. Когда это кастомное ядро загружается из локального хранилища, сетевая карта не загружается. Вероятно, это связано с тем, что сетевому адаптеру требуются драйверы сторонних производителей. Я получил драйверы с веб-сайта HPE.
На данный момент для поддержания работоспособности машины работает стандартное ядро (3.10 с CentOS 7). Изучив документацию по драйверу и инструкцию по установке, я обнаружил, что существуют некоторые варианты сценария установки, позволяющие установить необходимые модули ядра для целевого ядра. При использовании этой опции модули ядра устанавливаются в каталог/lib/modules/4.4.47/extra/
. Используя это, я создаю файл initramfs, используяdracut -f /path/to/custom-initramfs.img /path/to/custom-vmlinuz --kver 4.4.47
Я развернул собственный initramfs и образ ядра в каталог tftpboot и соответствующим образом настроил pxelinux.cfg. Когда я перезагружаю сервер, он успешно обнаруживает ядро и initramfs, но через некоторое время застревает при попытке обнаружения сети. Я просто получаю сообщение «Пытаюсь обнаружить сеть». Затем он меняется на «Повторная попытка через 110 секунд». Наконец время истекает и остается застрявшим.
Так по какой-то причине сетевые драйвера не загружаются. Когда я используюzcat
чтобы проверить содержимое initramfs, я вижу, что в него включены модули драйверов. Я не уверен, как действовать дальше. Документация по драйверу не содержит подробной информации о том, как выполнить установку для загрузки PXE. Может ли кто-нибудь посоветовать, что еще я могу попробовать дальше? Спасибо.