通过 PXE 安装 Debian 时使用 preseed.cfg 文件时遇到了问题。
我的网卡需要 firmware-bnx2 包才能被 debian 内核考虑。
在 PXE 启动过程中,制造商允许系统设置其网络接口并到达 initrd 和内核,然后开始安装。在这个 initrd 中,我放置了 pressed.cfg 文件,该文件已考虑在内。但直到我安装此 bnx2 包后,安装才能自动完成。
我不知道如何在启动过程中安装 bnx2 包。我认为这可以通过指令来实现
d-i hw-detect/load_firmware boolean true
文档说
# If non-free firmware is needed for the network or other hardware, you can
# configure the installer to always try to load it, without prompting. Or
# change to false to disable asking.
但我不知道在哪里设置这个包以及如何安装它。
有人能帮帮我吗?
非常感谢!
答案1
您可能希望将缺失的固件添加到 debian-installer 文件系统。以下是操作方法。
首先介绍一些背景信息:我们承认我们已将 PXE 配置为使用 /tftpboot 作为 TFTP 根,并使用以下“菜单”而不是 pxelinux.cfg 中的默认菜单:
默认安装标签安装 菜单标签 ^安装 菜单默认 内核 debian-installer/amd64/linux 附加 vga = 788 initrd = debian-installer / amd64 / initrd.gz auto = true 接口 = 自动优先级 = 关键 url = http://192.0.2.5 preseed / url = http://192.0.2.5/my-custom-preseed.cfg console = ttyS1,115200n8
因此从那里开始:
- 找到你的 inirtd.gz 文件并展开它
cd /tftpboot/debian-installer/amd64/ cp initrd.gz initrd.gz.orig mkdir -p tmp/initrd; cd tmp/initrd zcat ../../inirt.gz | cpio -iv
- 您将获得所需的固件并将其放入其中:
apt-get install --download-only 固件-bnx2 固件-bnx2x cd /tftpboot/debian-installer/amd64/tmp/initrd dpkg-deb -x /var/cache/apt/archives/firmware-bnx2_*.deb ../ dpkg-deb -x /var/cache/apt/archives/firmware-bnx2x_*.deb ../ cp -a ../lib/固件 lib/固件
- 并重建 initrd 文件
cd /tftpboot/debian-installer/amd64/tmp/initrd 查找 . -print0 | cpio -0 -H newc -ov | gzip -c > ../../initrd.gz
你已经完成了,尝试一下吧。
答案2
这可能有点偏题,但我很幸运地将 iPXE 链接为实际的引导加载程序。除其他优点外,它还具有一种与 initrd 一起加载内核模块的机制。查看http://ipxe.org/cmd/imgfetch?redirect=1举个例子。