启用“虚拟机平台”功能后,VirtualBox VM 无法启动

αғs*_*нιη 5 virtualbox windows-10-v1909 wsl2

我无法在 VirtualBox 中启动任何虚拟机并收到此错误:

如果没有嵌套分页和不受限制的来宾执行,则无法启用嵌套 VT-x/AMD-V!(VERR_CPUM_INVALID_HWVIRT_CONFIG)。

我重新安装了最新的 VirtualBox,但仍然存在相同的问题。

需要注意的是,最近我按照这个官方文档做了WSL2的安装,所以我认为问题应该与这个安装有关,并决定回滚一些步骤(而不是卸载WSL2本身)来验证;

毕竟我发现“Step3: Enable Virtual MachinePlatform feature”导致了这个问题:

在安装 WSL 2 之前,您必须启用虚拟机平台 可选功能。

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Run Code Online (Sandbox Code Playgroud)

重新启动机器以完成 WSL 安装并更新到 WSL 2。

所以我删除了这个功能,VM 启动问题解决了,但在那之后 WSL2 现在没有启动。

现在我被困在这里该怎么做,我需要 WSL 和 VM 都可以工作,而他们对禁用或启用这两个功能的功能不满意。


操作系统:Windows-10 1909(内部版本 18363.1139)

αғs*_*нιη 7

2021-10-05 更新:现在 WSL2 和虚拟机在 VirtualBox v6.1.26 r145957 (Qt5.6.2)/操作系统:Windows10 v20H2 b19042 上都可以正常工作

注意2021-11-22:如果您决定升级VirtualBox,请注意它在v6.1.28中不起作用并且需要安装Windows11。


发现WSL2使用Hyper-V技术进行Linux虚拟化,并且启用“虚拟机平台”的WSL2启用了Hyper-V,因此与VirtualBox等二级管理程序发生冲突,无法成功启动虚拟机。

通过在(以管理员身份运行)中运行此命令,cmd您可以获得当前值:

bcdedit.exe /enum {current} | find "hypervisorlaunchtype"
Run Code Online (Sandbox Code Playgroud)

要禁用它,请删除 Windows 可选功能中的“虚拟机平台”,或运行以下命令:

dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /all /norestart
Run Code Online (Sandbox Code Playgroud)

或用此禁用 Hyper-V:

bcdedit.exe /set hypervisorlaunchtype off
Run Code Online (Sandbox Code Playgroud)

注意:当前无法在启用 Hyper-V 时让 VirtualBox 和 WSL2 同时工作,因此禁用 Hyper-V 将无法打开 WSL2。