SCCM 2012 OSD variable OSDDiskpartBiosCompatibilityMode not working, causes 0x000000ED BSOD

I ran into this issue with a Windows XP image being applied using SCCM 2012. After the minisetup the machine crashed with the following BSOD (0x000000ED, UNMOUNTABLE_BOOT_VOLUME):

bsod

I vaguely remembered this BSOD from the past, before we had this variable in place. So what is this variable about anyway?

Prior to Vista, the default alignment for partitions was cylinder alignment for MBR disks and sector alignment for GPT disks. With Vista (and Windows PE 2.0), the default partition alignment was changed to 1 MB. This can result in a 2x performance enhancement, since disk sectors are aligned with the cache line size. Unfortunately, this may cause some systems to blue screen if the disk was partitioned in Windows PE 2.0 and pre-Vista operating system is installed to it. The text-mode portion of Setup will complete successfully, but the system will blue screen when it reboots into GUI-mode Setup. You may also see a blue screen after deploying an image of a sysprepped pre-Vista operating system. See KB articles 931760 and 931761 for more information. The variable helps you to apply the changes as described in KB articles 931760 and 931761 prior to partitioning the disk.

On my machine I checked the alignment settings in the registry during the partitioning of my disk, and this is what I found:

2013-01-30 10.29.15

Aha! The proper registry settings are not set. It seems the OSDDiskpartBiosCompatibilityMode variable is no longer taken into account.

Workaround
I managed to work around this issue using the following steps:

1) Right before the “Format and Partition Disk” step in your task sequence add four “Run command line” steps.
2) Give each of the steps an unique name.
3) Add the following 4 REG ADD commands to either one of the “Run command line” steps:

REG ADD HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\VDS\ALIGNMENT /v LessThan4GB /t REG_DWORD /d 00000000 /f
REG ADD HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\VDS\ALIGNMENT /v Between4_8GB /t REG_DWORD /d 00000000 /f
REG ADD HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\VDS\ALIGNMENT /v Between8_32GB /t REG_DWORD /d 00000000 /f
REG ADD HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\VDS\ALIGNMENT /v GreaterThan32GB /t REG_DWORD /d 00000000 /f

4) Verify that the correct registry settings are set during the partition step.

I am not sure whether this is a SCCM 2012 or SCCM 2012 SP1 issue. We did a site by site migration from SCCM 2007 to SCCM 2012 SP1, so I don’t have the opportunity to test SCCM 2012 without SP. Any feedback on this is appreciated.

You can leave a response, or trackback from your own site.

Leave a Reply