Hypervisorlaunchtype not set after BCD changes – here is the fix

I recently received the new Hitachi Travelstar 500GB 7200rpm 2.5” hard drive.  I moved my virtual machine data to it and fixed the BCD entries so I could boot from the Windows Server 2008 R2 virtual hard disk file.  Unfortunately I always forget to add the parameter to the R2 entry so that the Hyper-V hypervisor will also start.

The fix is pretty simple.  You need to add Hypervisorlaunchtype key and value to the entry for Windows Server 2008 R2.  Here is the view of my BCD store (before and after) with the relevant change (bold red) below.  Make sure to run the cmd console elevated before working with the BCD store.  It’s also a good idea to backup the BCD store before making changes.

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Windows\system32>bcdedit

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
description Windows Boot Manager
locale en-us
inherit {globalsettings}
default {current}
resumeobject {79ec30c6-8799-11de-becd-c6b9ceffc482}
displayorder {79ec30c7-8799-11de-becd-c6b9ceffc482}
{79ec30c5-8799-11de-becd-c6b9ceffc482}
{current}
toolsdisplayorder {memdiag}
timeout 15

Windows Boot Loader
-------------------
identifier {79ec30c7-8799-11de-becd-c6b9ceffc482}
device vhd=[D:]\r2\WindowsR2.vhd
path \windows\system32\winload.exe
description Windows Server 2008 R2
locale en-us
inherit {bootloadersettings}
osdevice vhd=[D:]\r2\WindowsR2.vhd
systemroot \windows
resumeobject {79ec30c6-8799-11de-becd-c6b9ceffc482}
nx OptOut
detecthal Yes

Windows Boot Loader
-------------------
identifier {79ec30c5-8799-11de-becd-c6b9ceffc482}
device vhd=[D:]\wdt vm\wdt.vhd
path \windows\system32\winload.exe
description Windows 7 WDT
locale en-us
inherit {bootloadersettings}
osdevice vhd=[D:]\wdt vm\wdt.vhd
systemroot \windows
resumeobject {79ec30c4-8799-11de-becd-c6b9ceffc482}
nx OptIn
detecthal Yes

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7 Production
locale en-US
inherit {bootloadersettings}
recoveryenabled No
osdevice partition=C:
systemroot \Windows
resumeobject {79ec30bc-8799-11de-becd-c6b9ceffc482}
nx OptIn

C:\Windows\system32>bcdedit /set {79ec30c7-8799-11de-becd-c6b9ceffc482} hypervisorlaunchtype auto
The operation completed successfully.

C:\Windows\system32>bcdedit

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
description Windows Boot Manager
locale en-us
inherit {globalsettings}
default {current}
resumeobject {79ec30c6-8799-11de-becd-c6b9ceffc482}
displayorder {79ec30c7-8799-11de-becd-c6b9ceffc482}
{79ec30c5-8799-11de-becd-c6b9ceffc482}
{current}
toolsdisplayorder {memdiag}
timeout 15

Windows Boot Loader
-------------------
identifier {79ec30c7-8799-11de-becd-c6b9ceffc482}
device vhd=[D:]\r2\WindowsR2.vhd
path \windows\system32\winload.exe
description Windows Server 2008 R2
locale en-us
inherit {bootloadersettings}
osdevice vhd=[D:]\r2\WindowsR2.vhd
systemroot \windows
resumeobject {79ec30c6-8799-11de-becd-c6b9ceffc482}
nx OptOut
hypervisorlaunchtype Auto
detecthal Yes

Windows Boot Loader
-------------------
identifier {79ec30c5-8799-11de-becd-c6b9ceffc482}
device vhd=[D:]\wdt vm\wdt.vhd
path \windows\system32\winload.exe
description Windows 7 WDT
locale en-us
inherit {bootloadersettings}
osdevice vhd=[D:]\wdt vm\wdt.vhd
systemroot \windows
resumeobject {79ec30c4-8799-11de-becd-c6b9ceffc482}
nx OptIn
detecthal Yes

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7 Production
locale en-US
inherit {bootloadersettings}
recoveryenabled No
osdevice partition=C:
systemroot \Windows
resumeobject {79ec30bc-8799-11de-becd-c6b9ceffc482}
nx OptIn

C:\Windows\system32>