我做的第一件事是在 Windows 功能对话框中启用 WSL,然后从商店安装了 Ubuntu 20.04。在做其他事情之前,我找到了一篇文章WSL 内核也就是说我应该安装 Linux 内核的更新这里,这是一个 msi 安装程序 (wsl_update_x64.msi)。我注意到有迹象表明在安装 Ubuntu 之前应该启用虚拟机平台,但那时已经太晚了。然后我从开始菜单链接启动了 Unbuntu,弹出一个控制台窗口,其中显示以下错误:
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.
Press any key to continue...
微软文章适用于 Windows 10 的 Windows Linux 子系统安装指南对于错误(0x80370102)说的是:
Installation failed with error 0x80070003 or error 0x80370102
Please make sure that virtualization is enabled inside of your computer's BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.
但 Mac 没有 BIOS。那么,如何确保在 Bootcamp 上运行 Windows 10 (2004) 的 Macbook PRO 上启用虚拟化功能,而无需访问 BIOS 设置?
如果我卸载所有内容并禁用 WSL 和虚拟化,然后按正确的顺序重新执行此操作,这会缓解问题吗?还是我仍然需要更改我无法访问的 BIOS 设置。
答案1
这个问题的答案分为两部分。大多数 Mac 支持虚拟化,但你需要了解如何检查这一点。我在 stackoverflow 上发现了这个问题如何在 Macbook Pro 上启用 CPU 虚拟化支持?。从 macOS 终端,您需要运行此命令:
sysctl -a | grep machdep.cpu.features
这将返回类似以下内容的内容:
machdep.cpu.功能:FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX SMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
如果返回的字符串包含“VMX”,则支持虚拟化。
现在,您需要确保从 macOS 端启用了虚拟化。打开系统设置,然后转到启动磁盘。现在,仅查看当前设置可能会显示您的 Windows 分区已设置为启动磁盘。您需要明确进入并将其设置为 Windows,因此请解锁挂锁并单击您的 Windows 分区。这样做会激活其他设置,包括启用虚拟化。当我第一次遇到这个问题时,我已经可以看到我的 Windows 分区在选择为启动磁盘的磁盘列表中可见,我可能没有再想这件事,没有意识到您必须将其明确设置为 Windows。
完成此操作后,我重新启动 Windows,然后打开“程序和功能”(运行 appwiz.cpl),然后选择“打开或关闭 Windows 功能”,查看选项并确保“Hyper V”不是禁用的灰色选项。选择“Hyper V”,然后启用“适用于 Linux 的 Windows 子系统”。现在您应该能够继续使用 WSL2,而不会看到与未启用虚拟化有关的错误。
答案2
就我而言,在 BIOS 中启用虚拟化(启动计算机时按 F2 按钮)并在 Window Feature 中打开 windows 子系统 linux 后,仍然没有帮助,并出现错误 0x80370102。我再次重新打开 Window Feature,并检查虚拟机平台。然后错误被修复,ubuntu 在我的计算机的 wsl 环境中成功安装。 在此处输入图片描述