I have a working PXE server which detects the client side as either BIOS or UEFI and boots network clients successfully.
The purpose of this system is to network boot physical servers in order to automate the upgrade of firmware etc. prior to shipping.
Booting VMs on both BIOS and UEFI mode works perfectly, however when I boot a physical server which has multiple NICs (as all do) the PXE boot works fine but the OS boot over NFS doesn't.
I think the issue is that NFS starts on a different NIC for some reason, I've proven this by connecting all 8 NICs, the server then boots as expected. In production this isn't going to be workable.
It's worth noting that only one NIC is connected during the boot.
How can I ensure that the NIC used for PXE is also used for the OS/NFS boot?
Here is my grub.cfg which is served up by the tftp server:
# 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
}
Any pointers on how I can solve this one?
Thanks!