SCCM 2007 OSD Issue
Every since I installed SCCM 2007 in the network I manage, I wanted to test the Operating System Deployment (OSD) because it’s much more flexible than what Windows Deployment Services provides.
After looking at numerous guides on how to setup OSD in SCCM 2007 (here and here) I would always end up having this error when trying to PXE boot clients
Downloaded WDSNBP
Architecture: x64
The details below show the information relating to the PXE boot request for this computer. Please provide these details to your Windows Deployment Services Administrator so that this request can be approved.
Pending Request ID: 45
Contacting Server: 192.168.3.1.<br />
TFTP Download: smsbootx64abortpxe.com
``
PXE Boot aborted. Booting to next device...
Of course I tried what every other sysadmin does, find cases when people had the same problem and try the fixed that worked for them. Well, in this case that didn’t work, and that’s because my situation was a bit special. What should have caught my attention a lot earlier was the following lines in the smspxe.log file:
Executing LookupDevice(03000200-0400-0500-0006-000700080009, 00:13:8F:D7:BD:97) smspxe 26.01.2011 12:19:54 3240 (0x0CA8)
CDatabaseProxy :: LookupDevice succeeded: 162 30 5 1 smspxe 26.01.2011 12:19:54 3240 (0x0CA8)
MAC=00:13:8F:D7:BD:97 SMBIOS GUID=03000200-0400-0500-0006-000700080009 > Device found in the database. MacCount=1 GuidCount=30 smspxe 26.01.2011 12:19:54 3240 (0x0CA8)
Executing LookupDevice(03000200-0400-0500-0006-000700080009, 00:13:8F:D7:BD:97) smspxe 26.01.2011 12:19:54 3416 (0x0D58)
The problem here is obvious, although I can’t say it was to me (GuidCount greater than 1). There were computers with duplicate GUIDs (actually UUIDs) and this prevented a proper PXE boot for all devices. I managed to get a confirmation that the duplicate GUID was indeed preventing the PXE boot after reading this blog post on the ConfigMgr blog. The only problem is they suggested something I knew I couldn’t do: talk to the vendors and ask them to fix the problem. The salvation finally came after reading post on the Microsoft forums here.
I proceed to test this out by running SQL Management Studio, going to my ConfigMgr database (SMS_Sitecode) then to Stored procedures and finally edited the NBS_Lookupdevice procedure to replace my duplicate UUID with all 0 which SCCM will ignore by default. Another method described here involves changing 2 procedures so that SCCM basically ignores UUIDs when dealing with PXE boot.