多个网络适配器的 UEFI PXE NFS 启动问题

多个网络适配器的 UEFI PXE NFS 启动问题

我有一个正在运行的 PXE 服务器,它可以检测客户端是 BIOS 还是 UEFI,并成功启动网络客户端。

该系统的目的是通过网络启动物理服务器,以便在发货前自动升级固件等。

在 BIOS 和 UEFI 模式下启动虚拟机都可以完美运行,但是当我启动具有多个 NIC 的物理服务器(所有服务器都有)时,PXE 启动可以正常进行,但通过 NFS 进行的操作系统启动却不行。

我认为问题在于 NFS 出于某种原因在不同的 NIC 上启动,我已通过连接所有 8 个 NIC 证明了这一点,然后服务器按预期启动。在生产中,这是行不通的。

值得注意的是,启动期间仅连接一个 NIC。

如何确保用于 PXE 的 NIC 也用于 OS/NFS 启动?

这是我的 grub.cfg,由 tftp 服务器提供:

# By default, boot the GNU/Linux
set default=gnulinux

# Fallback to GNU/Hurd.
set fallback=gnuhurd

if loadfont /grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi

load_video
set gfxpayload=keep
insmod net
insmod efinet
insmod tftp
insmod gzio
insmod part_gpt
insmod ext2

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
set timeout=5

menuentry "CentOS 7 HPE iLO update" {
   set gfxpayload=keep
   linux grub/CentOS7/vmlinuz ip=dhcp root=/dev/nfs rw nfsroot=172.30.109.200:/data/CentOS7 netboot=nfs networkstatic=yes selinux=0 ipv6.disable=1
   initrd grub/CentOS7/initrd.img
}

关于如何解决这个问题,有什么指点吗?

谢谢!

答案1

  1. nfsroot=172.30.109.200/如果 DHCP 分配的 IP 和 NFS 服务器属于不同的子网,则可以对NFS 服务器 IP 地址进行硬编码,请确保两者之间的路由正常工作。

  2. 尝试添加 DHCP 选项 3“网关”“RFC 2132”“告诉客户端哪个路由器是默认路由器。避免在尝试跨子网路由数据包时出现歧义。

相关内容