本来电脑上已经配好了一个相当好用的WSL2,却因为我想再配置一个安卓虚拟机导致二者不兼容,“自动修复”过程中直接搞死了WSL,因此不得不重新配置一遍,还遇到了一个经典报错,可供大家借鉴。
微软的官方文档https://docs.microsoft.com/zh-cn/windows/wsl/install-win10提供了相当全面的流程,但实际操作中似乎仍可能遇到各种各样的问题,故在此做一定补充。
启用各种设置
- 在“控制面板”-“启用或关闭Windows功能”中,需要开启Hyper-V、适用于Linux的Windows子系统、虚拟机平台三个选项,勾选后需要重启。
- 在命令行也可以完成以上操作
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 开启Hyper-V需要将如下脚本写为.cmd脚本后运行
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
设置与安装
- 将WSL2设置为默认版本
wsl --set-default-version 2
- 从Microsoft Store安装想要的Linux版本
问题与解决措施
按照上面的操作一套下来,我仍然在启动Ubuntu20.04时报错,错误如下:
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ????????????????
或者有的遇到错误为:
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.
错误编号一样,应该也是同一个问题
解决方法:命令行启动Hyper-V(注意以管理员运行powershell或cmd)
bcdedit /set hypervisorlaunchtype auto