We are running SCCM 2012 R2 with MDT 2013 integrated on Server 2012.
We are having an unusual issue with the Lenovo Yoga 12. Specifically, if we execute a task sequence that needs to stage a boot image different than the one originally delivered by pxe, the task sequence will fail. We use this functionality on other models to deliver boot images that may need a larger payload for special task sequences. The normal behavior in this case is that pxe will deliver a default boot image and if the task sequence is configured to use a different boot image, it will be downloaded, the computer will reboot, and the task sequence will run using that boot image. This functionality is currently working for other Lenovo models, as well as Dells.
The first question that comes to mind is whether we are using necessary storage drivers in the default pxe boot image. In this case, I believe we are because we are using the recommended USB 3.0 nic and WinPE boot image drivers proviced by the manufacturer. Moreover, the existing drivers in the default boot image are capable of imaging the Yoga 12 perfectly fine as long as the boot image delivered by pxe is the same as the boot image designated in the task sequence, in other words if it does not need to stage a different boot image than the one delivered by pxe. So the storage drivers seem right.
We experience this on computers with an existing operating system as well as on systems with a disk wiped by diskpart | clean.
Here is what the logs look like for a computer with an installed operating system:
<![LOG[Launch mode read from environment variable: 'PXE'.']LOG]!><time="12:26:35.112+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="tsmediawizardcontrol.cpp:2020"><![LOG[BootpackageID: PS100272 AssociatedWInPE: PS10016F SourceVersion: 4 AssociatedSourceVersion: 4]LOG]!><time="12:26:35.112+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="tsmediawizardcontrol.cpp:2148"><![LOG[WinPE associated with task sequence does not match boot media.]LOG]!><time="12:26:35.112+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="tsmediawizardcontrol.cpp:2195"><![LOG[Installing WinPE associated with task sequence PS10023A:0.]LOG]!><time="12:26:35.112+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="tsmediawizardcontrol.cpp:2228"><![LOG[Staging boot image PS10016F]LOG]!><time="12:26:35.112+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="bootimage.cpp:717"><![LOG[Mounting \Device\HarddiskVolume2 at Z:]LOG]!><time="12:26:41.712+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="mountpoint.cpp:49"><![LOG[Unmounting volume Z:\]LOG]!><time="12:26:41.712+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="mountpoint.cpp:104"><![LOG[Checking to see if the data path is on a bootable volume]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="bootimage.cpp:1014"><![LOG[ Volume C:\ because it is not suitable as the system partition]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="bootimage.cpp:395"><![LOG[Searching for a volume to stage the boot image]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="bootimage.cpp:1038"><![LOG[ Volume C:\ because it is not suitable as the system partition]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="bootimage.cpp:395"><![LOG[ Volume X:\ is not on a fixed disk]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="1" thread="1044" file="bootimage.cpp:346"><![LOG[BootImage::FindBootableVolume( NULL, sPath), HRESULT=80070490 (e:\qfe\nts\sms\framework\tscore\bootimage.cpp,1045)]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="0" thread="1044" file="bootimage.cpp:1045"><![LOG[Unable to find a volume that is suitable for staging the boot image. Element not found. (Error: 80070490; Source: Windows)]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="3" thread="1044" file="bootimage.cpp:1045"><![LOG[BootImage::PrepareForStaging(sLocalDataPath), HRESULT=80070490 (e:\qfe\nts\sms\framework\tscore\bootimage.cpp,719)]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="0" thread="1044" file="bootimage.cpp:719"><![LOG[TS::Boot::BootImage::StageBootImage( pAssociatedWinPE->GetPackageID(), TsBootProgress, pv, hCancelEvent), HRESULT=80070490 (e:\nts_sccm_release\sms\client\tasksequence\tsmbootstrap\tsmediawizardcontrol.cpp,2231)]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="0" thread="1044" file="tsmediawizardcontrol.cpp:2231"><![LOG[Failed to stage WinPE. Code(0x80070490)]LOG]!><time="12:26:41.805+300" date="06-02-2015" component="TSPxe" context="" type="3" thread="1044" file="tsmediawizardcontrol.cpp:2231">
Here is what the logs look like for a computer with no partitions:
<![LOG[Launch mode read from environment variable: 'PXE'.']LOG]!><time="08:51:51.090+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="tsmediawizardcontrol.cpp:2020"><![LOG[BootpackageID: PS10026D AssociatedWInPE: PS100243 SourceVersion: 9 AssociatedSourceVersion: 9]LOG]!><time="08:51:51.090+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="tsmediawizardcontrol.cpp:2148"><![LOG[WinPE associated with task sequence does not match boot media.]LOG]!><time="08:51:51.090+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="tsmediawizardcontrol.cpp:2195"><![LOG[Installing WinPE associated with task sequence PS10023A:0.]LOG]!><time="08:51:51.090+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="tsmediawizardcontrol.cpp:2228"><![LOG[Staging boot image PS100243]LOG]!><time="08:51:51.090+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="bootimage.cpp:717"><![LOG[The system disk is not currently partitioned. A temporary partition will be created]LOG]!><time="08:51:54.645+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="bootimage.cpp:498"><![LOG[Command line for extension .exe is "%1" %*]LOG]!><time="08:51:54.645+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="commandline.cpp:228"><![LOG[Set command line: "osddiskpart.exe" /quiet]LOG]!><time="08:51:54.645+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="commandline.cpp:731"><![LOG[Executing command line: "osddiskpart.exe" /quiet]LOG]!><time="08:51:54.645+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="commandline.cpp:827"><![LOG[==============================[ OSDDiskPart.exe ]==============================]LOG]!><time="08:51:54.656+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="main.cpp:1078"><![LOG[Command line: "osddiskpart.exe" /quiet]LOG]!><time="08:51:54.663+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="main.cpp:1079"><![LOG[Succeeded loading resource DLL 'X:\sms\bin\x64\1033\TSRES.DLL']LOG]!><time="08:51:54.663+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="util.cpp:964"><![LOG[Reading partition size info for partition 0]LOG]!><time="08:51:54.663+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="main.cpp:461"><![LOG[Remaining size before partition: 128034708480]LOG]!><time="08:51:54.663+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="main.cpp:465"><![LOG[size units: SIZE_MB]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="main.cpp:483"><![LOG[No size specified. Filling disk.]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="main.cpp:502"><![LOG[Remaining size after partition 0: 0]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="main.cpp:618"><![LOG[Checking volume 'X:' for BitLocker]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="main.cpp:317"><![LOG[diskpart: select disk 0 clean convert gpt create partition PRIMARY assign ]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="diskutils.cpp:1011"><![LOG[Diskpart: select disk 0 clean convert gpt create partition PRIMARY assign rescan ]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="diskutils.cpp:2497"><![LOG[Executing diskpart script: select disk 0 clean convert gpt create partition PRIMARY assign rescan ]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="diskutils.cpp:1865"><![LOG[Command line for extension .exe is "%1" %*]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="commandline.cpp:228"><![LOG[Set command line: "X:\WINDOWS\system32\diskpart.exe" /s "X:\WINDOWS\TEMP\DiskPartScript.txt"]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="commandline.cpp:731"><![LOG[Executing command line: "X:\WINDOWS\system32\diskpart.exe" /s "X:\WINDOWS\TEMP\DiskPartScript.txt"]LOG]!><time="08:51:54.679+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="commandline.cpp:827"><![LOG[Process completed with exit code 0]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="commandline.cpp:1123"><![LOG[Formatting partitions]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="main.cpp:906"><![LOG[Partition: 1 PRIMARY]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="main.cpp:920"><![LOG[Adding logical drive: C:]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="diskutils.cpp:1537"><![LOG[Skipping non-local logical drive: X:]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="diskutils.cpp:1543"><![LOG[Formatting drive C: with NTFS filesystem, method quick]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="main.cpp:993"><![LOG[Creating instance of service loader]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:907"><![LOG[Loading service]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:912"><![LOG[Waiting for service to initialize]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:919"><![LOG[Querying for software providers]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:923"><![LOG[Found a VDS software provider]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:933"><![LOG[Querying for IVdsSwProvider]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:937"><![LOG[Querying for packs]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:942"><![LOG[Found a VDS pack]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:951"><![LOG[Querying for IVdsPack]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:955"><![LOG[Querying for volumes]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:960"><![LOG[Found a VDS software provider]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:933"><![LOG[Querying for IVdsSwProvider]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:937"><![LOG[Querying for packs]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:942"><![LOG[Found a VDS pack]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:951"><![LOG[Querying for IVdsPack]LOG]!><time="08:51:56.325+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:955"><![LOG[Querying for volumes]LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:960"><![LOG[Found a VDS volume]LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:969"><![LOG[Querying for IVdsVolumeMF]LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:973"><![LOG[Querying for access paths]LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:979"><![LOG[Found a volume with access path 'C:\']LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:991"><![LOG[Querying for IVdsVolume]LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:994"><![LOG[Querying for IVdsVolumeMF]LOG]!><time="08:51:56.340+300" date="06-03-2015" component="OSDDiskPart" context="" type="0" thread="536" file="diskvolume.cpp:1070"><![LOG[OSDDiskPart.exe completed successfully]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="OSDDiskPart" context="" type="1" thread="536" file="main.cpp:1309"><![LOG[Process completed with exit code 0]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="commandline.cpp:1123"><![LOG[Adding logical drive: C:]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="diskutils.cpp:1537"><![LOG[Skipping non-local logical drive: X:]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="diskutils.cpp:1543"><![LOG[Temporary volume C: created at disk 0 partition 1]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="bootimage.cpp:509"><![LOG[User did not specify local data drive]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="utils.cpp:1974"><![LOG[Volume C:\ has 127917412352 bytes of free space]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="utils.cpp:1118"><![LOG[Volume X:\ is not a fixed hard drive]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="utils.cpp:1077"><![LOG[TSM root drive = C:\]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="utils.cpp:1142"><![LOG[C:\_SMSTaskSequence does not exist]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="utils.cpp:1740"><![LOG[Creating directory C:\_SMSTaskSequence]LOG]!><time="08:51:58.344+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="utils.cpp:1783"><![LOG[Updated security on object C:\_SMSTaskSequence.]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="1" thread="640" file="utils.cpp:1704"><![LOG[!sBootDevicePath.empty(), HRESULT=80004005 (e:\qfe\nts\sms\framework\tscore\bootvolume.cpp,34)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="bootvolume.cpp:34"><![LOG[System partition not set]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="3" thread="640" file="bootvolume.cpp:34"><![LOG[Unable to find the partition that contains the OS boot loaders. Please ensure the hard disks have been properly partitioned Unspecified error (Error: 80004005; Source: Windows)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="3" thread="640" file="bootvolume.cpp:62"><![LOG[BootVolume::GetCurrent(pBootVolume), HRESULT=80004005 (e:\qfe\nts\sms\framework\tscore\bootimage.cpp,542)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="bootimage.cpp:542"><![LOG[ValidateSystemPartition(), HRESULT=80004005 (e:\qfe\nts\sms\framework\tscore\bootimage.cpp,972)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="bootimage.cpp:972"><![LOG[Failed to prepare the system partition for staging. Unspecified error (Error: 80004005; Source: Windows)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="3" thread="640" file="bootimage.cpp:972"><![LOG[BootImage::PrepareForStaging(sLocalDataPath), HRESULT=80004005 (e:\qfe\nts\sms\framework\tscore\bootimage.cpp,719)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="bootimage.cpp:719"><![LOG[TS::Boot::BootImage::StageBootImage( pAssociatedWinPE->GetPackageID(), TsBootProgress, pv, hCancelEvent), HRESULT=80004005 (e:\nts_sccm_release\sms\client\tasksequence\tsmbootstrap\tsmediawizardcontrol.cpp,2231)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="0" thread="640" file="tsmediawizardcontrol.cpp:2231"><![LOG[Failed to stage WinPE. Code(0x80004005)]LOG]!><time="08:51:58.350+300" date="06-03-2015" component="TSPxe" context="" type="3" thread="640" file="tsmediawizardcontrol.cpp:2231">