loading...

Switch Off Hyper-V on Boot in Windows

deadlybyte profile image Carl Saunders ・2 min read

As you may or may not know Hyper-V on Windows hijacks the Hypervisor and you can't have two Hypervisors running at the same.

We could use Window's Add/Remove features to turn the Hyper-V support off and back on, but that's a lot of hassle.

Luckily we can update the boot entry, which can be configured to switch off the hypervisor (at launch). But instead of updating the existing boot entry, we can go one better and create another boot entry. This will then trigger a prompt for the boot option at startup.

bcdedit /copy {current} /d "No Hyper V"
cmd syntax
Make sure you run the commands as Administrator, otherwise you'll get the "Access is denied" error.

Or run the following if using PowerShell.

bcdedit --% /copy {current} /d "No Hyper V"
PowerShell syntax

Once the boot entry has been successfully copied the GUID will be displayed in the output. You'll need to copy this ID and use it in the next command. E.g.

C:\>bcdedit --% /copy {current} /d "No Hyper V"
The entry was successfully copied to {a10f071b-5711-4d5d-b7a9-9b0a4957d6fb}.

Next step is to set the hypervisorlaunchtype to the value off.

bcdedit /set {a10f071b-5711-4d5d-b7a9-9b0a4957d6fb} hypervisorlaunchtype off
cmd syntax
Remember to replace the GUID with the id returned from the copy command.

Or run the following if using PowerShell.

bcdedit --% /set {a10f071b-5711-4d5d-b7a9-9b0a4957d6fb} hypervisorlaunchtype off
PowerShell syntax

Restart your machine and you should now be prompted to select your operating system. Either:

  • Windows 10
  • No Hyper V

Select No Hyper V and you can now be sure that the Hypervisor is no longer hijacked by Hyper-V.

Posted on by:

deadlybyte profile

Carl Saunders

@deadlybyte

I'm a full stack software developer specialising in React. With 20+ years’ experience, I'm passionate about following best practices and standards.

Discussion

markdown guide
 

If you quote your arguments, you don't need the stop-parser symbol (--%), e.g., '{guid}' since {} represents a scriptblock ordinarily.