Windows 7 Bootfix

Microsoft has changed the way Windows is booted starting with Windows Vista, leading into troubles when cloning installed Windows Vista++ systems to another harddisk. You will get an ugly "STOP: 0xC000000E" error when trying to boot from the destination disk.

But fixing this is rather easy once you know what to do:

  • Boot from Windows Vista++ install media.
  • Open a command prompt with Shift-F10 or choose "Computer Repair Options" and the "Command Prompt".
  • Enter "bcdedit".
  • There will be output similar to this:

    Windows Boot Loader
    identifier {default}
    device unknown
    path \Windows\system32\winload.exe
    description Windows 7
    locale en-US
    inherit {bootloadersettings}
    recoverysequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
    recoveryenabled Yes
    osdevice unknown
    systemroot \Windows
    resumeobject {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
    nx OptOut
    hypervisorlaunchtype Auto

    The problem is mainly burried in the two cited lines. To fix it enter these commands:

    bcdedit /set {default} device partition=X:
    bcdedit /set {default} osdevice partition=X:

    Replace X: with the drive letter which contains your OS, showing up in the WinPE that you booted from the install media. If your boot manager contains more than one entry you might need to change "{default}" to your entry's identifier.

    Finally chck the changes running another bcdedit and reboot. Voila!

    If bcdedit refuses to work try these commands:

    bootrec /FixMBR
    bootrec /FixBoot
    bootrec /rebuildbcd

    If still failing:

    bcdedit /createstore X:\BOOT\BCD (X: = letter of boot drive as seen in install environment)
    bcdboot X:\Windows /s X: (X: = letter of system drive as seen in install environment)
    bootrec /rebuildbcd