升级WSL到WSL2
升级WSL到WSL2WSL2依赖操作流程可能遇到的问题WSL2windows 10build 18917开始使用WSL2,WSL2与WSL1相比,支持的feature更多:依赖如果要升级到WSL2,需要满足一下几个条件:Windows 10 build 18917 或更高版本;启用“虚拟机平台”可选组件;在bios上启用虚拟化;操作流程首先打开PowerShellwsl --list --verb
WSL2
windows 10 build 18917开始使用WSL2,WSL2与WSL1相比,支持的feature更多:
依赖
如果要升级到WSL2,需要满足一下几个条件:
- Windows 10 build 18917 或更高版本;
- 启用“虚拟机平台”可选组件;
- 在bios上启用虚拟化;
操作流程
首先打开PowerShell
wsl --list --verbos
会看到如下:
可以看到已安装的wsl版本情况。如果想升级wsl为wsl2,需要输入如下命令:
wsl --set-default-version 2
会看到如下提示:
代表设置成功了。如果这一步操作失败,请参考升级需要的前提条件。
设置之后,在微软应用商店里可以选择按照linux的发现版本,此时就是WSL2内核的了。
如果想升级旧版本的wsl,在上一步中输入之前按照的linux版本号。即:
wsl --set-default-version Ubuntu-20.04 2
可能遇到的问题
设置了wsl2后,如果在安装linux过程中出现:
WslRegisterDistribution failed with error: 0xc03a001a
解决方案:
找到 C:\Users\你的用户名\AppData\Local\Packages
找到 CanonicalGroupLimited.Ubuntu20.04onWindows 前缀的文件夹
在这个文件夹上右键>属性>高级
取消勾选压缩内容以节省磁盘空间
确定
关于使用WSL2出现“参考的对象类型不支持尝试的操作”的解决方法。
解决方法:
- 常见临时解决方案(不推荐):
以管理员身份运行CMD,输入:
netsh winsock reset
重启计算机即可修复。
- 长期解决的方案(推荐):
(1)下载此软件:
www.proxifier.com/tmp/Test20200228/NoLsp.exe
(2)管理员身份运行CMD输入:
NoLsp.exe C:\windows\system32\wsl.exe
请自行注意NoLsp.exe程序的位置,以及你的wsl.exe位置。
产生原因和解决方法分析:
代理软件和wsl2的sock端口冲突,使用netsh winsock reset重置修复。Proxifer开发人员解释如下:
如果Winsock LSP DLL被加载到其进程中,则wsl.exe将显示此错误。最简单的解决方案是对wsl.exe使用WSCSetApplicationCategory WinAPI调用来防止这种情况。在后台,该调用在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中为wsl.exe创建一个条目。
这将告诉Windows不要将LSP DLL加载到wsl.exe进程中
更多推荐
所有评论(0)