WDS 2012 R2 Sets wrong default boot image for x64

Hello:

I have a hard time believing that no one else has reported this, but am unable to find an answer. The net effect is that we are unable to set an x64 boot image for our x64 BIOS clients. The settings work for EFI but not BIOS. I have confirmed that the settings are correct with wdsutil and being applied to \RemoteInstall\Tmp\x64{guid}.bcd. However, the default image in \RemoteInstall\Tmp\x86x64{guid}.bcd is the default x86 image not the default x64 image. I don't see an option to change the behavior besides disabling showing both architecture images for x64, which will not meet our needs. For reference I am putting out put of wdsutil show config and bcdedit enum for the relevant BCDs below.

Thank you to anyone who has an idea on how we can fix this behavior.

~joe

############### wdsutil /get-server /show:config  ##########################


Windows Deployment Services Management Utility [Version 6.3.9600.16384]
2013 Microsoft Corporation. All rights reserved.


SETUP INFORMATION FOR SERVER
[-----------------------------------------------------------------------------]


Server State:
     OS version: 6.3
     WDS operational mode: Native
     Standalone configuration: Yes

Installation State:
     RemoteInstall location: R:\RemoteInstall
     RemoteInstall share up-to-date: Yes
     Boot files installed:
         x86     - Yes
         x64     - Yes
         ia64    - No
         arm     - Yes
         x86uefi - Yes
         x64uefi  - Yes


[-----------------------------------------------------------------------------]


CONFIGURATION INFORMATION FOR SERVER
[-----------------------------------------------------------------------------]


Server Authorization:
     Authorization state: <Unavailable in standalone configuration>

Answer Policy:
     Answer clients: Yes
     Answer only known clients: No
     Response delay: 1 seconds

Directory Use Policy:
     Prestage devices using MAC: No
     New computer naming policy: %61Username%#
     New computers join domain: Yes

New Computer OU:
     OU type: Custom
     OU:

DHCP Configuration:
     DHCP service status: Not Installed
     DHCP option 60 configured: <Not Applicable>

PXE Bind Policy:
     Use DHCP ports: Yes
     Rogue detection: Disabled
     RPC port: 5040

Interface Bind Policy:
     Policy: Exclude Registered
     Registered interfaces:
         IP => 10.23.88.19

Boot Program Policy:
     Known client PXE prompt policy: NoPrompt
     New client PXE prompt policy: NoPrompt
     Allow N12 for new clients: <Not Applicable>
     Reset boot program: Disabled
     Default boot programs:
         x86     - boot\x86\grub32.com
         x64     - boot\x64\grub64.com
         ia64    - boot\ia64\bootmgfw.efi
         arm     - boot\arm\bootmgfw.efi
         x86uefi - boot\x86\grubia32.efi
         x64uefi  - boot\x64\grubx64.efi
     Default N12 boot programs:
         x86     - boot\x86\grub32.com
         x64     - boot\x64\grub64.com
         ia64    - boot\ia64\bootmgfw.efi
         arm     - boot\arm\bootmgfw.efi
         x86uefi - boot\x86\grubia32.efi
         x64uefi  - boot\x64\grubx64.efi

Banned GUIDs list:

Boot Image Policy:
     Default image type for x64 clients: Both
     Default boot images:
         x86     - Boot\x86\Images\x86_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim
         x64     - Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim
         ia64    -
         arm     -
         x86uefi - Boot\x86\Images\x86_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim
         x64uefi  - Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim

Driver Policy:
     Avoid duplicate driver packages: Yes

WDS Client Policy:
     Logging policy:
         Enabled: Yes
         Logging level: Warnings

     Unattend policy:
         Enabled: No
         Command-line precedence: No
         WDS unattend files:
             x86     -
             x64     -
             ia64    -
             arm     -
             x86uefi -
             x64uefi  -

Server Automatic Refresh Policy:
     Refresh period: 900 seconds

BCD Refresh Policy:
     Enabled: No
     Refresh period: 60 minutes

Pending Device Policy:
     Policy: Disabled
     Poll interval: 10 seconds
     Max retry count: 2160 times
     Message to pending clients:
     Retention period:
         Approved devices: 30 days
         Other devices: 1 days
     Defaults for x86:
         Referral server:
         Boot program path:
         WDS client unattend file path:
         Boot image path:
         User: Domain Admins
         Join rights: Full
         Join domain: Yes
     Defaults for x64:
         Referral server:
         Boot program path:
         WDS client unattend file path:
         Boot image path:
         User: Domain Admins
         Join rights: Full
         Join domain: Yes
     Defaults for ia64:
         Referral server:
         Boot program path:
         WDS client unattend file path:
         Boot image path:
         User: Domain Admins
         Join rights: Full
         Join domain: Yes
     Defaults for arm:
         Referral server:
         Boot program path:
         WDS client unattend file path:
         Boot image path:
         User: Domain Admins
         Join rights: Full
         Join domain: Yes
     Defaults for x86uefi:
         Referral server:
         Boot program path:
         WDS client unattend file path:
         Boot image path:
         User: Domain Admins
         Join rights: Join Only
         Join domain: Yes
     Defaults for x64uefi:
         Referral server:
         Boot program path:
         WDS client unattend file path:
         Boot image path:
         User: Domain Admins
         Join rights: Join Only
         Join domain: Yes

WDS PXE Providers:
     Name: WDSDCPXE
     Path: C:\Windows\system32\wdsdcpxe.dll
     Order: 1
     Critical: No

WDS Device Controllers:
     Name: WDSADDC
     CLSID: {1F05CFEA-D4E4-4049-9C76-7B4F0013ECC9}
     Priority: 32768
     Enabled: No

     Name: WDSSDC
     CLSID: {17FD4B68-06B7-48EB-97B7-1575A171AED9}
     Priority: 32768
     Enabled: Yes

WDS Transport Server Policy:
     IPv4 source: Range
         Start address: 239.192.0.2
         End address: 239.192.0.254
     IPv6 source: Range
         Start address: FF15::1:1
         End address: FF15::1:FF
     UDP Port Policy: Dynamic
         Start port: <Not Applicable>
         End port: <Not Applicable>
     Network profile: <Not Applicable>
     TFTP Properties:
         Maximum block size: 0
         Variable window extension enabled: Yes
     Multicast session policy:
         Slow client handling policy: None
         AutoDisconnect threshold: 256 KBps
         Multistream stream count: 2
         Slow client fallback: Yes
     Multicast Content Providers:
         Name: WDS
         Description: Default Content Provider
         File path: C:\Windows\system32\wdscp.dll
         Initialization routine: WdsTransportProviderInit


[-----------------------------------------------------------------------------]

The command completed successfully.

################# bcdedit /enum /v /store:x64{guid}.bcd ############################


Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
fontpath                \boot\fonts
inherit                 {4636856e-540f-4170-a130-a84776f4c654}
nointegritychecks       Yes
default                 {e8bb16a3-4dfe-4ae2-9f97-7c4bb87dcc67}
displayorder            {fe1007b2-0523-416d-9d50-33298712115f}
                        {69a2f1a2-f132-41a0-8861-d0d5cffcb045}
                        {fd14773a-e55c-47e2-82d5-a4d9d23d3c52}
                        {e8bb16a3-4dfe-4ae2-9f97-7c4bb87dcc67}
                        {a5e90e93-5616-4b03-b2a7-d5432d57d6f0}
timeout                 30

Windows Boot Loader
-------------------
identifier              {fe1007b2-0523-416d-9d50-33298712115f}
device                  ramdisk=[boot]\Boot\x64\Images\x64 ADS3 Integration FirstBuild 2014-07-02.wim,{52aa0ff7-f4e7-49b2-baab-a11f4f89347a}
description             x64 ADS3 Developer FirstBuild 2014-07-02
osdevice                ramdisk=[boot]\Boot\x64\Images\x64 ADS3 Integration FirstBuild 2014-07-02.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {69a2f1a2-f132-41a0-8861-d0d5cffcb045}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh11.5.1_2014-03-24.wim,{5dd4420c-c86c-4363-994d-18c8e65dfde2}
description             x64_ADS2_Test_PE4-Gh11.5.1_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh11.5.1_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {fd14773a-e55c-47e2-82d5-a4d9d23d3c52}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24.wim,{fb87959c-ff53-4415-8ea4-ce4843bdd1dc}
description             x64_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {e8bb16a3-4dfe-4ae2-9f97-7c4bb87dcc67}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim,{817e4a23-df42-4abb-9f8e-0ad2f00ce75c}
description             x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {a5e90e93-5616-4b03-b2a7-d5432d57d6f0}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5560_2014-03-24.wim,{16467a12-6ed1-4475-aaf5-2524ad038b7e}
description             x64_ADS2_Test_PE4-Gh12.0.0.5560_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5560_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

##################### bcdedit /enum /v /store:x86x64{guid}.bcd ########################


Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
fontpath                \boot\fonts
inherit                 {4636856e-540f-4170-a130-a84776f4c654}
nointegritychecks       Yes
default                 {9f89c1b6-303e-463c-b602-bea3b5cd11ac}
displayorder            {231df1e6-3b07-465d-aaad-546ca3615754}
                        {fe1007b2-0523-416d-9d50-33298712115f}
                        {3e10c380-915b-4441-8bd4-b9095db66fe1}
                        {6605b6d7-3bd8-42d1-b8a3-d900c43054f6}
                        {9f89c1b6-303e-463c-b602-bea3b5cd11ac}
                        {69a2f1a2-f132-41a0-8861-d0d5cffcb045}
                        {fd14773a-e55c-47e2-82d5-a4d9d23d3c52}
                        {e8bb16a3-4dfe-4ae2-9f97-7c4bb87dcc67}
                        {a5e90e93-5616-4b03-b2a7-d5432d57d6f0}
timeout                 30

Windows Boot Loader
-------------------
identifier              {231df1e6-3b07-465d-aaad-546ca3615754}
device                  ramdisk=[boot]\Boot\x86\Images\x86 ADS3 Integration FirstBuild 2014-07-02.wim,{3f0fdcdf-f9d8-4bb3-9ee4-23f779d1573e}
description             x86 ADS3 Developer FirstBuild 2014-07-02
osdevice                ramdisk=[boot]\Boot\x86\Images\x86 ADS3 Integration FirstBuild 2014-07-02.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {fe1007b2-0523-416d-9d50-33298712115f}
device                  ramdisk=[boot]\Boot\x64\Images\x64 ADS3 Integration FirstBuild 2014-07-02.wim,{52aa0ff7-f4e7-49b2-baab-a11f4f89347a}
description             x64 ADS3 Developer FirstBuild 2014-07-02
osdevice                ramdisk=[boot]\Boot\x64\Images\x64 ADS3 Integration FirstBuild 2014-07-02.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {3e10c380-915b-4441-8bd4-b9095db66fe1}
device                  ramdisk=[boot]\Boot\x86\Images\x86_ADS2_Test_PE4-Gh11.5.1_2014-03-24.wim,{54b01cf1-554f-4511-ba0a-ec3aa7546ca3}
description             x86_ADS2_Test_PE4-Gh11.5.1_2014-03-24
osdevice                ramdisk=[boot]\Boot\x86\Images\x86_ADS2_Test_PE4-Gh11.5.1_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {6605b6d7-3bd8-42d1-b8a3-d900c43054f6}
device                  ramdisk=[boot]\Boot\x86\Images\x86_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24.wim,{4cd3351c-a8b3-4835-b0b8-b3d475aae2e2}
description             x86_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24
osdevice                ramdisk=[boot]\Boot\x86\Images\x86_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {9f89c1b6-303e-463c-b602-bea3b5cd11ac}
device                  ramdisk=[boot]\Boot\x86\Images\x86_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim,{91fa1a8e-fee5-407b-aaa6-c5e20d787932}
description             x86_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24
osdevice                ramdisk=[boot]\Boot\x86\Images\x86_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {69a2f1a2-f132-41a0-8861-d0d5cffcb045}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh11.5.1_2014-03-24.wim,{5dd4420c-c86c-4363-994d-18c8e65dfde2}
description             x64_ADS2_Test_PE4-Gh11.5.1_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh11.5.1_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {fd14773a-e55c-47e2-82d5-a4d9d23d3c52}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24.wim,{fb87959c-ff53-4415-8ea4-ce4843bdd1dc}
description             x64_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.4570_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {e8bb16a3-4dfe-4ae2-9f97-7c4bb87dcc67}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim,{817e4a23-df42-4abb-9f8e-0ad2f00ce75c}
description             x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5505_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

Windows Boot Loader
-------------------
identifier              {a5e90e93-5616-4b03-b2a7-d5432d57d6f0}
device                  ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5560_2014-03-24.wim,{16467a12-6ed1-4475-aaf5-2524ad038b7e}
description             x64_ADS2_Test_PE4-Gh12.0.0.5560_2014-03-24
osdevice                ramdisk=[boot]\Boot\x64\Images\x64_ADS2_Test_PE4-Gh12.0.0.5560_2014-03-24.wim,{68d9e51c-a129-4ee1-9725-2ab00a957daf}
systemroot              \WINDOWS
detecthal               Yes
winpe                   Yes

February 26th, 2015 10:11pm

Some (x64) clients report their architecture as x64 , but some as x86x64 (which seems to be x64 actually).

If I am following you correctly you want to set the boot image for that (x86x64-)architecture to be the same as for x64, which isn't found in the WDS console, so you have to change this using bcdedit. (The x86x64 folder is empty, besides default.bcd, so it isn't really useful?)

Find out the GUID for your x64 boot (cmd as admin);

bcdedit /enum all /store c:\RemoteInstall\Boot\x64\default.bcd

...and set the x86_64:

bcdedit /set {bootmgr} default {guid_from_result_above} /store c:\RemoteInstall\Tmp\x86x64{check_filename_in_this_folder}.bcd

See https://social.technet.microsoft.com/Forums/en-US/3f1ec3a9-72e6-4c89-91f5-303dc494424e/how-to-change-wds-pxe-boot-order-menu?forum=winserversetup for reference

Hope this helps you in the right direction.

Free Windows Admin Tool Kit Click here and download it now
February 27th, 2015 8:01am

Joel:

Thank you for taking the time to respond.

Using bcdedit to "fix" the final bcd files in \RemoteInstall\Tmp is how we initially addressed the issue. It is very fragile though. There is a long list of things that cause WDS to rebuild the BCD stores. Anytime one of those events occurs it will remove the "fix". This is definitely not workable for us long term since we add, update, and remove images frequently.

The next workaround we are implementing tonight is to remove the specification of an image in the server settings. Once that is done we ensure that the desired default x64 image has the lowest priority and the desired default x86 image has the second lowest priority. Then we depend on the behavior of bootmgr.exe to select the first image in the list (lowest priority). This at least will only break if someone goes and attempts to explicitly specify and x86 default image.

There is no explicit PXE option 93 value to differentiate between x86 and x64 BIOS. There are separate values for x86, x64, and ia64 EFI, but not BIOS/Legacy/CSM. The way WDS handles this is to send wdsnbp.com to all BIOS based systems. There is some code in there that determines x86 vs x64 and the proceeds to get the correct pxeboot.com, bootmgr.exe etc. Early versions of this wdsnbp.com (Server 2008 and Server 2008 R2) did occasionally get this wrong. However, I have never seen it detect wrong with the latest hotfixes on Server 2008 R2 or with Server 2012 and later. Once wdsnbp.com has determined the architecture we get into which BCD file gets consumed. The WDS will always send the current .x86{guid}.bcd to x86 clients. There is an option in wdsutil "DefaultX86X64ImageType" that is used to instruct which of the three possible bcd files to send: x86{guid}.bcd, x64{guid}.bcd, or x86x64{guid}.bcd, with x86x64 being the install default. If we did not need access to the x86 images on our x64 machines changing to force x64 only images would have been a solution.

I have an incident open with Microsoft Support (115022712451374) in the hopes of getting a solution that allows us to explicitly define the x64 while still allowing x86 images to be selected. When we get to a final answer I will post it here for anyone else that may encounter this issue.

Regards,

Joe M.

February 27th, 2015 11:07pm

Update for any watchers... TSS still has not provided a solution or statement the issue will not be addressed. 

I can confirm that this improper behavior is NOT exhibited by WDS 2008 R2 or WDS in Windows 10 Build 10064. They properly respect setting an x64 image in the server properties.

~joe

Free Windows Admin Tool Kit Click here and download it now
April 28th, 2015 9:34pm

Update...

The incident has been closed with no resolution. After months of reexplaining the issue and trying the same steps over and over, I gave up. The final answer from support was nonsensical.

Hopefully Windows Server 2016 will remain with the Server 2008 R2 behaviors. If anything changes, I will update the thread.

~joe

  • Marked as answer by Mr. Joe M. _ Thursday, July 09, 2015 5:44 PM
July 9th, 2015 5:44pm

Joe thanks for the update, I was following an excellent guide on how to use linux images and ran into this same issue.... You saved me a lot of wasted time trying to get this working on 2012r2.  <sigh>
Free Windows Admin Tool Kit Click here and download it now
July 19th, 2015 8:20pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics