One of the most impressive features of System Center Configuration Manager (SCCM) 2007 is Operating System Deployment (OSD) which began life as a feature pack for SMS 2003. An integral component of OSD is a new site role in SCCM called the PXE service point that responds to PXE requests from computers that have been imported into SCCM database.
The PXE service point site role is used to initiate the operating system deployment process and must be configured to respond to PXE boot requests made by client computers. Installation of the PXE service point requires Windows Deployment Services (WDS) to be installed on the computer assigned to host the role.
SCCM effectively adds another provider on top of the existing WDS providers. The SCCM PXE service provider will process a request if there is a record for the device (MAC address or SMBIOS GUID) in the SSCM database. The request is serviced by SCCM, even is there is no current advertisement for the device, as long as it is in the database. If no client record is found in the SCCM database WDS will fall back to its default provider.
In theory this is simple enough and provides a great new way to deploy operating systems but I wish to share a few PXE boot problems that I observed on a recent deployment project and how to resolve them.
IMPORTANT - please bear in mind that these problems must be placed within the context of my customer's environment and the issues observed may not necessarily relate to the same root cause on another site.
To put the problems into the context of the customer's infrastructure -
PXE error = PXE-E32: TFTP open timeout
Issue = the PXE client was able to get a DHCP address and a boot file name, but timed out when attempting to download the boot file using TFTP or MTFTP
Cause = port security was enabled on the Cisco switch ports. Switch off port security to resolve.
PXE error = PXE-E3B: TFTP error - File not found
Issue = the requested file was not found on the TFTP server
Cause = DHCP option 67 (Bootfile Name) was not added to the DHCP scope options. Add option 67 to resolve.
PXE error = this problem is not really a PXE problem as the client successfully boots and the fails when trying to process the SCCM task sequence.
Issue = negotiation between the Cisco switch port and the client causes a timeout
Cause = PortFast is not enabled on the Cisco switch. Enable PortFast to resolve.
As an aside, the fix for a lot of PXE boot problems make reference to the fact that WDS should be installed but NOT configured in any way prior to installing the SCCM PXE service point - simply install WDS reboot, leave well alone and install the PXE service point. On my PXE service point server I created a small NTFS volume specifically to host WDS and so broke with convention by initialising WDS upon reboot to point the components to this particular drive. With the exception of the issues listed above, which are not WDS related, my PXE service point functions just fine!