无法使用启用了 Hyper-V 和 WSL2 的 VirtualBox 启动 Windows 10 个来宾

Unable to boot Windows 10 guest using VirtualBox with enabled Hyper-V and WSL2 installed

我最近将 Windows 10 版本更新为 2004 版本。我也将 WSL 更新为 WSL2。

我在尝试通过 VirtualBox 6.1.8 使用虚拟机 (Windows 10 Host/Windows 10 Guest) 时遇到问题。每次我尝试启动它时,它变得非常慢并且无法通过启动加载屏幕。

我认为 VB 的最新版本解决了这个问题(根据 this documentation from Microsoft)。

我该怎么做才能解决这个问题?

如果您想避免几天的无用功,请降级到 WSL1。

我已经升级到 WSL2 并尝试让 VirtualBox 使用它,但我找不到任何有用的东西。很少有指南建议关闭 VirtualBox 的某些功能可以使它工作,但是它会使它比现在更慢,这确实违背了目的。

https://github.com/MicrosoftDocs/WSL/issues/536

https://superuser.com/q/1531337

您必须激活“Windows Hypervisor Platform”。

为此,请在“开始”菜单中搜索“windows 资源”。打开搜索结果中的“Activate/Deactivate Windows资源”

Select 列表中的选项“Windows Hypervisor Platform”,然后单击“确定”。这是微软公开的一个API使第三方虚拟化提供者与Hyper-V兼容,被WSL2使用

那是因为主机上一次只能有一个管理程序 运行。因此,WSL2 使用的 Microsoft Hyper-V 管理程序阻止 VirtualBox 使用处理器虚拟化扩展。

请参阅下面的常见问题解答:

https://docs.microsoft.com/en-us/windows/wsl/wsl2-faq#will-i-be-able-to-run-wsl-2-and-other-3rd-party-virtualization-tools-such-as-vmware-or-virtualbox

自从 VirtualBox 6.0 添加了对 Hyper-V 的支持,但它仍处于试验阶段,这解释了糟糕的性能 (https://docs.oracle.com/en/virtualization/virtualbox/6.0/admin/hyperv-support.html)。

我能够通过在 Windows 功能中禁用 WSL2 来解决这个问题。 如果您进入 Control Panel > All Control Panel Items > Programs and Features > Windows Features,您会找到一个列表,您可以在其中禁用或启用某些 Windows 功能。

可能 Hyper-V 已在功能中被禁用,您可能想知道为什么 VirtualBox 仍然无法正常工作。这是因为 WSL2 在后台使用了 Hyper-V,即使它没有为您的自定义使用启用。

要使您的 VirtualBox 再次可用,您还必须取消选中 Virtual Machine PlatformWindows Subsystem for Linux 功能,然后重新启动您的 PC 才能生效。

显然,这将使您的 PC 无法使用 WSL2,但您可以随时重新激活这些功能以再次使用 WSL2。如果您不被迫同时使用 VirtualBox 和 WSL2,那么这就像一个魅力。