Hey all! I’m begining a transition from vSphere to Hyper-V and am running into issues with my test host, specifically with PXE booting from the VMs. I’ve searched numerous forums and found a LOT of others having similar issues, though unfortunately none of the suggested fixes for any of them seem to be working here.<\/p>\n
Advertisement
Normally there’d be more redundancy at each layer, but for now I’ve stripped things down to the minimum until I get this sorted out. Currently there’s 1 host server (Windows Server 2025 sta), with adapters dedicated for management (so management is not enabled on the vswitch), storage, migration and VM guest traffic. The vswitch with the VM traffic adapter is connected to an Aruba AOS-CX 8320, normally trunked for several VLANs. That same physical switch is also connected to our vSphere host that runs our DHCP and WDS servers (running in separate VMs). IP helpers are set up on the needed VLANs on the switch for DHCP and WDS, with no PXE options configured in the relevant DHCP scopes. Physical computers as well as our VMware-hosted virtual machines are all able to PXE boot with this setup with no issues.<\/p>\n
Advertisement
In every scenario I’ve tested, the result is the same - when I attempt to PXE-boot a VM running in Hyper-v, it times out while waiting for an address and eventually errors with no response. I’ve run wireshark looking at the interface on the host’s end, the switch’s, the WDS server’s as well as the DHCP server’s ends… in the case of the switch, WDS and DHCP servers, the discovery requests are seen as are the offers from both DHCP and WDS, however on the Hyper-V host it only sees the discovery requests coming from the VM… none of the offers appear from the WDS or DHCP server. Once the VM gives up and eventually boots the guest OS, then the offer/ack requests proceed and it pulls an IP address without issue, pulling from the expected DHCP scope with each VLAN I test the VM in (tried multiple just to be sure the VLAN trunking was working between the physical switch, vswitch and VM adapter)… it only struggles during the PXE attempts.<\/p>\n
I have tried removing the IP helpers and instead adding the DHCP options (60, 66, 67) and configuring them accordingly, as well as even trying a combination of them. In all cases, I can PXE boot successfully from physical machines and vmware VMs, just not from Hyper-V.<\/p>\n
I have tried switching the virtual machine’s VLAN to the same as our DHCP and WDS servers, though there was no change. I have also tried switching the physical switch port to an access port on a single VLAN, and removing the VLAN specification on the virtual machine - no change. Plugging a physical laptop into that switch port, it’s able to PXE boot on the expected VLAN with no issue.<\/p>\n
While I wouldn’t have expected it to make a difference, just to rule it out I tried setting a static MAC on the virtual machine rather than the dynamic one - no change. In both cases, I verified in the switch’s MAC address table that it was mapping the correct physical port that the Hyper-V vswitch interface is plugged into for each of the VM’s MACs that I tried. Because the DHCP offers were being seen on the switch’s end but not on the host, I had wondered if perhaps it was having trouble getting back to the Hyper-V host vswitch, but again, DHCP works fine after<\/em> the OS boots.<\/p>\n
I should note that my attempts have mainly been from Gen 2 VMs. I did try creating a Gen 1 with a legacy network adapter, but it also wound up being unable to PXE boot, so I didn’t spend much time troubleshooting that one.<\/p>\n
It really does seem to be something specific to PXE (beyond just the IP helpers and/or dhcp options), and also specific to just hyper-v, as I can’t reproduce the trouble on any other physical machine or virtual machine in our vsphere environment, even when using the same VLANs and even the same physical switch port. Sadly I can’t pinpoint it though.<\/p>\n
Has anyone come across these issues that can recommend a different fix than what I’ve already tried?<\/p>\n
Hey all! I’m begining a transition from vSphere to Hyper-V and am running into issues with my test host, specifically with PXE booting from the VMs. I’ve searched numerous forums and found a LOT of others having similar issues, though unfortunately none of the suggested fixes for any of them seem to be working here.<\/p>\n
Normally there’d be more redundancy at each layer, but for now I’ve stripped things down to the minimum until I get this sorted out. Currently there’s 1 host server (Windows Server 2025 sta), with adapters dedicated for management (so management is not enabled on the vswitch), storage, migration and VM guest traffic. The vswitch with the VM traffic adapter is connected to an Aruba AOS-CX 8320, normally trunked for several VLANs. That same physical switch is also connected to our vSphere host that runs our DHCP and WDS servers (running in separate VMs). IP helpers are set up on the needed VLANs on the switch for DHCP and WDS, with no PXE options configured in the relevant DHCP scopes. Physical computers as well as our VMware-hosted virtual machines are all able to PXE boot with this setup with no issues.<\/p>\n
In every scenario I’ve tested, the result is the same - when I attempt to PXE-boot a VM running in Hyper-v, it times out while waiting for an address and eventually errors with no response. I’ve run wireshark looking at the interface on the host’s end, the switch’s, the WDS server’s as well as the DHCP server’s ends… in the case of the switch, WDS and DHCP servers, the discovery requests are seen as are the offers from both DHCP and WDS, however on the Hyper-V host it only sees the discovery requests coming from the VM… none of the offers appear from the WDS or DHCP server. Once the VM gives up and eventually boots the guest OS, then the offer/ack requests proceed and it pulls an IP address without issue, pulling from the expected DHCP scope with each VLAN I test the VM in (tried multiple just to be sure the VLAN trunking was working between the physical switch, vswitch and VM adapter)… it only struggles during the PXE attempts.<\/p>\n
I have tried removing the IP helpers and instead adding the DHCP options (60, 66, 67) and configuring them accordingly, as well as even trying a combination of them. In all cases, I can PXE boot successfully from physical machines and vmware VMs, just not from Hyper-V.<\/p>\n
I have tried switching the virtual machine’s VLAN to the same as our DHCP and WDS servers, though there was no change. I have also tried switching the physical switch port to an access port on a single VLAN, and removing the VLAN specification on the virtual machine - no change. Plugging a physical laptop into that switch port, it’s able to PXE boot on the expected VLAN with no issue.<\/p>\n
While I wouldn’t have expected it to make a difference, just to rule it out I tried setting a static MAC on the virtual machine rather than the dynamic one - no change. In both cases, I verified in the switch’s MAC address table that it was mapping the correct physical port that the Hyper-V vswitch interface is plugged into for each of the VM’s MACs that I tried. Because the DHCP offers were being seen on the switch’s end but not on the host, I had wondered if perhaps it was having trouble getting back to the Hyper-V host vswitch, but again, DHCP works fine after<\/em> the OS boots.<\/p>\n
I should note that my attempts have mainly been from Gen 2 VMs. I did try creating a Gen 1 with a legacy network adapter, but it also wound up being unable to PXE boot, so I didn’t spend much time troubleshooting that one.<\/p>\n
It really does seem to be something specific to PXE (beyond just the IP helpers and/or dhcp options), and also specific to just hyper-v, as I can’t reproduce the trouble on any other physical machine or virtual machine in our vsphere environment, even when using the same VLANs and even the same physical switch port. Sadly I can’t pinpoint it though.<\/p>\n
Has anyone come across these issues that can recommend a different fix than what I’ve already tried?<\/p>\n
A couple of things to try (if you’ve not already).<\/p>\n
Disable Secure boot in the VM settings (if you need this, that may be an issue, however, if you use GPT disk partitions and install an OS compatible with secure boot, you can often add it later)<\/p>\n
Under network adapter, advanced features, ensure none of these are getting in the way.<\/p>","upvoteCount":0,"datePublished":"2025-05-08T21:49:33.701Z","url":"https://community.spiceworks.com/t/more-hyper-v-pxe-boot-dhcp-issues/1204012/2","author":{"@type":"Person","name":"Rod-IT","url":"https://community.spiceworks.com/u/Rod-IT"}},{"@type":"Answer","text":"
You’ve done very thorough testing, and as a non pxe boot/dhcp works fine it does indicate it is specific to pxe. It;s strange as the dhcp offer part should work - i.e. the VM get an IP but no pxe server host info.<\/p>\n
Can you clarify what his means and how it was verified:<\/p>\n