Logic Bug in MDT 2010 LTIApply Script

During the demo preparation for the Windows 7 launch events I found a bug in the LTIApply script in MDT 2010.  That script is responsible for downloading a Windows PE image during an upgrade deployment and using BCDEDIT to configure the PC to boot from it instead of the onboard OS. 

My upgrade tests on XP were fine.  But when I upgraded from Vista Ultimate I got this: “The Apply PE step (ZTIAPPLY) is failing with a hex error of 0x80070070”.  I thought over it for a weekend.  I suspected an issue with the hidden 100MB partition that you get with Vista and Windows 7.  I posted on the Minasi Forum and Rhonda Layfield (deployment MVP) emailed me with a suggestion.  That sort of error code usually refers to a space availability issue.  Ah!

I dug into the script in question.  I found the issue.  The script determines if the 100MB partition is present or not.  If it is, it downloads the WinPE image into the 100MB partition.  That’s a problem: My unmodified MDT WinPE image with just a handful of drivers was 140MB.  140MB does not fit into 100MB.  There’s a destination location variable in the script that I hacked out and replaced with C:.  My solution was to download the WinPE image to C: instead of the 100MB hidden partition.  I tested it and it works.

I have no idea how this one got past MS and the beta testers.  Maybe they did just like what I did: tested with XP upgrades.  I know that the original Vista build I was given to work with had no 100MB partition and the upgrade worked fine.  But a later Vista Ultimate SP2 image with the 100MB partition messed it up.  Only my hack got it to work.

My suggestion to the MS folks: Make a simple change to the logic of the script so the download does not use the 100MB partition.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.