A few weeks ago I changed a lot within my LAB: I divided the Clients from the Servers into separate VLANs to have a more accurate Lab.
Now I wanted to install a VM on my Windows 10 Hyper-V environment, but when I tried to boot PXE, the machine stays for a while on this status:
Performing DHCP Negotiation
Afterwards the System told me, that there was DHCP failed:
I thought, that this would be Firewall/DHCP/DHCP-Relay related issue, thus the clients did also not get a Lease on the DHCP Server, I only saw some Discovers and Offers, but not more. The firewall did not show any packets that would be dropped because of missing rules (but while searching the net I found this interesting Site about the Broadcast of DHCP Relays: https://supportforums.cisco.com/discussion/11853326/dhcp-relay-pxe-nexus-5500).
It took a while until I realized what I’m missing:
DHCP Boot Option 66 and 67!
After configuring Boot Option 66 to my SCCM/WDS Server, and added \smsboot\x86\wdsnbp.com to Option 67 from my Client Scope, it worked like a charm.
Option 66: FQDN-Of-Server (IP is also usable)
Option 67: \smsboot\x86\wdsnbp.com
With Option 67 set like above, UEFI Clients will not be able to boot the PXE Image, a Generation 2 Hyper-V VM will show you:
“The PE/COFF image is invalid”
This means, that you should use the UEFI PXE image within boot Option 67
Option 67: SMSBoot\x64\wdsmgfw.efi
Afterwards Hyper-V Gen2 VMs and UEFI Clients will be able to boot from PXE, but BIOS based clients no longer. Here is the PXE Error PXE-E79 shown, when a Generation 1 Hyper-V machine tries to boot a UEFI image:
So how can you get both?
Do not use DHCP options, use ip helpers to configure the PXE Server. The client will then automatically ask for the correct PXE boot image.
Hope this helps