Failed to open unattend.xml (0x80070003) error

My client had a very strange error this week, that occurs during the OSD process at the “Setup Windows and ConfigMgr” step. The onscreen error shows:

 “Task Sequence: TSName has failed with the error code (0x00000001). For more information, please contact your system administrator or helpdesk operator”

Now this error didn’t affect all machines and when it did occur, only seemed happen the first time you try to build a machine. If you were to try and build the machine immediately afterwards, it would successfully run.

I started troubleshooting by delving into the SMSTS.log, where you see the following:

Failed to open file: E:\WINDOWS\panther\unattend\unattend.xml (0x80070003) OSDSetupWindows 03/09/2012 20:37:11 200 (0x00C8)
this->resolveConfigFileVariables(), HRESULT=80070003 (e:\nts_sms_fre\sms\client\osdeployment\setupwindows\setupwindows.cpp,423) OSDSetupWindows 03/09/2012 20:37:11 200 (0x00C8), HRESULT=80070003 (e:\nts_sms_fre\sms\client\osdeployment\setupwindows\setupwindows.cpp,1707) OSDSetupWindows 03/09/2012 20:37:11 200 (0x00C8)
Exiting with code 0x80070003 OSDSetupWindows 03/09/2012 20:37:11 200 (0x00C8)
Process completed with exit code 2147942403 TSManager 03/09/2012 20:37:11 1988 (0x07C4)
!——————————————————————————————–! TSManager 03/09/2012 20:37:11 1988 (0x07C4)
Failed to run the action: Setup Windows and ConfigMgr.
The system cannot find the path specified. (Error: 80070003; Source: Windows) TSManager 03/09/2012 20:37:11 1988 (0x07C4)

It seems, even though unattend.xml gets downloaded to the D:\ drive (I checked and its definitely there) for some reason SCCM still wants to look for it on the E:\.

I backed trace the creation of the E:\ to the “Format and Partition Disk” step in the TS. We create 2 partitions during this task (one for BitLocker and one for the OS) and as the CD/DVD drive sometimes uses the drive letter D:\, it creates the BitLocker partition on the C:\ and the OS partition on the E:\. This is where the problem seems to be, as when the machine reboots and goes back into WinPE, the drive letters sort themselves out (BitLocker on C:\, OS on D:\ and CD/DVD on E:\), it then downloads the files it needs but at that point SCCM still seems to want to look for the file at the original drive letter (e.g. E:\).

There are a number of fixes for this I think:

  • Change the way you create the BitLocker partition. Reading about the best practice for this, you should create one partition (which avoids multiple drive letters being created, ensuring this issue doesn’t occur) and then run BdeHdCfg -target default -quiet” in a task once you Windows 7 has installed –
  • We also tested adding in a reboot after the “Format and Partition Disk” step, which seemed to do the trick, as the machine would reboot with correct drive letters before downloading any files.
  • There is also a workaround (and a way of replicating it):
    1. Wait until you get to the point where you select the task sequence
    2. Hit “F8” to open the command prompt
    3. Type “diskpart” and hit return
    4. Type “select disk 0” and hit return
    5. Type “list volume” and see if the CD/DVD drive has a drive letter of C:\ or D:\. If it does move to step 6, otherwise close the command prompt and begin the staging otherwise.
    6. Type “select volume X” (where X is the volume number of the CD/DVD drive) and hit return
    7. Type “assign letter=e” and hit return (if the E:\ is already taken up use the next available letter)
    8. Type “list volume” and hit return to ensure the new drive letter is active
    9. Close down the command prompt and begin staging