0

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!

SJN
  • 31
  • 1
  • 5

1 Answers1

0
  1. You hard-code the NFS server IP address nfsroot=172.30.109.200/ if the DHCP assigned IP and the NFS server belong to different subnetworks please be sure the routing between both is working correctly.

  2. Try adding the DHCP option 3 "Gateway" "RFC 2132" "Tells the client which router is the default router. Avoids ambiguities when trying to route packets across subnetworks.

Pat
  • 3,339
  • 2
  • 16
  • 17