UEFI Network Boot Across Subnets

UEFI style network boot – press Enter, not F12!

A few years ago when UEFI became much more common on new PCs I wanted to use the UEFI network boot, rather than the old style PXE boot, for imaging machines. This worked fine for computers sat on the same subnet and VLAN as the server, but getting this to work when the client device is in a different subnet took a bit of work.

On your DHCP server, you need to create two policies – you can do this at the server level rather than in each individual subnet:

Set the vendor class for each policy

Set up two policies as follows:

Policy Name Condition Options
PXEClient UEFIx64 Vendor Class = PXECleint (UEFI x64) 067 Bootfile Name: SMSBoot\x64\wdsnbp.com
PXEClient BIOS Vendor Class = PXEClient (BIOS x86 & x64) 067 Bootfile Name: SMSBoot\x64\wdsnbp.com

Mine are ordered with the UEFI one first, I’m not sure if it matters which order they are in or not.

In your server options you should have the two 067 options for the policies just created, along with the boot server hostname (or IP), I’ve also got a third 067 policy.

Now if you try to network boot cross-subnet you should find it works. This setup means you can direct UEFI and BIOS clients to different boot loaders if needed – however I just point them all at the x64 loader as everything supports x64 these days.

Looking at it, it doesn’t really make sense why this is needed – as we’re giving both sets of clients the exact same settings – but with just the bootfile name on its own with no policy it didn’t work for me.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.