I'm trying to work out an automated Windows install process, and thought I'd give WDS a look. After some promising initial progress, I seem to have hit a wall. I imported the boot and install WIMs, and created the capture WIM successfully. However, whenever I try to PXE boot the reference machine against the WDS server, it kinda craps out. It finds the server and downloads WDSNBP.COM successfully, and then gives the message "TFTP download failed."

According to WireShark, the only communication between the WDS box and the client box is the successful TFTP request and download of boot\x86\WDSNBP.COM. No further requests are sent. The WDS log on the server shows the same thing, one successful download and no more activity.

I've tried every combination of the following, with exactly zero change in behaviour:

  • Win Server 2008R2 vs 2012 vs 2012R2

  • WDS virtualized on KVM, ESXi, VirtualBox, VMWare Workstation

  • Client virtualized on KVM, ESXi, VirtualBox, VMWare Workstation

  • Every network adaptor type offered by the virtualization platforms.

  • "Actual" network vs isolated, virtual network.

  • MS DHCP server vs Linux isc-dhcp-server

  • Joined to a domain vs Stand-alone

I tried changing the boot filename in DHCP to pxeboot.com instead, and it has no problem downloading that file instead, but it then crabs about Boot\BCD being corrupted. Also, with 2012, it doesnt appear that WDSNBP.com does the architecture detection, or at least does'nt report that it did. 2008 reports that it found x64, and then errors.

I find myself out of things to check, and I dont see anything immediately wrong. Where do I go from here?

WDS server is at, DHCP/DNS at

Console of the client computer after the boot:

MAC: 52:54:00:28:94:0E UUID: blah blah
Searching for server (DHCP).....
Me:, DHCP:, Gateway
Loading\x86\wdsnbp.com ...(PXE).................done

Downloaded WDSNCP...

TFPT download failed

Interesting parts of /etc/dhcp/dhcpd.conf on the Linux DHCP server:

allow booting;
allow bootp;
option option-60 code 60 = string;
option option-66 code 66 = string;
option option-67 code 67 = string;

subnet netmask {
    option tftp-server-name "";
    option option-60 "PXEClient";
    filename "boot\\x86\\wdsnbp.com";
    option bootfile-name "boot\\x86\\wdsnbp.com";
  • The switch in this setup is unmanaged.
    – user13328
    Jul 21, 2013 at 16:53
  • Looks like you are using DHCP option 60, but you aren't running DHCP on the WDS server. I would review: technet.microsoft.com/en-us/library/cc732351(WS.10).aspx#Using
    – floyd
    Jul 22, 2013 at 21:26
  • I think I've tried it without Option 60 in there, but I can't be certain. There's some good ideas in that TechNet document, I'll go over that tomorrow and see if I get anywhere.
    – user13328
    Jul 24, 2013 at 2:55

1 Answer 1


So its getting a DHCP address and contacting the PXE server, but then it isn't receiving a WDS boot image? Check your WDS Server Settings. Specifically the PXE response, and PXE Boot, and Client TABs.

I would also double check your Boot images configured in WDS. Imported from a Windows install DVD etc ( media\sources\boot.wim ). Or if you are using Microsoft Deployment Toolkit, imported from the MDT generated boot images.

I have always found it easiest to troubleshoot WDS / MDT issue by installing HYPER-V on the WDS server and booting a local VM connected to the PXE network. Rules out any external network problems.

  • Everything in the WDS setup looks good to me. Respond to all clients, do not listen on DHCP ports (theres a separate DHCP server), etc. Yes, it contacts the WDS server just fine, and downloads wdsnbp.com, the first file in the process, but that's as far as it gets. I've tried boot images both from the DVD, and from MDT. I've tried other sorts of internal networking clients, but not a HyperV one running in the WDS server. I'll give that a shot and see what that does for me.
    – user13328
    Jul 23, 2013 at 22:37

You must log in to answer this question.