2

We recently got in a batch of a new (to us) model laptop, Dell Latitude 3490. Whenever I attempt to deploy Windows 10 (Education, version 1709 x64), I end up at "No boot device found. Press any key to reboot the machine".

I found, downloaded, and imported the associated driver pack from Dell, and added that to the Windows 10 Selection Profile (which I verified as being used by this Task Sequence). We have other Dells and haven't needed it, but when this failed I added the Dell's WinPE driver pack to MDT and set up a Selection Profile for the WinPE image to use. I tried rebuilding with these BIOS options on and off:

  • Legacy Option ROM
  • Enable Legacy Boot
  • Secure Boot
  • SATA Operation (AHCI vs RAID)

The OptiPlex 3050s that we got in at the same time required the "Attempt Legacy Boot" option, which I was able to set as part of the MDT sequence - this option exists in the same place on the Latitude 3490s, but did not have the same affect.

I am getting 0 errors or warnings or otherwise bad vibes from PXE, WDS, or MDT. The build starts and progresses as expected through the Install Operating System step, and then goes to its reboot that should take it out of WinPE and into the OS to finish installing applications, but when it should boot to the internal drive it starts a diagnostic scan and then ends on "No boot device found".

By default (and this works on all other models), MDT tries to format BIOS and also UEFI - I tried disabling one or the other, no dice.

The drive itself works - I can see it in diskpart in WinPE, it shows up in the BIOS, the Windows that came on it works, and I can install the same Windows image from a base ISO on a USB drive.

When I successfully install Windows from a USB drive, Diskpart looks like this: Volume -- Ltr -- Label -- Fs -- Type -- Size -- Status Volume 0 -- C -- System Rese -- NTFS -- Partition -- 549MB -- Healthy Volume 1 -- D -- -- NTFS -- Partition -- 118GB -- Healthy

I tried to recreate that as best as possible (disabling the default options):

Format and Partition Disk

No change with that. If I PXE back in to WinPE and check Diskpart, list volume shows basically identical, just with the Volume 1 (D:) being labeled OSDisk which is how it is named in MDT.

Versions and such

  • DHCP: Windows Server 2008 R2 (options 66 and 67 set to point at the WDS box)
  • WDS: Windows Server 2012 R2
  • MDT: 8450
  • Clients: Windows 10 Education, version 1709 x64
  • The most likely cause for that error is that when you ran MDT you booted it in UEFI mode, but you're trying to boot Windows in legacy mode, or vice versa. You seem to have eliminated that already, but it might be worth double-checking. See whether MDT installed the disk as GPT (which can only work in UEFI boot mode) or as MBR (which can only work in legacy boot mode) and make sure the boot settings are configured accordingly. – Harry Johnston May 24 '18 at 21:33
  • Don’t disable the two different partition steps (BIOS and UEFI). It works very simply like this. If you boot in MBR mode it will partition as MBR. If you boot in UEFI mode it will partition as UEFI. Let MDT handle this. Looks like you created a single partition step to force it to use MBR. Put the laptops in UEFI mode, boot and start the deployment. – Appleoddity May 25 '18 at 0:58
  • 1
    I tried having them both enabled vs. just BIOS or just UEFI. However, I did find a breakthrough - I noticed that this model does not support booting to internal devices via legacy mode. I was able to enable UEFI network stack for the NIC in the BIOS settings page, and change the boot file in WDS, and it PXE'd via UEFI, and then was able to complete the deployment. In other environments I support the UEFI clients all tend to have UEFI PXE enabled already, and this hasn't been an issue. Now I just need to get WDS working with both legacy and UEFI at the same time. – Sam Lewis May 25 '18 at 16:07
  • I think I need to add a DHCP Policy to make it treat the legacy and UEFI clients differently. Currently I cannot do that as the DHCP server is 2008 R2 and that feature is new as of 2012. We're planning on upgrading (We already have the hardware) to 2016 this summer. We're also planning to get rid of most of the non-UEFI models with these new ones anyway. – Sam Lewis May 25 '18 at 16:09
2

To provide some closure, this was the answer:

I had to add a DHCP Policy to treat legacy and UEFI clients differently. I had to wait until our DHCP server (2008 R2) was replaced with a (2016) new one sometime that summer. I basically followed this guide: https://gal.vin/2017/05/05/pxe-booting-for-uefi-bios/ . I'll repost the text here in case that URL goes down.

Defining DHCP Vendor Classes

  1. Go to DHCP, right-click on IPv4.
  2. In the DHCP Vendor Classes window, click Add
  3. For the Name enter PXEClient (UEFI x86).
  4. For the Description enter whatever you want.
  5. Under the ASCII text enter PXEClient:Arch:00006 (you will not be able to paste this text, and it’s also case-sensitive)
  6. Click OK to add it to the list.
  7. Now repeat steps 2 – 6 for PXEClient (UEFI x64) with PXEClient:Arch:00007 as the ASCII value.
  8. Finally, repeat steps 2 – 6 for PXEClient (BIOS x86 & x64) with PXEClient:Arch:00000 (five zero’s) as the ASCII value.

Defining DHCP Policies

  1. Go to DHCP and expand the scope you wish to create a policy for.
  2. Right-click on Policies and choose New Policy.
  3. Enter PXEClient (UEFI x64) for the name.
  4. Enter a Description, or leave it blank. Click Next.
  5. On the Configure Conditions for the policy screen, click Add.
  6. In the Add/Edit Condition window, click the Value: drop down menu.
  7. Choose the PXEClient (UEFI x64) vendor class you created earlier.
  8. Tick the Append wildcard(*) check box and then click Add and finally OK.
  9. Click Next on the Configure Conditions for the policy screen.
  10. On the Configure settings for the policy screen, click No for the Do you want to configure an IP address range for the policy. Click Next.
  11. Please Note: if DHCP is on the same server as WDS, you will need to set option 060, if WDS is on a different server, you do not need to set option 060.
  12. On the Configure settings for the policy screen, scroll down until you see options 060 (if applicable), 066 and 067.
  13. Tick option 060 and enter PXEClient if applicable.
  14. Tick option 066 and enter either the FQDN or the IP address of the WDS server.
  15. Tick option 067 and enter boot\x64\wdsmgfw.efi – this is the x64 UEFI boot file for WDS. Click Next.
  16. On the Summary screen, if all the details are correct, click Finish.
  17. Now repeat steps 2 – 14 for PXEClient (UEFI x86) with boot\x86\wdsmgfw.efi as option 067.
  18. Finally, repeat steps 2 – 14 once again for PXEClient (BIOS x86 & x64) with boot\x64\wdsnbp.com as option 067 and leave option 060 empty.

protected by Community Feb 20 at 17:54

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.