如何让 VirtualBox 6.0 和 WSL 同时工作[关闭]

问题描述 投票:0回答:3

当我打开或关闭 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 错误?

windows virtual-machine virtualbox windows-subsystem-for-linux hyper-v
3个回答
38
投票

找到了!经过大量研究和反复试验,这使我能够在安装了适用于 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.


17
投票

VirtualBox + WSL2(在 Windows 10 和 11 上)🎉

可以在 Windows 10 和 Windows 11 上同时运行 VirtualBox 和 WSL2!请注意,当两者并行运行时,VirtualBox 只能以其较慢的软件虚拟化模式运行。

要设置两个系统,请确保在您的 BIOS 中启用了虚拟化选项!

  • Virtual Box - 在您的机器上安装最新版本(官方下载
  • WSL2 - 只需在提升的 PowerShell 或 CMD 中运行命令
    wsl --install
    官方文档

故障排除

必要的 Windows 功能?

通过命令行安装 WSL 应该会自动开启以下 Windows 功能:

  • 虚拟机平台
  • 适用于 Linux 的 Windows 子系统

WSL 在底层使用 Hyper-V 架构,但不需要启用实际的 Hyper-V 功能。换句话说:WSL 使用 Hyper-V 架构而不是 Hyper-V 功能(感谢@Cito)。

启用/禁用 Windows 功能

您可以通过以下方式查找和编辑 Windows 功能:

  • 打开 控制面板 > 程序 > 打开或关闭 Windows 功能,或者
  • 在 CMD 或 PowerShell 终端中输入
    OptionalFeatures.exe

使用 Windows 主页?

如果您运行的是 Windows Home,您的机器上可能没有安装某些功能。要手动添加这些虚拟化功能,请遵循本教程

WSL 停止工作了?

如果您已经安装了 WSL 并对 Windows 功能进行了更改,则 WSL 可能已经停止工作。特别是当 WSL 是通过其中一种旧方法安装时(不是通过

wsl --install
命令行)。要修复 WSL 安装,您可以执行以下操作:

  1. 从您的系统中完全卸载并删除 WSL(如果需要,请备份您的文件!)
  2. 停用所有虚拟化功能
  3. 重启机器
  4. 通过命令行全新安装 WSL
    wsl --install
  5. 再次重启机器

缓慢的 VirtualBox 虚拟机?

如果您在来宾窗口的状态栏中看到这个绿海龟符号,则VirtualBox正在以软件虚拟化模式运行(这真的很慢!)。 硬件虚拟化模式会显示这个蓝色符号

在软件模式下运行时,原因很可能是活动的 WSL 设置,它依赖于 Hyper-V 架构。另一个原因可能是要打开的 Hyper-V 功能。要返回硬件虚拟化模式,请确保关闭以下功能:

  • 超级 V
  • Windows 管理程序平台

并且

hypervisorlaunchtype
在 Windows
Boot Configuration Data
(BCD) 存储中设置为 off。为此,请从提升的命令行运行以下命令:

bcdedit /set hypervisorlaunchtype off

更改BCD后,需要重启。


更多信息

更多信息:


0
投票

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” 一切顺利。

© www.soinside.com 2019 - 2024. All rights reserved.