MDT install not working, Fails

deploymentimagingmdtunattendedwindows 7

I am trying to deploy Windows 7 x86 with MDT 2013 and WDS (Server 2012 R2) but it is failing:

WDS boots the litetouch WIM (32 or 64 bit) and Lite Touch takes over. I select the Task sequence Windows 7 x86 and it goes through with formatting and apples the install image (Imported from Windows 7 DVD). After it finishes applying the image it immediately fails the installation saying this:

####################################
## Disk(1) was not found. Unable to continue
## Possible Cause: Missing Storage Driver.
#################################

Failure (7711) Disk OSDiskIndex(1) can not be found!
No answer file could be found
No answer file could be found
No answer file could be found
Failure (Err): 53: Copy File C:\MININT\unattended.xml to C:\Windows\Panther\Unattend.xml - File Not Found
Failure (5627): 2: Run DISM.exe
Litetouch deployment failed, Return Code = -2147465259 0x80004005
Failed to save environment to (80070057)
Failed to run the action: Format Secondary Disk.
Unknown error (Error: 00001E1F; Source: Unkown)
The execution engine ignored the failure of the action (Format Secondary Disk) and continues execution
Failed to run the action: Install Operating System
The execution of the group (Install OS) has failed and the execution of task sequence failed.
Unknown error (Error: 000015FB; source: Unkown)
Task Sequence Engine failed! Code: enExecutionFail
Task sequence execution failed with error code 80004005
Error Task Sequence Manager failed to execute task sequence. Code 0x80004005

I am using a custom task sequence built from the ground up and here it is:

<?xml version="1.0"?>
<sequence version="3.00" name="Custom Task Sequence" description="Sample Custom Task Sequence">
  <group expand="true" name="Initialization" description="Scans the system for compatibility and gathers users input." disable="false" continueOnError="false">
    <action />
    <step type="BDD_Gather" name="Gather" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="GatherLocalOnly" property="GatherLocalOnly">true</variable>
        <variable name="RulesFile" property="RulesFile"></variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIGather.wsf"</action>
    </step>
    <step type="BDD_Validate" name="Validate" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="ImageMemory" property="ImageMemory">768</variable>
        <variable name="ImageProcessorSpeed" property="ImageProcessorSpeed">800</variable>
        <variable name="ImageSize" property="ImageSize">0</variable>
        <variable name="VerifyOS" property="VerifyOS"></variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIValidate.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_SetVariableAction" name="Next Step" description="Used for Debugging" disable="false" continueOnError="false" successCodeList="0 3010">
      <defaultVarList>
        <variable name="VariableName" property="VariableName">STEP</variable>
        <variable name="VariableValue" property="VariableValue">PREP</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTISetVariable.wsf"</action>
    </step>
  </group>
  <group expand="true" name="Install Prep" description="Formats the disk and other prep." disable="false" continueOnError="false">
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Disable BDE Protectors" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIDisableBDEProtectors.wsf"</action>
    </step>
    <action />
    <step type="SMS_TaskSequence_PartitionDiskAction" name="Format Primary Disk" description="Gets the primary disk ready for installation." disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="OSDDiskIndex" property="DiskIndex">0</variable>
        <variable name="OSDDiskType" property="DiskType">BASIC</variable>
        <variable name="DONotCreateExtraPartition" property="DONotCreateExtraPartition"></variable>
        <variable name="OSDDiskPartDoNotRemoveOEMPartitions" property="OSDDiskPartDoNotRemoveOEMPartitions"></variable>
        <variable name="OSDPartitions0Type" property="Partitions0Type">Primary</variable>
        <variable name="OSDPartitions0FileSystem" property="Partitions0FileSystem">NTFS</variable>
        <variable name="OSDPartitions0Bootable" property="Partitions0Bootable">True</variable>
        <variable name="OSDPartitions0QuickFormat" property="Partitions0QuickFormat">True</variable>
        <variable name="OSDPartitions0VolumeName" property="Partitions0VolumeName">Sea Drive</variable>
        <variable name="OSDPartitions0Size" property="Partitions0Size">100</variable>
        <variable name="OSDPartitions0SizeUnits" property="Partitions0SizeUnits">%</variable>
        <variable name="OSDPartitions0VolumeLetterVariable" property="Partitions0VolumeLetterVariable">OSDisk</variable>
        <variable name="OSDPartitions" property="Partitions">1</variable>
        <variable name="OSDPartitionStyle" property="PartitionStyle">MBR</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIDiskpart.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_PartitionDiskAction" name="Format Secondary Disk" description="Gets the secondary disk ready for use after installation." disable="false" continueOnError="true" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="OSDDiskIndex" property="DiskIndex">1</variable>
        <variable name="OSDDiskType" property="DiskType">BASIC</variable>
        <variable name="DONotCreateExtraPartition" property="DONotCreateExtraPartition">YES</variable>
        <variable name="OSDDiskPartDoNotRemoveOEMPartitions" property="OSDDiskPartDoNotRemoveOEMPartitions"></variable>
        <variable name="OSDPartitions0VolumeName" property="Partitions0VolumeName">Dhe Drive</variable>
        <variable name="OSDPartitions0Type" property="Partitions0Type">Primary</variable>
        <variable name="OSDPartitions0FileSystem" property="Partitions0FileSystem">NTFS</variable>
        <variable name="OSDPartitions0Size" property="Partitions0Size">100</variable>
        <variable name="OSDPartitions0SizeUnits" property="Partitions0SizeUnits">%</variable>
        <variable name="OSDPartitions0Bootable" property="Partitions0Bootable">False</variable>
        <variable name="OSDPartitions0QuickFormat" property="Partitions0QuickFormat">True</variable>
        <variable name="OSDPartitions0VolumeLetterVariable" property="Partitions0VolumeLetterVariable"></variable>
        <variable name="OSDPartitions" property="Partitions">1</variable>
        <variable name="OSDPartitionStyle" property="PartitionStyle">MBR</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIDiskpart.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Configure" description="Configures Unattended.xml" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIConfigure.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Copy Scripts" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\LTICopyScripts.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_SetVariableAction" name="Next Step" description="Used for Debuging" disable="false" continueOnError="false" successCodeList="0 3010">
      <defaultVarList>
        <variable name="VariableName" property="VariableName">STEP</variable>
        <variable name="VariableValue" property="VariableValue">INSTALL</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTISetVariable.wsf"</action>
    </step>
    <condition>
      <expression type="SMS_TaskSequence_VariableConditionExpression">
        <variable name="Variable">STEP</variable>
        <variable name="Operator">equals</variable>
        <variable name="Value">PREP</variable>
      </expression>
    </condition>
  </group>
  <group expand="true" name="Install OS" description="Installs the operating system" disable="false" continueOnError="false">
    <action />
    <step type="BDD_InstallUpdatesOffline" name="Apply Packages" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="PackageSelectionProfile" property="PackageSelectionProfile">All Packages</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIPatches.wsf"</action>
    </step>
    <step type="BDD_InstallOS" name="Install Operating System" description="Installs the operating system." disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="OSGUID" property="OSGUID">{9c29937d-e430-40d3-8077-cc8fa2d9cf6e}</variable>
        <variable name="DestinationDisk" property="DestinationDisk">0</variable>
        <variable name="DestinationPartition" property="DestinationPartition">1</variable>
        <variable name="DestinationOSVariable" property="DestinationOSVariable">OSDisk</variable>
        <variable name="DestinationOSRefresh" property="DestinationOSRefresh"></variable>
        <variable name="DestinationOSDriveLetter" property="DestinationOSDriveLetter"></variable>
        <variable name="DestinationOSInstallType" property="DestinationOSInstallType">ByVariable</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\LTIApply.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Copy Scripts" description="Copies scripts to the local drive" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\LTICopyScripts.wsf"</action>
    </step>
    <step type="BDD_InjectDrivers" name="Inject Drivers" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="DriverSelectionProfile" property="DriverSelectionProfile">All Drivers</variable>
        <variable name="DriverInjectionMode" property="DriverInjectionMode">AUTO</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIDrivers.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Add WinRE" description="Adds windows recovery enviroment." disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIWinRE.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_SetVariableAction" name="Next Step" description="Used for Debugging" disable="false" continueOnError="false" successCodeList="0 3010">
      <defaultVarList>
        <variable name="VariableName" property="VariableName">STEP</variable>
        <variable name="VariableValue" property="VariableValue">POST</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTISetVariable.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RebootAction" name="Restart computer" description="Reboots the computer" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="SMSRebootMessage" property="Message"></variable>
        <variable name="SMSRebootTimeout" property="MessageTimeout">60</variable>
        <variable name="SMSRebootTarget" property="Target"></variable>
      </defaultVarList>
      <action>smsboot.exe /target:WinPE</action>
    </step>
    <condition>
      <expression type="SMS_TaskSequence_VariableConditionExpression">
        <variable name="Variable">STEP</variable>
        <variable name="Operator">equals</variable>
        <variable name="Value">INSTALL</variable>
      </expression>
    </condition>
  </group>
  <globalVarList>
    <variable name="OSGUID" property="OSGUID">{9c29937d-e430-40d3-8077-cc8fa2d9cf6e}</variable>
    <variable name="DestinationDisk" property="DestinationDisk">0</variable>
    <variable name="DestinationPartition" property="DestinationPartition">1</variable>
    <variable name="DestinationOSVariable" property="DestinationOSVariable">OSDisk</variable>
    <variable name="DestinationOSRefresh" property="DestinationOSRefresh"></variable>
    <variable name="DestinationOSDriveLetter" property="DestinationOSDriveLetter"></variable>
    <variable name="DestinationOSInstallType" property="DestinationOSInstallType">ByVariable</variable>
  </globalVarList>
  <group expand="true" name="Post Install" description="Stuff done after install of OS" disable="false" continueOnError="false">
    <action />
    <step type="BDD_Gather" name="Gather" description="" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="GatherLocalOnly" property="GatherLocalOnly">true</variable>
        <variable name="RulesFile" property="RulesFile"></variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIGather.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Post Apply Cleanup" description="" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\LTIApply.wsf" /post</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Tattoo" description="Adds machine information to system" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTITatoo.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Windows Updates" description="Installs updates before programs install." disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIWindowsUpdate.wsf"</action>
    </step>
    <step type="BDD_InstallApplication" name="Install Programs" description="this installs all programs that are set to install." disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="ApplicationGUID" property="ApplicationGUID"></variable>
        <variable name="ApplicationSuccessCodes" property="ApplicationSuccessCodes">0 3010</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIApplications.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RunCommandLineAction" name="Windows Updates" description="installs updates after applications install" disable="false" continueOnError="false" startIn="" successCodeList="0 3010" runIn="WinPEandFullOS">
      <defaultVarList>
        <variable name="PackageID" property="PackageID"></variable>
        <variable name="RunAsUser" property="RunAsUser">false</variable>
        <variable name="SMSTSRunCommandLineUserName" property="SMSTSRunCommandLineUserName"></variable>
        <variable name="SMSTSRunCommandLineUserPassword" property="SMSTSRunCommandLineUserPassword"></variable>
        <variable name="LoadProfile" property="LoadProfile">false</variable>
      </defaultVarList>
      <action>cscript.exe "%SCRIPTROOT%\ZTIWindowsUpdate.wsf"</action>
    </step>
    <step type="SMS_TaskSequence_RebootAction" name="Restart computer" description="Reboots the computer for good measure" disable="false" continueOnError="false" runIn="WinPEandFullOS" successCodeList="0 3010">
      <defaultVarList>
        <variable name="SMSRebootMessage" property="Message"></variable>
        <variable name="SMSRebootTimeout" property="MessageTimeout">60</variable>
        <variable name="SMSRebootTarget" property="Target"></variable>
      </defaultVarList>
      <action>smsboot.exe /target:WinPE</action>
    </step>
    <condition>
      <expression type="SMS_TaskSequence_VariableConditionExpression">
        <variable name="Variable">STEP</variable>
        <variable name="Operator">equals</variable>
        <variable name="Value">POST</variable>
      </expression>
    </condition>
  </group>
</sequence>

The format secondary disk is set to continue execution if it fails (in case the client does not have a secondary disk)

Can somebody tell me what is going wrong?

Best Answer

I have figured it out:

In the task sequence folder ([deploymentsharename] -> Control -> [task id]) there was no unattend.xml file. The custom task sequence did not generate one when it was created.

I manually took one from a client task sequence that I created then I edited it to suit my needs for my custom one.

The disk error was for no secondary disk being present. I set it so that it would automatically skip the step and continue if there was no secondary disk to prep.