WSL 2 无法运行 Ubuntu - 错误 0x80370102

Blu*_*Blu 26 windows-10 windows-subsystem-for-linux 20.04

今天,我决定从 WSL 1 升级到 WSL 2。在 WSL 1 上,让 Kali 或 Ubuntu 在 WSL 1 上运行都没有问题。升级到 WSL 2 时,Kali 和 Ubuntu 都无法升级到版本 2。我阅读卸载并重新安装它们可以解决此问题。但是,在重新安装它们时,尽管安装了发行版,但我的系统现在无法检测到任何已安装的发行版。启动 Kali 或 Ubuntu 都会出现相同的错误: Error 0x80370102 Screenshot

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 The virtual machine could not be started because a required feature is not installed.
Run Code Online (Sandbox Code Playgroud)

在研究此错误并阅读Microsoft官方 WSL 2 安装指南时,错误似乎总是因为系统没有在 BIOS 中启用虚拟化。这真的很令人困惑,因为如果我错过了 BIOS 中的任何虚拟化设置,我已经检查了 4 次以上,并且已验证它已全部启用。我还确认我也启用了 NX 功能。甚至 HWiNFO 也检测到我启用了虚拟化: HWiNFO 结果的屏幕截图

我还确保Virtual Machine PlatformWindows Subsystem for LinuxWindows Hypervisor Platform功能都已启用。不仅如此,我还可以从 VirtualBox 创建和运行任意数量的 VM,而不会出现任何错误或问题。

我经历的其他故障排除步骤是重置 WSL 服务,重置我的机器(多次),更新 WSL 内核,验证我的 Win 版本是 19041 或更高版本,并在启动后等待 20 分钟,看看我是否只是不耐烦.

以下是有关我的系统的一些信息:

  • 运行 Windows 10 ver 10.0.19041.388(也称为 SDK 版本 2004)
  • 锐龙 3900x CPU
  • 32GB DDR4 内存
  • 华硕 Tuf Gaming X570-Plus 主板带 BIOS 版本 1407

小智 34

首先,您需要确保在 BIOS 中启用了 CPU 虚拟化。 这些说明将取决于您的硬件。

对于 AMD CPU,您将寻找一项名为: “AMD(AMD 安全虚拟机,AMD SVM)”的功能

对于 Intel CPU,您将寻找一项名为: “Intel(Intel Virtualization Technology,Intel VT-x)”的功能

以下是在我的计算机上设置 SVM 的说明。注意:这是针对 MSI 主板。

  1. 进入高级设置。

  2. 进入超频部分。

  3. 进入 CPU 特性部分

  4. 切换启用 CPU 虚拟化的 CPU 功能“SVM 模式”

其次,您将必须启用 Hyper-V Windows 功能。

这是我的说明(注意可以单独使用duckduckgo/google):

  1. 在任务栏中搜索“Windows 功能”

  2. 然后寻找“Hyper-V”。然后启用它。

此时您应该完成并且不再出现此错误。

  • 我没有一个名为“Hyper-V”的功能,但我有一个名为“Windows Hypervisor Platform”的功能,其中提到了虚拟化。我启用了它,它对我有用。 (5认同)
  • 我遇到的问题是所有这些步骤都已经采取,并且我已经四重检查了每个设置是否已启用。我可以通过 Vbox 和 VMware 运行常规虚拟机,没有任何问题。只有 WSL 拒绝工作,说我没有启用 VM 功能。 (3认同)
  • 不幸的是这对我不起作用。我仍然无法在 Windows 10 上运行 Ubuntu 20.04。 (2认同)
  • 你是一个救星:) (2认同)

小智 23

我已经修复了这个问题,运行下面的代码并重新启动系统。

bcdedit /set hypervisorlaunchtype auto
Run Code Online (Sandbox Code Playgroud)

  • 欢迎来到 Ask Ubuntu,感谢您的回答!将来,一个更有用的答案会提到您如何知道这个命令(指向您找到它的文档),运行它的风险是什么,以及如何恢复(如果可能)。 (8认同)
  • 此问题已在装有 Windows 11 的 PC 上修复 (2认同)
  • 这解决了我在 Windows 11 中的问题。我检查了 WSL 要求的所有复选框 (2认同)

小智 10

在我之后它对我有用:

  • 禁用“虚拟机平台”功能
  • 重新启动Windows
  • 重新启用“虚拟机平台”功能
  • 再次重新启动 Windows

这是 2020 年 5 月发行说明中的​​内容:

我们注意到一个问题,即使用 DISM(部署映像服务和管理)工具修复运行 2020 年 5 月更新的系统上的损坏并不总是报告正确的状态。这将在即将发布的服务版本中修复。

看来 Dism 无法确定某个功能是否真正启用,因此您可能需要尝试多次才能正常工作。

在 GitHub 上找到了解决方案,这个答案中的一些信息是从那里获取的。找到解决方案对我来说是一个挑战,因此我在这里为可能遇到相同问题的其他人添加此信息。


小智 7

我也遇到了同样的错误,并且也启用了虚拟化。取消选中 Windows Subsystem for Linux、Windows Hypervisor Platform 和 Virtual Machine Platform 后,重新启动电脑并再次启用它们,错误消失了,我可以安装 WSL 2。


小智 1

您必须在 BIOS 中启用虚拟化。没有其他办法。我和MS顾问花了2个小时。我们做了一切,但最终没有成功。我后来在某个地方看到了 BIOS 设置建议。有用!虚拟化在那里被禁用。一旦启用 Ubuntu 就可以工作了。


小智 0

哦!我找到了。在“添加/删除功能”中,您有 Hyper-V 和有关虚拟化的其他内容。那个不见了。我只有这个函数的法文翻译。所以给你它可能不会有帮助。查找整个列表并仔细检查。实际上不需要hyper-v。Debian 已启动并运行。