Installing a 32 bit OS on an EFI system using MDT 2012

A couple of months ago I blogged the method I am using to deploy VHD images side by side with a host OS via MDT 2012.  I have been fighting a battle with EFI based systems, namely HP 8200 Elite SFF, and thought I’d share my findings if for nothing other than my own future reference.

The deployment of my 32 bit VHD has been running fine on every other machine we have.  When it came time to test it in the lab that it will mainly be used in, I ran into some troubles.  After some digging around, I discovered that  32 bit Operating Systems cannot be installed on a GPT partitioned disk.  I noticed from within the Disk Management console, that every HP 8200 Elite that had been built using MDT had a GPT partition type, despite the TS explicitly selecting MBR.  This is because MDT 2012 is ‘smart enough’ to detect EFI systems and will automatically ignore any settings in the Format & Partition stage, and partition the disk as GPT.

This was very irratating.  I had a 64 bit host OS and a VHD that HAD to be 32 bit.  I could copy the VHD across without problem.  I could even add it to the BCDStore OK, but when I tried to boot from it, it would launch Windows RE.  This is due to the relocation of the BCDStore under EFI systems. It is no longer contained in the 100MB System Partition, but on NVRAM on the MotherBoard.

To try and over come this issue I tried several approaches.  Firstly I disable the Format step in the TS and edited the Unattend.xml, instructing it to format and partition the disk at this stage.  That failed as by the time the Unattend.xml file has been called, the TS has already begun saving things to the local disk, thus formatting the disk would break the deployment.

Next I wrote a diskpart script to format the disk, create the system reserved and the Windows partition, but this would lead me to more errors.

Finally, I decided to have one last search through the BIOS menu to find some hint of EFI that I could disable.  The only place where EFI is mentioned in the BIOS is within the Boot Order selection sub menu.  From this menu, I disabled EFI devices as boot options.  From within the TS, I re-enabled the Format and Partition step and tried to run the deployment again.  This time, with more success.

In the end, a fairly simple fix.  It’s funny how sometimes you can get carried away with elaborate patches and scripts upon scripts, when actually the fix is a simple one step process.  My finishing thought:  Having trouble installing a 32 bit OS via MDT 2012 to an EFI system, namely HP 8200 Elite?  Disable EFI devices from the boot menu!