遇到 WslRegisterDistribution failed with error: 0x80370102
错误通常是因为 WSL 需要启用虚拟化功能,但 Windows 系统没有启用相关的虚拟化技术或其他相关设置问题。解决此问题的步骤如下:
1. 启用 Hyper-V 和虚拟化功能
WSL 2 依赖于 Hyper-V 和虚拟化技术,首先需要确保这两个功能已启用。
步骤:
-
启用虚拟化功能(在 BIOS 设置中)
- 重启计算机并进入 BIOS 设置。
- 查找并启用 Intel VT-x 或 AMD-V(具体选项名称取决于你的 CPU)。
- 保存并退出 BIOS。
-
启用 Hyper-V 和虚拟化平台:
- 打开 控制面板 → 程序 → 启用或关闭 Windows 功能。
- 勾选以下选项:
- 虚拟化平台
- Hyper-V
- Windows 子系统 Linux
- 确保你的计算机已启用 Windows 虚拟化功能。
- 点击 确定,然后重启计算机。
或者,可以使用 PowerShell 启用 Hyper-V 和虚拟化平台(power shell以管理员运行):
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2. 检查是否启用了虚拟化设置
在某些情况下,虚拟化可能未启用。可以通过以下命令检查虚拟化是否启用:
- 打开 任务管理器(Ctrl + Shift + Esc)。
- 转到 性能 标签。
- 检查 虚拟化 是否显示为 已启用。
如果虚拟化未启用,需要进入 BIOS 设置启用它(如第 1 步所述)。
3. 更新 WSL 和 Windows 系统
确保你的 WSL 和 Windows 系统是最新版本,许多错误可以通过系统更新解决。
- 更新 WSL:
wsl --update
- 更新 Windows:
- 打开 设置 → 更新和安全 → Windows 更新,点击 检查更新,安装所有可用更新。
4. 重新安装 WSL
如果以上步骤未能解决问题,可以尝试重新安装 WSL 组件。
-
卸载现有 WSL:
- 在 PowerShell 中运行以下命令:
wsl --unregister <发行版名称>
-
重新安装 WSL:
- 打开 PowerShell(以管理员身份运行)并运行以下命令来重新安装 WSL:
wsl --install
5. 检查 Windows 版本
确保你的 Windows 版本支持 WSL 2。WSL 2 需要 Windows 10 版本 1903 或更高版本,且版本号至少为 Build 18362。
你可以通过以下命令查看当前的 Windows 版本(在power shell):
winver
如果版本过低,可能需要更新 Windows 操作系统。
6. 重启计算机
完成所有上述步骤后,重启计算机。此操作有助于确保所有设置生效。
这些步骤应该能够解决 WslRegisterDistribution failed with error: 0x80370102
错误。如果问题仍然存在,可以尝试查看 Windows 事件查看器中的日志,以便进一步排查问题。