<div dir="ltr">Hello,<div>I've been having issues using ipxe to boot Windows 2016 on a HyperV guest (have managed booting Windows 2016 on other platforms).</div><div><br></div><div>I started debugging the various issues:</div><div>1. The first issue is that the Windows 2016 winload.exe wants to look for a security related registry hive on the system partition. The code to do this recognizes that is running on a VM and therefore tries to initialize the VMBUS to use the disk via VMBUS (and not via INT13) -- this causes winload to take over ipxe's VMBUS connection. But afterwards it reverts back to INT13's that try to use the network interface which uses the VMBUS connection and hence winload fails.</div><div><br></div><div>I've created a very ugly workaround that just fails winload's takeover attempt but I will need to find a better solution.</div><div><br></div><div>2. Afterward winload completes successfully but the kernel gets deadlocked, first when trying to query the IDE controller (but since I'm using a sanboot I can disable them) but then when trying to use the VMBUS to use the Network Adapter.</div><div><br></div><div>I've managed running the same test using the Legacy Network Adapter meaning iPXE doesn't use the vmbus at all -- and everything works as expected.</div><div><br></div><div>As I'm not so familiar with the iPXE/vmbus code I was wondering if anyone has any information that can help.<br>Can it be that to solve (2) iPXE has a way to do better cleanup of the vmbus (it seems that the code checks for certain protocol versions etc.) -- also any ideas to solve (1) -- except for the sabotage that I currently have or code in iPXE to re-take control of the interrupts?</div><div><br></div><div>Thanks,</div><div>Eytan</div><div><br></div><div>  </div></div>