我正在 PXE 引导 Ubuntu 22.04 安装。对于 grub 映像,我使用的是此处的映像。
根据文档:
GRUB will search for its configuration files in order using the following rules where the appended value corresponds to a value on the client machine.
‘(FWPATH)’/grub.cfg-‘(UUID OF MACHINE)’
‘(FWPATH)’/grub.cfg-‘(MAC ADDRESS OF NIC)’
‘(FWPATH)’/grub.cfg-‘(IPv4 OR IPv6 ADDRESS)’
‘(FWPATH)’/grub.cfg
但是,除了以下内容之外,没有任何 TFTP 请求grub.cfg
:
in.tftpd[7037]: RRQ from 10.128.128.13 filename boot/tree/EFI/boot/bootx64.efi
in.tftpd[7038]: RRQ from 10.128.128.13 filename boot/tree/EFI/boot/grubx64.efi
in.tftpd[7040]: RRQ from 10.128.128.13 filename /grub/x86_64-efi/command.lst
in.tftpd[7041]: RRQ from 10.128.128.13 filename /grub/x86_64-efi/fs.lst
in.tftpd[7042]: RRQ from 10.128.128.13 filename /grub/x86_64-efi/crypto.lst
in.tftpd[7043]: RRQ from 10.128.128.13 filename /grub/x86_64-efi/terminal.lst
in.tftpd[7044]: RRQ from 10.128.128.13 filename /grub/grub.cfg
in.tftpd[7045]: RRQ from 10.128.128.13 filename /grub/fonts/unicode.pf2
我的问题是:如何让 grub 根据(例如)MAC 地址加载不同的配置文件?
[ 编辑添加一些细节:
- 是的,我确实创建了一个名为 的文件
grub.cfg-00-0a-11-22-33-44
,但它从未被下载/访问 - 我确实阅读了文档中有关的部分
feature_net_search_cfg
,但我不知道如何确定我的 grub 映像的设置值]
我相信
grubnetx64.efi
图像嵌入配置正在改变行为。此配置似乎是在构建脚本中生成的。如果您启动此映像并打开 grub 命令行,则配置将通过
cat (memdisk)/grub.cfg
.选项1
您可以使用不同的 grub 映像。我之前使用过Debian grub 映像和Fedora grub 映像来启动 Ubuntu 安装程序。它们似乎都使用 的默认行为
feature_net_search_cfg
。如果启用安全启动,则只能使用 Ubuntu 映像。选项2
您可以使用该命令制作自己的 grub 映像
grub-mknetdir
。选项3
您可以按原样使用 Ubuntu 映像,并使用 grub 配置复制所需的功能。如果你想加载基于 MAC 地址的 grub 配置,那么
grub.cfg
内容可以简单地包含