升级WSL到WSL2

WSL2

windows 10 build 18917开始使用WSL2,WSL2与WSL1相比,支持的feature更多:
在这里插入图片描述

依赖

如果要升级到WSL2,需要满足一下几个条件:

  1. Windows 10 build 18917 或更高版本;
  2. 启用“虚拟机平台”可选组件;
  3. 在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出现“参考的对象类型不支持尝试的操作”的解决方法。
在这里插入图片描述

解决方法:

  1. 常见临时解决方案(不推荐):

以管理员身份运行CMD,输入:

netsh winsock reset

重启计算机即可修复。

  1. 长期解决的方案(推荐):

(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进程中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poena

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值