About the Post

Author Information

Windows 7/2008R2 does not load after adding the drive to another machine that also uses new BCD store

Symptom:

When you attach a system (boot) volume in Windows 7/2008 R2 to any other Windows 2008 R2 as another drive you will run into an issue where attach it back without modifying any files on the volume; it becomes non-bootable. It looks alright and it can be attached back to its original server, but that instance will not boot (console output never shows up and there is no access to RDP). If you look at the console you will see an error message like the following:

This is a severe problem which prevents anyone from accessing your C drive. This happens because Windows 2008 R2, via the BCD, sees both drives are bootable system drives and marks one of them as not bootable. (Which in most cases will be the attached drive) For each systems there will be 3 entries for {default} device partition, {default} osdevice and {bootmgr} device partition. Windows BCD will see both of these drives with these entries and then mark the attached drive as not being these {default} entries, which causes the drive alone to not be able to boot the Operating System.

Fix:

First, it is always recommended to make a backup of the existing BCD store:

bcdedit /store c:\boot\bcd >>C:\bcd.txt (Correct drive letter of attached drive)

For my testing, I used a Windows 2008 R2 instance in Amazon’s EC2, so the BCD store will reside on the Boot Partition which is 100MB in size. (FYI, 32 bit systems will not have this 100 MB partition) When fixing the bootloader, you’ll need to point to the BCD Store. The partition setting will be the drive where the location of the System Partition (where \Windows is located). The idea is we need to put the correct disk signature into the BCD store, so that Windows can boot properly. You’ll need to first run bcdedit and point it to your original drives store (assumes old boot volume is now on D drive and E drive is where OS files reside):

bcdedit /store /set osdevice partition=
bcdedit /store /set osdevice partition=
bcdedit /store /set {bootmgr} device partition=
bcdedit /store /set {memdiag} device partition=

For 32 bit systems, please use the following: (Assumes old system volume is now the F drive and we will mark the old volume to be active for the BCD store)

bootsect /nt60 F: /mbr
C:\windows\system32\bcdboot.exe F:\Windows /s F:
bcdedit /store F:\Boot\BCD /set {default} device partition=F:
bcdedit /store F:\Boot\BCD /set {default} osdevice partition=F:
bcdedit /store F:\Boot\BCD /set {bootmgr} device partition=F:

For 64 bit systems, which has 2 drives, please use the following: (assumes old root volume is on D drive for boot and E drive is actually Windows C):

bootsect /nt60 D: /mbr
C:\windows\system32\bcdboot.exe E:\Windows /s D:
bcdedit /store D:\Boot\BCD /set {default} device partition=E:
bcdedit /store D:\Boot\BCD /set {default} osdevice partition=E:
bcdedit /store D:\Boot\BCD /set {bootmgr} device partition=E:

References:

How to Modify the BCD Store Using bcdedit:
http://technet.microsoft.com/en-us/library/cc731245(WS.10).aspx

BCDEdit Command-Line Options
http://technet.microsoft.com/en-us/library/cc709667%28WS.10%29.aspx

How to use the Bootrec.exe tool in the Windows Recovery Environment to troubleshoot and repair startup issues in Windows
http://support.microsoft.com/kb/927392

Tags: , , , ,

Comments are closed.

Copy Protected by Chetans WP-Copyprotect.