我尝试使用 WSL 在 Windows 11 电脑(内部版本 22621.963)上安装 Ubuntu,但收到以下错误:
Ubuntu 是从 Microsoft Store 安装的。
Windows功能:
- 虚拟机平台已开启
- Windows 虚拟机管理程序平台已关闭
- 适用于 Linux 的 Windows 子系统已启用
UEFI BIOS 设置:
- 虚拟化技术 - 已启用
- 超线程-已启用
我想知道这是否是 Windows 11 的问题?我的 WSL 在 Windows 10 机器上运行良好。
我尝试卸载 Ubuntu 并在 CMD 中运行:
wsl --install Ubuntu-20.14
几分钟后我收到此错误:
WslRegisterDistribution failed with error: 0x80370114
Error: 0x80370114 The operation could not be started because a required feature is not installed.
回复 NotTheDr01ds 的更多信息...在我查看您的建议时添加了一些评论,谢谢……
是的,WSL 和 Windows 虚拟机已启用。是的,任务管理器中显示虚拟化已启用。在管理员 powershell 中:PS C:\WINDOWS\system32> Get-ComputerInfo -property "HyperV*"
HyperVisorPresent:True HyperVRequirementDataExecutionPreventionAvailable:HyperVRequirementSecondLevelAddressTranslation:HyperVRequirementVirtualizationFirmwareEnabled:HyperVRequirementVMMonitorModeExtensions:
问题 - 是否需要 Windows Hypervisor Platform?我尝试过打开和关闭,但没有帮助。此外,我在其他帮助资源中看到启用 Hyper-V 的方法,但这并未显示在我电脑的 Windows 功能中。我还读到了一些关于 Win 11 Home 中未提供虚拟机管理程序的信息 - 我对此真的很困惑。
查看“设置”->“Windows 安全”->“应用和浏览器控制”->“程序设置”->“vmcompute”... 没有“代码流保护”选项。我有“控制流保护”。我将其更改为勾选“覆盖系统设置” - 按钮应该处于开启还是关闭状态???
现在要重新启动...
重启后:
没有变化,无法启动 Ubuntu。
===== 检查 services.msc 并将所有 Hyper-V 服务列为关闭。在管理 Powershell 中输入“net start vmcompute”并再次检查服务,现在 HV Host Service 和 Hyper-V Host Compete 服务正在运行,其他服务处于关闭状态(我还不知道这与此的相关性)。
但 Ubuntu 无法启动,没有任何变化。接下来将尝试重新安装 wsl 和 Ubuntu。功能中包括禁用 WSL。
===
从应用商店重新安装 Ubuntu 并在 Windows 功能中启用 wsl。需要 WSL 2 内核更新,https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---下载-linux-kernel-update-package
===
快到目的地了!
wsl -l -v Windows Subsystem for Linux 没有安装发行版。可以通过访问 Microsoft Store 来安装发行版: https://aka.ms/wslstore
从应用商店打开 Ubuntu,然后打开一个命令窗口,开始安装,结果为:正在安装,这可能需要几分钟...请创建一个默认的 UNIX 用户帐户。用户名不需要与您的 Windows 用户名匹配。有关更多信息,请访问:https://aka.ms/wslusers 输入新的 UNIX 用户名:
解决了
教训?我不太确定。删除所有内容并重新开始。在开始安装之前,请确保在 bios、windows 功能和 services.msc 中启用了 hyper-V。确保安装了 WSL2 更新。
答案1
一些建议:
首先,仔细检查重启后 WSL 和虚拟机平台是否仍然启用。
如果是,则报告称该错误的一个常见原因是 Windows 中的设置不正确漏洞保护。 看这里,这里, 和这里。
报到Windows 安全->应用程序和浏览器控制->漏洞保护设置:
在系统设置,控制流保护 (CFG)应该是“开”(在我的情况下,它是“使用默认(开)”。
在程序设置,应该有以下条目:
C:\Windows\System32\vmcompute.exe
C:\Windows\System32\vmwp.exe
双方都应该控制流防护设置:
- 覆盖系统设置
- 在
- 使用严格 CFG
有报道称,将这些离开解决了问题,但这可能更像是一个“补丁”,而不是真正的解决方案。
希望这可以解决0x80370114
错误。
如果可行,我建议的下一步是直接从Microsoft Store。这将使您获得最新版本。
答案2
在 Powershell 或 CMD 中运行:
wsl --update
然后,打开您的发行版(最好以管理员身份),并更新它:
sudo apt update && sudo apt upgrade
参考。