windows上使用linux子系统,无法安装wsl2版本的linux或从wsl1转为wsl2失败,踩坑记录
问题描述
linux子系统是一个很好用的功能,可以直接在window系统上开启linux命令行窗口,而不需要使用VMware等虚拟机软件。wsl2与wsl1相比,功能更多一些,wsl2支持了docker,但是从wsl1 升级到wsl2出现了类似下图的报错,没有常见的错误提示,很绝望是不是。
至于如何安装wsl,这里有微软的安装教程:https://learn.microsoft.com/zh-cn/windows/wsl/install
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nxXqYBtB-1691632225341)
基础命令
安装wsl
wsl --install
安装指定版本的linux
wsl --install -d <linux_package>
查看可安装的linux版本列表
wsl -l -o
查看已经安装的linux和他们的版本
wsl -l -v
设置默认的linux版本
wsl --set-default-version <1/2>
已经安装的linux版本转化
wsl --set-version <linux_name> <1/2>
解决过程
1、wsl 2支持的系统版本是(我是windows11所以排除)
-
windows11
-
window10
-
对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
-
对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。
-
2、需要开启虚拟化(我是勾选的)
-
方式1:管理员模式下的cmd或powershell运行以下命令:(需要重启)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
方式2:win键,搜索“功能”,点击“启用或关闭windows功能”,在弹出的窗口中把“Hyper-V”勾选。
3、需要下载 Linux 内核更新包(微软提供的下载链接)
4、上面这些操作都没什么问题,但是我还是转化失败,把之前的linux包卸载了重新安装还是不行,大概率是网络原因了,我突然想到前几天我在我的电脑上装了一个本地DNS服务器AcrylicUi,软件退出了,但是软件启动的服务还没关,所以就尝试了一下在“服务”中把这个服务禁用了
然后就直接成功了