UEFI PXE boot from Windows 2003 DHCP

  • Hi,

    Did somebody got a PXE boot from a Windows 2003 DHCP by UEFI? According to Wiki nobody got it yet. I would be the first, but I’ll be happier if somebody got it before! 🙂

    No regarding which Vendor Classes to register (because I think W2k3 will not follow this directive) they always try to read undionly.kpxe. If I force them to read any other, link as ipxe.efi, they return a “NBP filesize is 0 Bytes” condition.

    Any ideas?

  • @redbob said in UEFI PXE boot from Windows 2003 DHCP:

    it worked!

    However as George said already, this is not a real solution. The network needs fixed.

  • @george1421, it worked! I put it under an unmanaged switch, and the computer got boot. At the first try, it got chainloading error, but at second try, it worked! Thanks!

  • Moderator

    @redbob said in UEFI PXE boot from Windows 2003 DHCP:

    2.2 Two computers are in the same subnet and network works sutiable in both

    This is not what I asked. I asked if you tried the non working computer connected to the same cable for testing. Let me explain. We need to rule out networking configuration issues, specifically with spanning tree. If you are not using one of the fast spanning tree protocols (RSTP, MSTP, Fast-STP, etc) you will get random communications issues during booting. Spanning tree enabled is good, using traditional spanning tree with pxe booting (in general) is bad. With traditional spanning tree (STP), the port waits and listens for a BPDU packet for 27 seconds before starting to forward data on the port. By the time the port starts forwarding under traditional STP, the pxe booting process has already given up.

    You can mask this issue, by placing a (cheap) unmanaged switch between the target computer and building switch. If the unmanaged switch fixes the issue then you probably have a spanning tree issue.

    Understand I’m not saying you have a spanning tree issue, only we want to say for sure “no spanning tree isn’t the problem here”

  • @george1421

    1. Positivo AMIEFI BIOS version 0280.X Build Date 08/24/2017
      2.1 I think firmware is up-to-date
      2.2 Two computers are in the same subnet and network works sutiable in both
      3 My FOG version is 1.4.4 SV Revision 6077

    I will consider about enabling dnsmasq for ProxyDHCP.

  • Moderator

    @redbob said in UEFI PXE boot from Windows 2003 DHCP:


    While I understand what the message is saying, I’m a bit surprised because it says the remote end close the communication channel.

    I guess we need to collect a bit more info

    1. What is the make and manufacturer of the non booting computer
    2. In regards to the non-booting computer
      2.1 Is the firmware up to date on this computer?
      2.2 Did you plug this non-booting computer into the same cable as the booting computer to rule out network configuration issues?
    3. What version of FOG are you using?

    I think setting up dnsmasq on your fog server in your situation is the easiest solution for you. Once you do that you will need to update your router’s dhcp-helper table to include the FOG server as the last dhcp server in the chain. This way the FOG server knows there are other pxe boot requests. This way it will only send the pxe boot info to the target computers.

  • @quazz and @george1421, I did a workaround to it. As my DHCP works with subnets, I took apart one of them to offer ipxe.efi instead of undiolny.kpxe. Now I have other issue… I have two UEFI devices, to older got a iPXE boot as I did my workaround, but the other, newer, did not! It’s telling this:

    Could not boot: Connection reset (http://ipxe.org/0f0a6095)
    Chainloading failed, his 's' for the iPXE shell; reboot in 10 seconds
  • Moderator

    ProxyDHCP via dnsmasq is probably your best bet as George suggested.

    Basically allows an existing DHCP server to its DHCP stuff (though you should disable the PXE boot options) and offers the PXE boot info in its stead.

    Newest dnsmasq offers support for both UEFI and MBR at the same time in ProxyDHCP (you may have to compile from source)

  • Moderator

    Windows 2003 has no idea of uefi. So you will have no joy to auto switch between uefi and bios modes using 2003 dhcp server. You can do as you say manually change between undionly.kpxe and ipxe.efi. That will work, or you can install dnsmasq on your fog server to supply this information automatically.

    Beyond that, your uefi target computer will boot a uefi file name delivered by a 2003 dhcp server.