当我打开或关闭 Windows 功能中的 Windows Subsystem for Linux 选项时,每次运行 VM 时 VirtualBox 都会输出以下错误:
Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).
Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
有没有办法在不关闭 WSL 的情况下修复 VirtualBox 错误?
找到了!经过大量研究和反复试验,这使我能够在安装了适用于 Linux 的 Windows 子系统的 Windows 10 上的 VirtualBox 中运行虚拟机:
在提升的(管理员)
cmd.exe
或 PowerShell 中,执行:
bcdedit /set hypervisorlaunchtype off
并确保在 Windows 功能中禁用 Hyper-V 和 Windows 沙盒(您可以通过在命令提示符下或通过控制面板输入
OptionalFeatures.exe
来访问)。
此外,应该在 BIOS 中启用虚拟化选项,我认为(我现在没有时间测试)应该启用“虚拟机平台”和“Windows 管理程序平台”。
VirtualBox 6.0.14,Windows 版本 10.0.18362.356.
可以在 Windows 10 和 Windows 11 上同时运行 VirtualBox 和 WSL2!请注意,当两者并行运行时,VirtualBox 只能以其较慢的软件虚拟化模式运行。
要设置两个系统,请确保在您的 BIOS 中启用了虚拟化选项!
通过命令行安装 WSL 应该会自动开启以下 Windows 功能:
WSL 在底层使用 Hyper-V 架构,但不需要启用实际的 Hyper-V 功能。换句话说:WSL 使用 Hyper-V 架构而不是 Hyper-V 功能(感谢@Cito)。
您可以通过以下方式查找和编辑 Windows 功能:
OptionalFeatures.exe
如果您运行的是 Windows Home,您的机器上可能没有安装某些功能。要手动添加这些虚拟化功能,请遵循本教程。
如果您已经安装了 WSL 并对 Windows 功能进行了更改,则 WSL 可能已经停止工作。特别是当 WSL 是通过其中一种旧方法安装时(不是通过
wsl --install
命令行)。要修复 WSL 安装,您可以执行以下操作:
wsl --install
如果您在来宾窗口的状态栏中看到这个绿海龟符号,则VirtualBox正在以软件虚拟化模式运行(这真的很慢!)。 硬件虚拟化模式会显示这个蓝色符号。
在软件模式下运行时,原因很可能是活动的 WSL 设置,它依赖于 Hyper-V 架构。另一个原因可能是要打开的 Hyper-V 功能。要返回硬件虚拟化模式,请确保关闭以下功能:
并且
hypervisorlaunchtype
在 Windows Boot Configuration Data(BCD) 存储中设置为
off
。为此,请从提升的命令行运行以下命令:
bcdedit /set hypervisorlaunchtype off
更改BCD后,需要重启。
更多信息:
2019 年 11 月,我将我的 Windows 10 family 升级到版本 1909(运行 winver 检查)。我想使用 WSL2.
然后我无法在 Oracle Virtualbox 中运行虚拟机:
调用 WHvSetupPartition 失败:ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).
我必须在“打开或关闭 Windows 功能”中检查“Plateforme Hyper-V” 一切顺利。