Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

  • Comments 21
  • Likes

One of the issues we troubleshoot the most in CSS are ConfigMgr PXE Service Point installs. This article is based on 4 years of experience troubleshooting hundreds of PXE Service Point installs. The end result is what we have found causes the majority of issues on PXE Service Points and what works on most (if not all) configurations. The article assumes that you are not trying to co-host the ConfigMgr PXE Service Point with stand-alone WDS on the same server. That is a topic for a completely different article…

A previous version of this article appeared over at The Configuration Manager Support Team Blog site. That article was actually a major revision of the original article titled ConfigMgr 2007: Troubleshooting PXE Service Point Issues and WDS service not starting. The below is an updated version of the article and can be considered version 3 of the article. Besides some minor updates in syntax and formatting, it mainly contains one major new section covering co-hosting DHCP and WDS on the same server WITHOUT having to configure WDS. It also contains additional checks when R2 or R3 are installed.

 UPDATES

2012-02-07

  • Added information regarding KBs 979720 and 2578865 which fix the error "PXE-E78: Could not locate boot server".
  • Moved text regarding checking KB articles for known issues to the start of the article and gave it its own section "Reviewing KB Articles of Known Issues" since it's probably best to check KB articles of known issues before trying to reconfigure and reinstall everything.

 

Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

 

This is a general guide on properly setting up and troubleshooting the ConfigMgr 2007 PXE Service Point.

Common errors that are seen at the PXE boot screen when the PXE Service Point is either not configured properly or experiencing problems are the following:

PXE-E53: No boot filename received
PXE-T01: The specified file was not found.
PXE-T01: File not found
PXE-E3B: TFTP Error - File not Found
PXE-E55 Proxy DHCP Service did not reply to request on port 4011
PXE-T04: Access Violation
PXE-E36: Error Received from TFTP Server
PXE-M0F Exiting PXE Rom
PXE-E78: Could not locate boot server

However the error messages can vary depending on the PXE implementation on the client PC.

Another commons symptom is that the Windows Deployment Services Server (WDS) service will not start.

This guide is broken down to the following sections:

  • Reviewing KB Articles of Known Issues
  • Setting Up IP Helpers
  • Co-hosting DHCP and WDS On The Same Server
  • How To Properly Install And Set Up A New Instance Of WDS And A PXE Service Point
  • Reinstalling WDS And The PXE Service Point
  • Testing The PXE Service Point
  • Monitoring And Troubleshooting The PXE Boot

The guide is written in chronological order of the actions that need to be taken to properly configure a working and operational ConfigMgr 2007 PXE Service Point. Refer to the appropriate sections as needed.

 

Reviewing KB Articles of Known Issues

Before beginning any troubleshooting on the PXE Service Point, review the following KB articles to see if any of the issues described in the following KB articles could be causing problems:

No Assigned Task Sequence when initiating deployments caused by duplicate SMBIOS GUIDs (System UUIDs) in System Center Configuration Manager 2007
http://support.microsoft.com/kb/2591483

Operating system deployment fails in a System Center Configuration Manager 2007 SP1 environment if you deploy a different operating system to a client within one hour of a previous deployment
http://support.microsoft.com/kb/969113

Client machines may fail to boot into PXE if System Center Configuration Manager Service Pack 2 has been applied

http://support.microsoft.com/kb/2019640

The Windows Deployment Service cannot be started on a computer that has more than 20 logical processors and that is running Windows Server 2008 R2 or Windows Server 2008

http://support.microsoft.com/kb/2121690

The DNS Server service binds to all ports in the Windows Deployment Services port range on a server that is running Windows Server 2008 R2 or Windows Server 2008
http://support.microsoft.com/kb/977512

The Windows Deployment Service stops responding when you use a PXE service point on a computer that is running a System Center Configuration Manager 2007 SP1 or SP2 site server
http://support.microsoft.com/kb/976073

PXE service point role does not work if a DHCP server uses DHCP option 43 in a System Center Configuration Manager 2007 SP2 environment
http://support.microsoft.com/kb/2578865

Error message when Windows Deployment Service clients cannot obtain the boot image from a Windows Server 2008 R2-based WDS server: "PXE-E78: Could not locate boot server"
http://support.microsoft.com/kb/979720

 

Setting Up IP Helpers

If the DHCP server, the client PC, and the ConfigMgr 2007 server running Windows Deployment Services (WDS) and the PXE Service Point are all on the same subnet or vlan, please proceed to the section "How To Properly Install and Set Up The PXE Service Point".

Otherwise, if either the DHCP server, the client PC, or the ConfigMgr 2007 server running WDS and the PXE Service Point are on separate subnets or vlans, which is usually the case in most environments, the first step to take before trying to install and configure the PXE Service Point and WDS is to set up IP Helpers on the routers. How to do this varies depending on the router hardware manufacturer, but the general overview is outlined at the below TechNet article:

Configuring Your Router to Forward Broadcasts
http://technet.microsoft.com/en-us/library/cc732351(WS.10).aspx#Updating

For further information on how to properly configure IP Helpers on the routers, please contact the hardware manufacturer of the router.

IP Helpers are necessary because the PXE request generated by the client PC is a broadcast that does not travel outside of the local subnet or vlan. It only stays within the local subnet or vlan. If the DHCP server and/or the WDS/PXE Service Point server are not on the same subnet or vlan as the client PC, they will not see or hear the PXE request broadcast from the client PC. The servers will therefore not respond to the PXE request. To have the PXE request broadcast transverse between subnets or vlans, the PXE request broadcast needs to be forwarded by the router to the DHCP and WDS/PXE Service Point servers so that they can properly respond to the client PC's PXE request.

An alternative to using IP Helpers is setting DHCP Options on the DHCP server, specifically DHCP Options 60 (PXE Client), 66 (Boot Server Host Name), and 67 (Bootfile Name). However, DHCP Options can be problematic and may not work reliably or consistently. Furthermore the use of DHCP Options to control PXE requests is not supported by Microsoft. Therefore the recommended and supported method of PXE booting client PCs that are on a different subnet than the DHCP or WDS/PXE Service Point servers is the use of IP Helpers.

For additional information regarding DHCP Options not being recommended or supported please see the below articles:

Using DHCP Options 60, 66, and 67
http://technet.microsoft.com/en-us/library/cc732351(WS.10).aspx#Using

PXE clients computers do not start when you configure the Dynamic Host Configuration Protocol server to use options 60, 66, 67
http://support.microsoft.com/kb/259670

The only exception where a DHCP Option needs to be used is when DHCP and WDS reside on the same server. In this instance, DHCP Option 60, and only DHCP Option 60, needs to be set. DHCP Options 66 and 67 should still NOT be set in this scenario. For more information, please see the below section "Co-hosting DHCP and WDS On The Same Server".

It is IMPERATIVE that before continuing that it has been verified that the routers have IP Helpers configured AND that the DHCP server does NOT have DHCP Options 60, 66, or 67 configured. Not meeting both of these criteria will cause the PXE Service Point not to work correctly. When checking DHCP options, make sure to check options at both the server and scope levels.

In certain instances, configuring DHCP Options 60, 66, and 67 may make it appear that the PXE boot process is proceeding further along than before these options were configured, but in most cases it proceeds further down an incorrect path and ends up failing.

 

Co-hosting DHCP and WDS On The Same Server

One consideration when setting up a ConfigMgr PXE Service Point is if WDS and DHCP are going to reside on the same or different servers. Best practice is to host the WDS and DHCP services on two separate servers, but there should be no issues in hosting both services on one server. If WDS and DHCP are being hosted on different servers, no further action is needed so please proceed to the section "How To Properly Install And Set Up A New Instance Of WDS And A PXE Service Point".

However when WDS and DHCP are co-hosted on the same server, WDS needs a special configuration to listen on a specific port. This configuration is outlined in the following TechNet article under the section Windows Deployment Services (WDS) and DHCP --> PXE Service Point Configuration Item --> DHCP considerations.

Planning for PXE Initiated Operating System Deployments
http://technet.microsoft.com/en-us/library/bb680753.aspx

According to the above article, the following two actions need to take place when WDS and DHCP are co-hosted on the same server:

  1. The value UseDHCPPorts needs to be set to 0 on the registry key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSPXE

  2. The WDS command:

    WDSUTIL /Set-Server /UseDHCPPorts:No /DHCPOption60:Yes

    needs to be run on the server.

The one problem with the above recommendations is that in order to run the WDSUTIL command, WDS has to be first configured. This goes against the best practice of NOT configuring WDS when installing a ConfigMgr PXE Service Point. However, the two options being specified via the WDSUTIL command, UseDHCPPorts and DHCPOption60, can be configured using alternate methods that do not require the WDSUTIL command, and therefore do not require WDS to be configured:

  1. The UseDHCPPorts WDSUTIL switch is actually the equivalent of setting the registry key value:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSPXE!UseDHCPPorts

    to 0 as described in #1 above. Therefore using the UseDHCPPorts WDSUTIL switch is duplicated and not needed as long as the registry key has been manually set as described in the above above TechNet article. Please note that if WDS has not been installed, this registry key may not be present and therefore cannot be set until after WDS has been installed. Step 7 under the section "How To Properly Install And Set Up A New Instance Of WDS And A PXE Service Point" explains how to set this registry key.

  2. The WDSUTIL DHCPOption60 switch is actually a setting that sets an option on the DHCP service, not the WDS service. Therefore instead of using WDSUTIL to set a DHCP option, an equivalent DHCP command can be used to set the same option. This approach allows the required DHCP setting to be set without configuring WDS and before WDS is even installed. This approach can be achieved via the netsh command as described in the following MSDN article:

    Configuring DHCP for Remote Boot Services
    http://msdn.microsoft.com/en-us/library/dd128762(WinEmbedded.51).aspx

    To summarize and shorten the netsh commands described in the above article, close any DHCP consoles that are open and then run following two commands from an elevated command prompt:

    netsh dhcp server \\<DHCP_server_machine_name> add optiondef 60 PXEClient String 0 comment=PXE support
    netsh dhcp server \\<DHCP_server_machine_name> set optionvalue 60 STRING PXEClient

    where <DHCP_server_machine_name> is the name of the DHCP/WDS server (without the brackets <>).

    The above two commands set up and enable DHCP Option 60 on a DHCP server. Normally DHCP Option 60 is not set up by default on a DHCP server. The first command sets up DHCP Option 60 but does not actually enable it. The second command actually enables DHCP Option 60.

    If after running the above two commands an option named "Unknown" is displayed in the DHCP console instead of "060 PXE Client", reboot the server. After the reboot the option should display correctly. This usually happens if a DHCP console was open when the above two commands were run.

If DHCP is ever moved to another server and removed from the server hosting WDS, the above actions need to be reversed. To reverse the above actions take the following two actions on the WDS server:

  1. Set the value of the following registry key value:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSPXE!UseDHCPPorts

    to 1. This can be done by running the following command from an elevated command prompt:

    REG ADD "HKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSPXE" /v UseDHCPPorts /t REG_DWORD /d 1 /f

  2. From an elevated command prompt, run the following two commands to remove DHCP Option 60:

    netsh dhcp server \\<DHCP_server_machine_name> delete optionvalue 60
    netsh dhcp server \\<DHCP_server_machine_name> delete optiondef 60 PXEClient

    where <DHCP_server_machine_name> is the name of the DHCP/WDS server (without the brackets <>).

    In the above two commands, the first command disables DHCP Option 60, while the second one removes DHCP Option 60 completely. For this reason only the first command is truly needed. However if DHCP Option 60 needs to be removed completely, make sure to run BOTH commands in the above order. Only running the second command will leave an option named "Unknown" on the DHCP server.

 

How To Properly Install And Set Up A New Instance Of WDS And A PXE Service Point

The following section lists the steps to ensure that WDS and the PXE Service Point are installed properly on a server where WDS and the PXE Service Point have never been installed or where WDS and the PXE Service Point have been properly uninstalled based on the section "Reinstalling WDS And The PXE Service Point". If WDS and/or the PXE Service Point is currently installed OR has been previously installed on the server, please follow the instructions under the section "Reinstalling WDS And The PXE Service Point" first:

  1. If needed, make sure that IP Helpers have been configured. Additionally, make sure that DHCP Options 60, 66, 67 have NOT been configured. See the section "Setting Up IP Helpers" for additional information.

  2. If WDS and DHCP are being co-hosted on the same server, please make sure to go over and take the actions in the section "Co-hosting DHCP and WDS On The Same Server". Please note that the registry key value that needs to be configured as described in the section "Co-hosting DHCP and WDS On The Same Server" will not be available until after WDS is finished installing in Step 5. Instructions on how to set this registry are in Step 7.

  3. Install, but DO NOT configure, Windows Deployment Services (WDS) on the server that will host the PXE Service Point.

    • If using Windows Server 2003, WDS is installed via the Add/Remove Windows Components in the Add/Remove Control Panel.

    • If using Windows Server 2008 or newer, WDS is installed via Roles in Server Manager. When installing in Windows Server 2008 or newer, make sure that both the Deployment Server and Transport Server are installed.

  4. If prompted to reboot after WDS has finished installing, reboot the server.

  5. Once the server has restarted, DO NOT try to manually configure or start the WDS service.

  6. If WDS and DHCP are on different servers, skip Step 7 and proceed to Step 8.

  7. If WDS and DHCP are being co-hosted on the same server, run the following command from an elevated command prompt to set the required registry key when WDS and DHCP are co-hosted on the same server:

    REG ADD "HKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSPXE" /v UseDHCPPorts /t REG_DWORD /d 0 /f

    In reinstall scenarios of WDS, make sure to rerun the above command as any uninstall of WDS may have reset the above registry key.

    If WDS and DHCP are on separate servers, DO NOT run the above command.

  8. In the ConfigMgr 2007 Admin Console, navigate to

    "Site Management" --> <Site_Code> --> "Site Settings" --> "Site Systems"

    where <Site_Code> is the site code where the PXE Service Point server will reside.

  9. If the server where the PXE Service Point is going to be installed already exists under "Site Systems", right click on the server and choose "New Roles". Otherwise right click on "Site Systems" and choose "New" --> "Server".

  10. In the "General" page of the wizard, make sure that the NETBOIS and FQDN name of the server are correct and then click on the "Next >" button.

  11. In the "System Role Selection" of the wizard, check "PXE service point" and then click on the "Next >" button.

  12. Review the "PXE Service Point Configuration" dialog windows and then click on the "Yes" button.

  13. In the "PXE - General" window, configure the appropriate options as desired and then click on the "Next >" button.

    IMPORTANT! If ConfigMgr 2007 R2 or R3 is installed at the site and the option "Enable unknown computer support" does not appear on this page, DO NOT continue. This may be an indication that R2/R3 is not properly installed at the site. To check the status of R2/R3 being installed, in the ConfigMgr 2007 console navigate to "Site Database" --> "Site Management", right click on the site code, and then choose "Properties". The status will be listed under the "General" tab next to the field "R2 Installed"/"R3 Installed".

    If R2/R3 is not properly installed, this could cause the PXE Service Point not to answer PXE requests due to Unknown computer support not being set up properly. This can happen regardless if Unknown computer support is desired or not.

    To resolve the problem, cancel out of the "New Site Role Wizard", reinstall R2/R3 on the site server, and then start over at Step 8. If the site server is a child server, R2/R3 may need to be reinstalled on both the parent and child site servers.

  14. In the "PXE - Database" window, change any options as needed. In most cases, settings should be left at their default in this window. Click on the "Next >" button.

  15. Click on the "Next >" button and then on the "Close" button.

  16. On the server where the PXE Service Point is being installed, navigate to the ConfigMgr 2007 site server log location using Windows Explorer. Usually the log location will be under one of the following paths:
    • 32bit servers
      <drive_where_ConfigMgr_is_installed>\Program Files\Microsoft Configuration Manger

    • 64bit servers
      <drive_where_ConfigMgr_is_installed>\Program Files (x86)\Microsoft Configuration Manger\Logs

    • 32bit or 64bit servers
      <drive_where_ConfigMgr_is_installed>\SMS

  17. Once the log directory has been located in Step 16, open the log file PXESetup.log using SMS Trace/Trace32.exe. Monitor this log and verify that the PXE Service Point installed correctly. It may take a few minutes for the installation to start and finish successfully. If this is the first time the PXE Service Point is being installed on the server, it may take a few minutes for the PXESetup.log to appear and be created.

    Once installed correctly, the last lines in the log should be "pxe.msi exited with return code: 0" and "Installation was successful." Verify that the line is for the current date and time frame.

    In some circumstances, the last lines will read "pxe.msi exited with return code: 3010" and "Installation was successful, but a reboot is required." If this is the case, make sure to reboot the server before continuing.

    Do NOT proceed until confirmation has been received in the PXESetup.log that installation has been successful.

  18. In the ConfigMgr 2007 Admin Console, navigate to "Computer Management" --> "Operating System Deployment" --> "Boot Images".

  19. If BOTH the x64 and x86 Boot Images are not already on any standard Distribution Point (DP), make sure to put both Boot Images on at least one standard DP. Monitor the "Package Status" node and ensure that both the x64 and x86 Boot Images properly install on the standard DP.

  20. Place BOTH the x64 and x86 Boot Images on the SMSPXEIMAGES$ DP on the server where the PXE Service Point was created. Monitor the "Package Status" node and ensure that both the x64 and x86 Boot Images properly install on the SMSPXEIMAGES$ DP.

  21. Once the Boot Images have installed on the SMSPXEIMAGES$ DP, open the Services console on the PXE Service Point server and ensure that the Windows Deployment Services Server service has started. Additionally make sure that the RemoteInstall folder has been created on the root level of the one of the drives of the server (usually the same drive where ConfigMgr is installed).

  22. In the ConfigMgr 2007 Admin Console, navigate to "Computer Management" --> "Operating System Deployment" --> "Task Sequences". Right click on each Task Sequence that will be deployed via PXE and choose "Properties". Click on the "Advanced" tab and ensure that the option "Use a boot image:" is checked and that an appropriate boot image for that Task Sequence is selected.

  23. In the ConfigMgr 2007 Admin Console, navigate to "Computer Management" --> "Software Distribution --> "Advertisements". Right click on each Advertisement for Task Sequences that will be deployed via PXE and choose "Properties". Under the "General" tab make sure that the option "Make this task sequence available to boot media and PXE" is checked.

Notes:

  1. When the PXE Service Point is installed, it will automatically configure WDS and create the RemoteInstall folder. Once configured, the PXE Service Point installation will then automatically start the WDS service. For this reason, manual configuration of WDS in the Windows Deployment Services console is NOT necessary and should not be performed.

  2. Once the PXE Service Point has configured and started WDS, the Windows Deployment Services console will still show a yellow exclamation mark and display the message "Windows Deployment Services is not configured". This is normal and does not indicate a problem. No action or configuration should be taken in the Windows Deployment Services console.

  3. Regardless of the architecture of the Windows OS being deployed, it is IMPERATIVE that BOTH the x86 and x64 Boot Image are on BOTH a standard DP and the SMSPXEIMAGES$ DP. Make sure to verify that this has been done.

  4. Do NOT place any other types of packages other than Boot Images in the SMSPXEIMAGES$ DP. Placing any other type of packages in the SMSPXEIMAGES$ DP, especially OS images, may cause WDS not to work correctly.

 

Reinstalling WDS And The PXE Service Point

In certain scenarios, especially ones where WDS and the PXE Service Point were installed or configured incorrectly, the best course of action is to uninstall the PXE Service Point and WDS, delete all previous configurations, and then reinstall. If WDS and the PXE Service Point have already been uninstalled, read through the below steps and actions to ensure that ALL of the steps have been followed to properly uninstall both components:

  1. In the ConfigMgr 2007 Admin Console, navigate to "Computer Management" --> "Operating System Deployment" --> "Boot Images".

  2. Under each Boot Image, click on the "Distribution Points" node. On the right hand panel, right click on the "\\<Server_Name>\SMSPXEIMAGES$" DP and then choose "Delete" (where <Server_Name> is the name of the server where the PXE Service Point and WDS is being reinstalled). If the Boot Image is installed on the standard DP, it is NOT necessary to also delete the Boot Image from the standard DP.

  3. Under each Boot Image that was deleted, monitor the "Package Status" node under the Boot Image to ensure that the Boot Image is removed from the SMSPXEIMAGES$ DP. To verify, check the "Package Status" node under the first "Package Status" node. Once the Boot Image has been successfully deleted from the DP, "Source Version", "Targeted", and "Installed" will all be 0.

  4. Make sure that no other packages are on the SMSPXEIMAGES$ DP. To check if there are any other packages on the SMSPXEIMAGES$ DP, on the server where the PXE Service Point is being uninstalled, navigate to the folder RemoteInstall\SMSImages\SMSPKG. The RemoteInstallfolder will be on the root level of one of the drives of the server. If the folder is empty, all packages have been removed. If the folder contains subfolders, there are additional packages on the SMSPXEIMAGES$ DP that need to be removed:

    1. To determine which packages are on the DP, copy down the folder names. The folder names correspond to the Package ID of the package that is on the DP.

    2. In the ConfigMgr 2007 Admin Console, navigate to "System Status" --> "Package Status". On the right hand panel all of the packages in the environment will be listed. On the far right last column the Package ID will be listed. Match up the Package ID obtained in Step 1
      with the Package Name.

    3. Based on the Package Name obtained in the Step 2, locate the package under one of the following nodes in the ConfigMgr 2007 console:

      • "Computer Management" --> "Software Distribution" --> "Packages"
      • "Computer Management" --> "Operating System Deployment" --> "Operating System Images"
      • "Computer Management" --> "Operating System Deployment" --> "Operating System Install Packages"
      • "Computer Management" --> "Operating System Deployment" --> "Driver Packages"
      • "Computer Management" --> "Software Updates" --> "Deployment Packages"

    4. Under each package, click on the "Distribution Points" node. On the right hand panel, right click on the "\\<Server_Name>\SMSPXEIMAGES$" DP and then choose "Delete" (where <Server_Name> is the name of the server where the PXE Service Point and WDS is being reinstalled).

    5. Under each package that was deleted, monitor the "Package Status" node under the package to ensure that the package is removed from the SMSPXEIMAGES$ DP. To verify, check the "Package Status" node under the first "Package Status" node. Once the package has been successfully deleted from the DP, "Source Version", "Targeted", and "Installed" will all be 0.

    6. Once all of the packages have been deleted, check the RemoteInstall\SMSImages\SMSPKG folder on the server where the PXE Service Point is being uninstalled and and ensure that it is empty.

  5. On the server where the PXE Service Point and WDS are being uninstalled, open the Services console. Locate the "Windows Deployment Services Server" service, right click on it, and select "Stop". If the service is already stopped, proceed to Step 6.

  6. In the ConfigMgr 2007 Admin Console, navigate to "Site Management" --> <Site_Code> --> "Site Settings" --> "Site Systems".

  7. Under "Site Systems", click on the server where the PXE Service Point is being uninstalled. On the right hand panel right click on "ConfigMgr PXE service point" and choose "Delete". In the "Confirm Delete" dialog box, click on the "Yes" button.
  8. On the server where the PXE Service Point is being uninstalled, navigate to the ConfigMgr 2007 site server log location using Windows Explorer. Usually the log location will be under one of the following paths:

    • 32bit servers
      <drive_where_ConfigMgr_is_installed>\Program Files\Microsoft Configuration Manger

    • 64bit servers
      <drive_where_ConfigMgr_is_installed>\Program Files (x86)\Microsoft Configuration Manger\Logs

    • 32bit or 64bit servers
      <drive_where_ConfigMgr_is_installed>\SMS

  9. Once the log directory has been located in Step 8, open the log file PXESetup.log using SMS Trace/Trace32.exe. Monitor this log and verify that the PXE Service Point uninstalled correctly. It may take a few minutes for the deinstallation to start and finish successfully. Once uninstalled correctly, the last line in the log should be "SMSPXE deinstall exited with return code 0", "Deinstallation was successful.", and "Removing PXE Registry." Verify that the lines are for the current date and time frame.

    If the deinstall of the PXE Service Point never kicks off, check the sitecomp.log on the parent site server to determine why it was not able to start the deinstall. In most cases it is due to file in use issues, which usually can be resolved by stopping the WDS service (Step 5). A reboot of the server may also help resolve the issue.

    Do NOT proceed until confirmation has been received in the PXESetup.log that deinstallation has been successful.

  10. Uninstall Windows Deployment Services (WDS) on the server:

    • If using Windows Server 2003, WDS is uninstalled via the Add/Remove Windows Components in the Add/Remove Control Panel.

    • If using Windows Server 2008 or newer, WDS is uninstalled via Roles in Server Manager.

  11. Reboot the server where WDS and the PXE Service Point were just uninstalled.

  12. Once the server reboot completes and the server comes back up, locate the RemoteInstall folder on the root level of each of the drives of the server. If it exists on the drive, rename the RemoteInstall folder (i.e. RemoteInstallOld). On most servers, only one of the drives will have a RemoteInstall folder. However if multiple instances of the RemoteInstall folder exist, make sure to rename each instance.

    If when renaming the RemoteInstall folder you receive one of the below messages:

    Windows Server 2008/Windows Server 2008 R2
    This folder is shared with other people

    If you rename this folder, it will no longer be shared.

    Folder: <drive_letter>\RemoteInstall
    Share Name: REMINST

    or

    Windows Server 2003
    You are sharing <drive_letter>:\RemoteInstall\SMSIMAGES as SMSPKEIMAGES$. The folder will not be shared after you move or rename it. Are you sure you want to continue?

    go ahead and make sure to click on either the "Continue" or "Yes" button.

  13. On the server where WDS and the PXE Service Point were uninstalled, delete the folders BootImages and PXEBootFiles under %systemroot%\Temp (usually C:\Windows\Temp). It may be necessary to take ownership of the folders and their subfolders to successfully delete the folders. In some circumstances, it may be necessary to also navigate down the folder hierarchy and take ownership from the bottom up.

  14. Reinstall WDS and the PXE Service Point using the instructions in the section "How To Properly Install and Set Up A New Instance of A PXE Service Point".

Testing The PXE Service Point

Once WDS and the PXE Service Point have been installed and configured, test the PXE Service point to see if it is working. Take the following measures to ensure the best testing environment:

  1. To eliminate problems with Unknown Computer Support, advertise the Task Sequence to a collection that has known existing clients. If necessary, use the Computer Association node to manually create a client record. For best results, create the record based on the SMBIOS GUID (System UUID) of the PC and NOT the MAC address.

  2. To eliminate certain issues that can occur with mandatory assignments, do not add a mandatory assignment to the advertisement of the Task Sequences. Instead the Task Sequence advertisement should be optional.

  3. Verify the properties of the advertisement and ensure that under the "General" tab the option "Make this task sequence available to boot media and PXE" is checked.

  4. Verify the properties of the Task Sequence and ensure that under the "Advanced" tab the option "Use a boot image:" is checked and that a boot image assigned under this option.

  5. Refer to the below two KB articles regarding the SMS PXE Cache:

    Client machines may fail to boot into PXE if System Center Configuration Manager Service Pack 2 has been applied
    http://support.microsoft.com/kb/2019640

    Operating system deployment fails in a System Center Configuration Manager 2007 SP1 environment if you deploy a different operating system to a client within one hour of a previous deployment
    http://support.microsoft.com/kb/969113

    During testing is suggested to set the value of the CacheExpire key to 60 (60 seconds = 1 minute). This will minimize PXE booting issues being caused by the SMS PXE cache. The default of the CacheExpire key is either 0 or 3600, both which are 3600 seconds (1 hour). After testing is complete, the value of this registry setting will need to be determined based on environmental conditions.

    Please note that each time WDS and the PXE Service Point is reinstalled the value of this key is reset back to 0.

 

Monitoring And Troubleshooting The PXE Boot

The single greatest troubleshooting tool in figuring out why a PXE boot is not working on a client PC is monitoring the SMSPXE.log. The log should be monitored live with SMS Trace/Trace32.exe while a PXE boot is attempted on the client PC. When monitoring the SMSPXE.log, the log should show in real time exactly what is occurring.

  1. While attempting a PXE boot on a client PC, perform a live monitor of the log SMSPXE.log with SMS Trace/Trace32.exe. The SMSPXE.loglog can be found under the MP/client logs of the ConfigMgr site server hosting the PXE Service Point. The location of the MP/client log files is usually under one of the following paths:

    • 32bit servers
      <drive_where_ConfigMgr_is_installed>\Program Files\SMS_CCM\Log
      or
      %systemroot%\System32\CCM\Logs (usually C:\Windows\System32\CCM\Logs)

    • 64bit servers
      <drive_where_ConfigMgr_is_installed>\Program Files (x86)\SMS\CCM\Log
      or
      %systemroot%\SysWow64\CCM\Logs (usually C:\Windows\System32\CCM\Logs)

    • 32bit or 64bit servers
      <drive_where_ConfigMgr_is_installed>\SMS_CCM\Log


  2. Monitoring the SMSPXE.log should show the activity in the log when the actual PXE request is occurring. If no activity is occurring, this is usually indicative of one of the following problems:

    • The WDS service has not started or is not running

    • The PC is on a separate subnet or vlan from the WDS and DHCP servers and IP Helpers have not been properly set up

    • DHCP Options 60, 66, or 67 have been configured

  3. Enabling debug logging on the SMSPXE.log will provide additional information in the log and could assist in troubleshooting why a PC is not PXE booting. To enable debug logging on the PXE Service Point server for the SMSPXE.log , create the following registry key on the server. A value does not need to be created under the registry key:

    32bit Windows Server
    HKLM\SOFTWARE\Microsoft\CCM\Logging\DebugLogging

    64bit Windows Server
    HKLM\SOFTWARE\Wow6432Node\Microsoft\CCM\Logging\DebugLogging

    Once the registry key has been created, restart the server for the changes to take effect.

  4. Lines in the SMSPXE.log that show PXE requests that contain all Fs as the MAC address similar to the below line can be ignored:

    MAC=FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF SMBIOS GUID=<SMBIOS_GUID> > Received DHCP Request smspxe
    Executing LookupDevice(<SMBIOS_GUID>, FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF) smspxe
    CDatabaseProxy :: LookupDevice succeeded: 0 0 0 0 smspxe
    MAC=FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF SMBIOS GUI=<SMBIOS_GUID > > Device not found in the database. smspxe
    MAC=FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF SMBIOS GUID=<SMBIOS_GUID > New client request. RequestID=<Request_ID>. smspxe

    These PXE "requests" is the server doing a self check on itself to ensure the PXE Service Point is up and responding. They can be ignored.

  5. The error in the SMSPXE.log:

    Failed to read PXE settings.
    The system cannot find the file specified. (Error: 80070002; Source: Windows) smspxe

    can be ignored and is not relevant. It does not indicate that there are any problems.

  6. If the following messages appear at the PXE boot screen:

    TFTP Download: smsboot\x86\abortpxe.com
    PXE Boot aborted. Booting to next device...

    or

    TFTP Download: smsboot\x64\abortpxe.com
    PXE Boot aborted. Booting to next device...

    it is indicative that the PXE Service Point and WDS are installed and configured correctly and working as expected. The above error messages occur when an advertised Task Sequence is not found for the PC that is being PXE booted. The PXE Service Point then responds appropriately and sends a PXE abort.

    The problem is usually associated with how the Task Sequence is advertised and targeted to the PC. Usually in these scenarios the following message will show up in the SMSPXE.log for the PXE request:

    ProcessDatabaseReply: No Advertisement found in Db for device smspxe

  7. The SMSPXEIMAGES$ DP is actually a share pointing to the SMSIMAGES folder within the RemoteInstall folder. ConfigMgr places the Boot Images in this share so that the Boot Images are available to WDS for PXE booting. In total there should only be four folders within the RemoteInstall folder as follows:

    SMSBoot
    SMSIMAGES
    SMSTemp
    Stores

    If additional folders exist in the RemoteInstall folder, such as:

    Boot
    Images
    Mgmt
    Templates
    Tmp
    WdsClientUnattend

    this is an indication that WDS has been manually configured at some point. The best course of action at this point is to reset the installation of WDS by reinstalling the PXE Service Point and WDS as described in the section "Reinstalling WDS And The PXE Service Point".

  8. ConfigMgr uses the Boot Images in the RemoteInstall\SMSIMAGES folder to extract Boot Files from the Boot Images. In addition to the Boot Images, these Boot Files are also needed by WDS to successfully complete a PXE boot. These Boot Files are placed in the SMSBoot folder under the RemoteInstall folder. The process of extracting the Boot Files can be seen by monitoring the SMSPXE.log while the WDS service is restarted. If errors appear in the log during this process (besides the error described in Step 5 above), the best course of action is to reinstall the PXE Service Point and WDS as described in the section "Reinstalling WDS And The PXE Service Point".

  9. The RemoteInstall\SMSIMAGES folder will contain a subfolder called SMSPKG, which will then contain subfolders for each Boot Image that has been added to the SMSPXEIMAGES$ DP. Each subfolder under the SMSPKG folder will have the name of the Package ID of the Boot Image.

    If any subfolder exists under SMSPKG that is not the Package ID of a Boot Image, they should be removed from the SMSPXEIMAGES$ DP via the ConfigMgr 2007 Admin console. Only Boot Images should be added to the SMSPXEIMAGES$ DP. No other type of packages should be added to the SMSPXEIMAGES$ DP. This is especially true with Operating System Image Package or an Operating System Install Package (Windows OS source files). Having an Operating System Image Package or an Operating System Install Package under the SMSPXEIMAGES$ DP will cause issues with WDS.

    Instructions on how to remove additional packages from the SMSPXEIMAGES$ DP are provide above in Step 4 under the section "Reinstalling WDS And The PXE Service Point". However make sure not to remove the Boot Images as outlined in the instructions.

  10. The RemoteInstall\SMSBoot folder should have three folders listed under it, one for each architecture type - ia64, x64, and x86. The ia64 folder will be empty since ia64 is not an officially supported platform for ConfigMgr 2007 OSD. However, both the x64 and x86 folders should have the following files in them:

    abortpxe.com
    bootmgfw.efi
    (x64 only)
    bootmgr.exe
    pxeboot.com
    pxeboot.n12
    wdsnbp.com

    If the folders are missing, empty, or missing files, then BOTH the x64 and x86 Boot Images may not have been placed in the SMSPXEIMAGES$ DP. If both the x64 and x86 Boot Images have been placed on the SMSPXEIMAGES$ DP and the folders still do not exist, are empty, or are missing files, then there may be another problem occurring. The best course of action is to reinstall the PXE Service Point and WDS as described in the section "Reinstalling WDS And The PXE Service Point".


Frank Rojas
Support Escalation Engineer

Comments
  • Hi

    I think this one also should be in the trouble shouting guide.

    Yesterday I had some tftp timemout issue when pxe booting and had multicasting enable.

    The server had both the wds and dns installed on it, so the problem is described in this KB 977512 and my problem was solved after change the registry key.

  • Thanks for the suggestion. I am going to add the above KB article you referenced along with a few other KB articles that should be looked at before any troubleshooting takes place,

  • Thanks Frank for the great guide. I have been dealing with a problem with a specific model of computers that do not work consistently with PXE. This is the scenario:

    These group of computers (among the rest of PCs, they are members of the same “all systems” collection) do not get the F12 option line when booting to PXE; they talk to DHCP, get an IP, connect to WSD and then with the ConfigMgr server but right before they F12 line, they instead get the abort message. I have found a work around (I do not like it) that if I remove one of the problematic objects from the ConfigMgr database, all of them start acting normally when booting from  PXE in. That work around only lasts for about 24 hours. The next morning I have to come and do the same.

    When I take a look of the smspxe.log file, this is what I found for one of the computers where the "F12" line to boot to PXE is not present:

    ______________________________________

    MAC=00:E0:4D:82:3A:1B SMBIOS GUID=03000200-0400-0500-0006-000700080009 > Device found in the database. MacCount=1 GuidCount=510 smspxe 10/7/2011 9:19:36 AM 5596 (0x15DC)

    [010.001.050.113:4011] Recv From:[140.198.043.008:68] Len:303 293f070 smspxe 10/7/2011 9:19:36 AM 5564 (0x15BC)

    Executing GetBootAction(70085, SCCM) smspxe 10/7/2011 9:19:36 AM 5596 (0x15DC)

    No Boot Action for Device (70085) found smspxe 10/7/2011 9:19:36 AM 5596 (0x15DC)

    ProcessDatabaseReply: No Advertisement found in Db for device smspxe 10/7/2011 9:19:36 AM5596 (0x15DC)

    _________________________________________

    Now, when I compare the previous  log with a good known PXE boot object, this is what is in the log:

    _____________________

    Advertisement results: OfferId:GCC2006E OfferTime:21/03/2011 07:54:00 PackageID:GCC00033 BootImageID:GCC00072 PackageVer: PackagePath:\\SCCM\SMSPXEIMAGES$\SMSPKG\GCC00072\ Mandatory:0

    ___________________________________

    What could be different when both of objects are member of the same collection?

    Something I just noticed on the PXE boot screen is that those “bad” computers have the same GUID. Could that be part of the problem?

    Researching I found a blog suggesting to modify NBS_Lookupdevice instance on the SQL database but it is something I will rather not to do. I do not feel comfortable making changes to the database.

    I appreciate if you can help me straight this up.

    Thanks.

    Mario

  • Mario yes I agree, it does look like the problem you are having is being caused by duplicate SMBIOS GUIDs. I would NOT recommend that you use the solution that modifies the database. We rarely recommend directly modifying the databases except in certain rare and extreme cases and circumstances. This is not one of those cases.

    You actually reminded me that I recently updated an article regarding the issue, but I had not yet published it. I have just published it to the blog site:

    No Assigned Task Sequence when initiating deployments caused by duplicate SMBIOS GUIDs (System UUIDs) in System Center Configuration Manager 2007

    blogs.technet.com/.../no-assigned-task-sequence-when-initiating-deployments-caused-by-duplicate-smbios-guids-system-uuids-in-system-center-configuration-manager-2007.aspx

    Take a look at the solution in that article. To work around the issue, it uses a built in feature of WDS called BannedGUIDS.

  • Frank,

    Thanks for replying. I will give it a try to the solution you suggested and will post an update with the results.

  • Very good post. Thanks a lot for all the help Frank

  • Hi Frank.

    I am back to report that your suggestion is working and now that i added the duplicated  GUIDS to the WDS registry, the computers with issues are displaying the F12 option.

    I have a different issue. After booting from PXE when about the see the TS available for any of those computers they get the error: Failed to download policy XXXXXXXX (Code 0x80004005). When I read the smsts.log on any of the computers I see two errors. One mentioned above and the other is: no cert available for policy decoding

    I checked for any PXE Certificate missing, blocked or expired but they all look good (I based on this blog: blogs.technet.com/.../configmgr-2007-osd-task-sequence-fails-with-the-error-an-error-occurred-while-retrieving-policy-for-this-computer-0x80004005.aspx )

    And one more time this error is only happening on the same computers with duplicated GUIDs, the same one I banned on the WSD registry.

    I appreciate any suggestion..

    Thanks.

  • Mario,

    The issue could be cause by a variety of diffrent problems. Unfortuantely it's probably not something I can troubleshoot via this thread. If you cannot figure it out, open up a case and we will help you determine what is going.

  • Thanks Frank.

  • Thanks for the guide, very detailed but didn't cover the issue I was having.

    I had set up a new site server with WDS, PXE and a DP. It all worked but clients would only PXE boot once and the 'clear last PXE' record remained blank.

    To fix this, we added the site server to the local administrators group on the server hosting the SQL database.

    May sound obvious but it doesn’t appear to be documented anywhere.

  • It's actually documented here:

    Setup Prerequisite Checks

    technet.microsoft.com/.../bb680951.aspx

    Configuration Manager Setup requires that the logged on user and site server computer possess administrative rights to the SQL Server computer.

  • Frank,

    We are having problems with SCCM PXE boot between two domains separated by a firewall.  We believe the firewall is the culprit and desperately need some information about what ports need to be opened to allow this traffic through.  We tested the process on the same subnet as the SCCM server and it works fine.

    We have installed the DHCP helpers and also a helper for the SCCM server on the first layer 3 device encountered by the traffic flowing from the requestor.

    Can you please provide this information?

  • Take a look at items 8, 9, and 38, plus note 5 from the following TechNet article:

    Ports Used by Configuration Manager

    technet.microsoft.com/.../bb632618.aspx

  • Frank,

    I want to compliment you on this guide and thank you for taking the time to make it available.  I have used this proceedure several times and it always works flawlessly if followed to the letter.  What I like most about this guide is your attention to detail, leaving nothing to the imagination.  Similar guides on this and other topics commonly omit details which the author seems to feel are common knowledge, which they frequently aren't, rendering their guides difficult to follow for the uninitiated.  That is not a problem with your guide.  Great work!

  • very helpful post and very well written, saved us from a pickle after removing some boot images within the SCCM console wrecked the PXE-build capability of our SCCM 2007 SP2 system.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment