Skip to content

[Bug]:Windows 10 guest fails to boot with error 0xc0000001 when Microsoft Hyper-V is enabled inside the guest #790

Description

@ejgutierrez74

A Windows 10 Pro 22H2 guest fails to boot normally when the Microsoft Hyper-V hypervisor is enabled inside the guest.

Host configuration

  • Host OS: Ubuntu 26.04
  • Host CPU: Intel Core i5-14600K
  • Host architecture: x86_64
  • Intel VT-x enabled
  • Nested Paging enabled

Guest configuration

  • Guest OS: Windows 10 Pro 22H2, Build 19045
  • Guest architecture: x86_64
  • 16 GB RAM
  • 8 virtual CPUs
  • UEFI enabled
  • Secure Boot enabled
  • Virtual TPM 2.0 enabled
  • Graphics controller: VBoxSVGA
  • 3D acceleration disabled
  • VirtualBox paravirtualization provider: Hyper-V
  • VirtualBox Guest Additions installed

Actual behavior

When the Microsoft Hyper-V hypervisor is allowed to start inside the Windows guest, the guest fails during a normal boot and enters Windows Recovery with:

Your PC couldn't start properly
Error code: 0xc0000001

The guest can still boot successfully using:

Safe Mode
Safe Mode with Networking

The following Windows startup options do not solve the problem and produce the same 0xc0000001 error:

Enable low-resolution video
Disable driver signature enforcement
Disable early-launch anti-malware protection

Windows Startup Repair did not identify a specific cause.

Disk, filesystem, Windows registry and Windows boot configuration checks did not identify any corruption.
I also tested the following without resolving the normal boot failure:

Disabled 3D acceleration
Used VBoxSVGA
Changed video memory
Removed and reinstalled VirtualBox Guest Additions
Removed the VirtualBox WDDM display driver
Disabled or removed VBoxGuest, VBoxMouse and VBoxSF
Used Microsoft Basic Display Adapter
Performed a Windows clean boot
Ran DISM and SFC
Disabled unnecessary USB devices and USB filters

The Windows boot log showed Microsoft Hyper-V-related drivers being loaded, including:

vmbus.sys
winhv.sys
vpci.sys
hvsocket.sys
Workaround

The problem was immediately resolved by booting Windows in Safe Mode and running:

bcdedit /set {current} hypervisorlaunchtype off
After a complete shutdown and cold start, Windows booted normally.

The resulting BCD configuration contains:

hypervisorlaunchtype Off

The VirtualBox paravirtualization provider can remain set to Hyper-V. That setting by itself does not cause the boot failure.

The important distinction appears to be:

VirtualBox paravirtualization provider: Hyper-V

works correctly, while:

Microsoft Hyper-V hypervisor running inside the Windows guest

causes the guest to fail during boot.

Changing the guest BCD setting from:

hypervisorlaunchtype Auto

to:

hypervisorlaunchtype Off

restores normal boot.

Expected behavior

The Windows guest should boot normally when Microsoft Hyper-V is enabled inside it, provided that nested virtualization is supported by the current host and VirtualBox configuration.

If nested Hyper-V is not supported in this configuration, VirtualBox should ideally provide a clear compatibility or configuration error instead of the guest failing with the generic Windows Recovery error 0xc0000001.

How can we reproduce this?

  1. Create or use a Windows 10 Pro 22H2 x64 VirtualBox guest.

  2. Configure the VM with:

    • EFI enabled
    • Secure Boot enabled
    • Virtual TPM 2.0 enabled
    • 8 virtual CPUs
    • 16 GB RAM
    • VBoxSVGA graphics controller
    • 3D acceleration disabled
    • Nested Paging enabled
    • VirtualBox paravirtualization provider set to Hyper-V
  3. Install the matching VirtualBox Guest Additions.

  4. Inside the Windows guest, enable Microsoft Hyper-V or another Windows feature that causes the Microsoft hypervisor to start.

  5. Confirm or configure the boot setting with an elevated Command Prompt:

bcdedit /set {current} hypervisorlaunchtype auto
Completely shut down the Windows guest.
Start the VM again.

In my environment, Windows fails during normal boot and enters Windows Recovery with:
Error code: 0xc0000001
Boot the guest into Safe Mode.
In an elevated Command Prompt, run:
bcdedit /set {current} hypervisorlaunchtype off
Completely shut down the guest.
Start the VM again.
Windows now boots normally.

The VirtualBox paravirtualization provider remains set to Hyper-V during the whole test.

Additional questions

Could you please clarify the following?

  1. Is nested Microsoft Hyper-V inside a Windows 10 guest expected to work with VirtualBox on a Linux host?

  2. Is there a known issue where starting the Microsoft hypervisor inside the guest causes an early boot failure with 0xc0000001?

  3. Are there any additional VirtualBox logging or debugging options that could identify the exact point where the nested hypervisor fails?
    Archivos que conviene adjuntar

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions