系统运维
Learn how to PXE Boot both BIOS & UEFImachines with DHCP Policies and Custom Vendor Classes
One of the challenges that an IT deployment administrator mayface in the field is the ability to boot both BIOS and UEFImachines from the same WDS environment. This is exactly the issue Ifaced when our organization decided to purchase a number of newSurface devices. These were the first set of devices that wereconfigured to natively boot to UEFI. This leaves you to decide froman organization standpoint whether you wish to boot all yourdevices using UEFI or the legacy BIOS…or does it.
I am a strong believer that finding a workaround to a problem isnot a fix to the problem. To that end modern devices such as thesurface are meant to be booted using the native UEFI boot. However,many organizations may also still have legacy BIOS devices that donot support UEFI boot or just work better booting from BIOS.Whatever the reasoning behind this it is actually quite easy tosetup DHCP to provide the BIOS or UEFI boot file depending on whatis used.
The solution!
By using DHCP policies and custom vendor classes for the followingDHCP Options:
Option 60
Option 66
Option 67
The below assumes that you have SCCM configured with a PXE enableddistribution point and a valid and configured DHCP server. Youshould therefore be at a configured state where you are able to PXEboot BIOS based devices.
Create Custom Vendor Classes for Use with your DHCPPolicy
Think Custom Vendor Classes as Detection Method’s used to determinehow devices are requesting a boot image from the DHCP server.
Open the DHCP Console and expand the IPv4 Node
Right-Click on ‘IPv4 Node’ and select ‘Define VendorClasses’
Click ‘Add’
Create the UEFI 64-Bit Vendor class first by entering thefollowing information
Enter the following information for the respectivefields:
DisplayName: PXEClient (UEFI x64)
Description: PXEClient:Arch:00007
ASCII: PXEClient:Arch:00007
Click ‘OK’
Click ‘Add’
DisplayName: PXEClient (UEFI x86)
Description: PXEClient:Arch:00006
ASCII: PXEClient:Arch:00006
Click ‘OK’
Click ‘Add’
DisplayName: PXEClient (BIOS x86& x64)
Description: PXEClient:Arch:00000
ASCII: PXEClient:Arch:00000
Click ‘OK’
Creating Custom DHCP Policies
UEFI 64-Bit DHCP Policy
Right-Click ‘Policies’ and click ‘New Policy’
Give the policy a friendly name that coincides with the yourvendor class naming scheme:
PolicyName: PXEClient (UEFI x64)
Description: Delivers the correct bootfile for (UEFIx64)
Click ‘Next’
On the ‘Configure Conditions for the policy’ page click‘add’
Select the ‘Value’ drop-down box and selectthe PXEClient (UEFIx64) vendor class that you created in previoussteps
Ensure that you check the box ‘Appendwildcard(*)’
Select ‘Add’
Select ‘Ok’
Click ‘Next’
If you want the policy to affect only a specific range withinyour scope configure it, otherwise select no and click ‘next’
On the Configure settings for the policy page ensure that ‘DHCPStandard Options’ is selected from the drop down box
Configure the following scope options:
060: PXEClient
066: IP Address of the SCCM or WDSService
067: smsboot\\x64\\wdsmgfw.efi
Cick ‘Next’
On the Summary pageclick ‘Finish’
BIOS 32-Bit & 64-Bit DHCPPolicy
Right-Click ‘Policies’ and click ‘New Policy’
Give the policy a friendly name that coincides with the yourvendor class naming scheme:
PolicyName: PXEClient (BIOS x86& x64)
Description: Delivers the correct bootfile for BIOSmachines
Click ‘Next’
On the ‘Configure Conditions for the policy’ page click‘add’
Select the ‘Value’ drop-down box and selectthe PXEClient (BIOS x86& x64) vendor class thatyou created in previous steps
Ensure that you check the box ‘Appendwildcard(*)’
Select ‘Add’
Select ‘Ok’
Click ‘Next’
If you want the policy to affect only a specific range withinyour scope configure it, otherwise select no and click ‘next’
On the Configure settings for the policy page ensure that ‘DHCPStandard Options’ is selected from the drop down box
Configure the following scope options:
060: PXEClient
066: IP Address of the SCCM or WDSService
067: smsboot\\x64\\wdsnbp.com
Cick ‘Next’
On the Summary pageclick ‘Finish’
UEFI 32-Bit DHCP Policy
Right-Click ‘Policies’ and click ‘New Policy’
Give the policy a friendly name that coincides with the yourvendor class naming scheme:
PolicyName: PXEClient (UEFI x86)
Description: Delivers the correct bootfile for (UEFIx86) machines
Click ‘Next’
On the ‘Configure Conditions for the policy’ page click‘add’
Select the ‘Value’ drop-down box and selectthe PXEClient (UEFIx86) vendor class that you created in previoussteps
Ensure that you check the box ‘Appendwildcard(*)’
Select ‘Add’
Select ‘Ok’
Click ‘Next’
If you want the policy to affect only a specific range withinyour scope configure it, otherwise select no and click ‘next’
On the Configure settings for the policy page ensure that ‘DHCPStandard Options’ is selected from the drop down box
Configure the following scope options:
060: PXEClient
066: IP Address of the SCCM or WDSService
067: smsboot\\x86\\wdsmgfw.efi
Cick ‘Next’
On the Summary pageclick ‘Finish’
Remove Default PXE Options
Ensure that you have removed the 067, 066, 060 options from thedefault scope options to ensure that the Policies take precedenceotherwise you will end up with conflict
As long as you have configured everything correctly you should nowhave the ability to boot machines from BIOS orUEFI. Hopefully this helps alleviate some of the stress surroundingyour PXE deployments. This has worked great on all of ourdistribution points since implementation and has allowed ourdeployments to be much more flexible.