Wednesday, January 25, 2012

Advanced Format Hard Drives and OS Deployment with Microsoft Deployment Toolkit or SCCM

After about a week, I finally figured out how to resolve a problem that we were experiencing with the Dell Latitude E6420 laptops when trying to re-image them with a custom Windows XP image in our MDT environment. The WIM image deploys normally to the computer and Windows XP mini-setup finishes on its own just fine. When Windows reboots after mini-setup completes, the Windows XP splash screen appears for a moment then displays the BSOD error 0x7B, “UNMOUNTABLE_BOOT_VOLUME”.

The problem is due to the type of hard drives that Dell is now purchasing – Advanced Format Hard Disk Drives (AFHDD) – as well as how the legacy Windows XP sysprep.inf and unattend.txt files are processed by XP mini-setup. While we have not seen any problems with any other computer models at this time, it is expected that Dell will start using these new AFHDD drives exclusively from now on in all of their products. Fortunately, there is a permanent fix for this Windows XP issue.

If using MDT\SCCM:
Before executing your Sysprep and Capture task sequence on a Windows XP reference computer make sure that the variable “ExtendOEMPartition” under the [Unattend] section of Unattend.txt or Sysprep.inf IS NOT present whatsoever. Simply delete the entries and recapture a new image. Information on how to do this in your MDT environment as well as technical information about this solution is below.

If using Symantec Ghost  -
Ghost does not formally support AFHDDs. But there is a switch, “-align=1mb”, that appears to properly align partitions on an AFHDD. I have not personally tested this switch and I do not know if an image has to be rebuilt to include this fix…
With Ghost, make sure that you DO INCLUDE the ExtendOEMPartition variable in Sysprep when building a new image. If ExtendOEMParition is deleted from Sysprep there will be issues with partition creation. The Ghost pre-installation environment doesn’t extend partitions – Windows does this during mini-setup only if told to do so in sysprep via the ExtendOEMPartition variable. Examples of some of the problems that you may experience are below. Lets say that you omitted the ExtendOEMPartition variable from sysprep and are capturing an image using Ghost…..

  • If you create an image with Ghost on a reference computer with a 40 GB hard drive, and deploy that image to a new computer with a 250GB drive, only a 40GB partition will exist and will not be automatically extended during mini-setup.
  • If you create an image with Ghost on a reference computer with a 200GB hard drive, and deploy that image to a new computer with a 40GB hard drive, imaging will fail. You must have a 200GB hard drive or larger.

Deployment information about AFHDDs is located here: http://en.community.dell.com/techcenter/enterprise-client/f/4448/t/19415326.aspx

Detailed information about AFHDDs and MDT:
Dell Latitude E6420s originally came with Western Digital hard drives. Dell is now using Seagate drives. These new Seagate drives are the Advanced Format Hard Disk Drives that Dell has been warning their customers about starting in December 2011. Advanced format drives use 4k sectors instead of the traditional 512 byte sectors. When you deploy an operating system to an AFHDD, you must align partitions to the new advanced 4k sectors rather than the traditional 512 byte sectors. Windows 7 with SP1 does this automatically on your behalf during OS installation\deployment, Windows 7 RTM and Windows XP does not. If you do not format an Advanced Format disk aligned on the 4k sectors, then you start to experience drive errors, performance issues, and possibly data loss.

In order to deploy a Windows XP image using MDT to a computer with an AFHDD you must build a new image and manually customize the sysprep and unattend files in your Sysprep and Capture task sequence, omitting the variable “ExtendOEMPartition”. ExtendOEMPartition is not needed because MDT task sequences automatically handle formatting drives and extending partitions inside of WinPE during OS deployment.

How to remove the ExtendOEMPartition variable for Windows XP Sysprep and Capture Task Sequences:
  1. Create a new Sysprep and Capture task sequence. Right click the TS in the Deployment Workbench and choose properties. **If you already have a sysprep and capture TS, you do not need to create a new one. Just open the properties of your current TS.
  2. Click the OS Info tab.Click the “Edit Sysprep.inf” button to open the Sysprep.inf file.
  3. Delete the “ExtendOEMPartition” variable under the [Unattended] section. Close and save the file.
    clip_image002
  4. Click the “Edit Unattend.txt” button to open the Unattended.txt file.
  5. Delete the “ExtendOEMPartition” variable under the [Unattended] section (remove the entire line including the comment). Close and save the file.clip_image004
  6. Run the TS on your reference computer and capture your image.
-Joe