Microsoft官方参考安装网址:安装 WSL | Microsoft Learn
WSL 是什么?
个人理解:是为了在window系统上更便捷的模拟Linux系统,从而满足开发需求的一个开发者使用工具;WSL注重的是以一个子系统的形式运行在window系统上,它对比直接使用VMware/VirtualBox工具去内嵌启动一个完整的Linux系统,会显得更为轻便,虽然在一定程度上和一个完全独立的Linux系统还是会存在完整性能上差异,但是对于基础的开发环境,个人认为是足够的(学生党学习虚拟机的时候,WSL模拟的Linux系统对笔记本的运行压力也小一些)。
为什么使用WSL?
优点
轻量级:WSL所使用镜像是轻量级的,只保留着基础的Linux环境操作;直观的数字数据可以对比于VMware/VirtualBox工具所使用GB+的Linux iso,WSL所使用的镜像可以是300M左右的Ubuntu镜像,这从内存上已经极大的降低了电脑内存消耗;
文件可见性:Linux环境和Window环境是互通的,在Window系统,是可以通过文件夹直观查看到Linux系统文件的,并且在部分时候可以通过Window/Linux的操作直接操作另外一个系统的文件(个人慎重,操作是双向的,损坏也可能是双向的)。
缺点
轻量级:WSL的虚拟Linux环境是裁剪后的Linux,只保留基础的Linux环境操作,和完整的Linux iso搭建出来的环境是存在差异,可能有部分工具需要开发者自行下载添加。
对Window系统的依赖性:WSL是依附在Window系统下的子系统,如果Window出现系统的损坏,可能直接影响WSL。
安装流程
步骤1:为Linux启用Windows子系统
在Windows上安装任何Linux发行版之前,必须首先启用“Windows Subsystem for Linux”可选功能。以管理员身份打开PowerShell(“开始”菜单>PowerShell>右键单击>以管理员身份运行),然后输入以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
步骤2:检查系统版本是否满足WSL2版本的运行要求
Tips:WSL 版本的简介
WSL 1:WSL 1版本只是一个轻量的Linux系统模拟器,该版本没有在Window系统中运行虚拟机。
WSL2 :WSL 2版本在运行Linux环境时,创建了一个轻量级的虚拟机,该虚拟机含有完整的Linux内核,WSL 2 使用一个 VHD 虚拟磁盘文件作为 linux 发行版的根目录,此外还使用 ext4 文件系统格式来提升了 IO 性能。【为了更好的使用Linux系统,推荐WSL 2】
使用WSL 2 版本要求如下
Window10:
对于x64系统:1903版或更高版本,内部版本18362.1049或更高。
对于ARM64系统:版本2004或更高版本,版本19041或更高。
【如果系统版本刚好是Window10 1903/1909版本,可以了解一下官方提示:WSL 2 Support is coming to Windows 10 Versions 1903 and 1909 - Windows Command Line】
Window11:
版本限制暂时没发现。
Tips:电脑系统版本和内部版本号查询方法
Windows 键 + R 打开命令输入框,随后输入 winver 回车即可;
步骤3:启用虚拟机功能
在安装WSL 2之前,必须启用虚拟机平台可选功能。以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
步骤4:重启电脑
手动重启电脑,使得修改生效。
步骤5:设置WSL 2 版本为默认WSL 版本
以管理员身份打开PowerShell并运行:
wsl --set-default-version 2
步骤6:下载个人需要的Linux发行版本
下载方法1:Microsoft store 手动下载
直接在电脑自带的 Microsoft store 中搜索Ubuntu或者其他Linux系统,随后直接点击下载即可;
下载完成后,在Microsoft store 的库中,或者直接在电脑中搜索下载的Linux环境,随后点击打开,完成Linux系统的用户名,密码设置即可。
(记录:此处打开Linux系统,遇到了一个 WslRegisterDistribution failed with error: 0x800701bc报错,已经解决,解决方法在下文)
下载方法2:powershell 命令行下载
首先需要查看电脑可安装的Linux有效分发列表,操作为以管理员身份打开PowerShell并运行
wsl --install
根据提示和个人需要,就可以运行下载命令:
wsl --install -d <分发版本>
参考示例:
需要下载Ubuntu 20.04 LTS,则完整命令: wsl --install -d Ubuntu-20.04
此处wsl --install -d <>命令运行时,可以在Microsoft Store里面看到建立了一个下载任务,任务内容和手动下载Ubuntu时是一个任务,所以这个命令应该也就是通过代码触发Microsoft Store吧。
下载完成后,和手动安装一样完成用户名,账号设置即可。
(记录:此处运行时,出现了一个下载进度条卡顿在 0% 的问题,个人认为是下载源代理的问题,综合网上得到了一个解决方案,下文叙述,但是完成解决方案的设置后,下载还是很慢,后面还是手动下载的,heyhey)
步骤7:验证
若安装无误,此时以管理员身份打开PowerShell并运行 wsl --list ,此时理应出现已经安装好的子系统分发版,若显示不存在子系统,先检查分发版本系统能不能打开吧,估计是祭了。
解决方案
问题一:WslRegisterDistribution failed with error: 0x800701bc
官方排查子系统问题网址:排查适用于 Linux 的 Windows 子系统问题 | Microsoft Learn
参考方法:
问题:怀疑是WSL1 升级为WSL 2 后,内核没有同步升级,导致异常。
方法:手动升级WSL,下载WSL安装包并安装即可。
WSL安装包地址:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
问题二:wsl --install -d <>下载进度条卡顿在 0% 的问题
参考方法:
问题:理应是代理问题,导致难以连接到服务器。
方法:在 C:\Windows\System32\drivers\etc\ 路径下,存在 hosts 文件
在hosts 文件中加上 185.199.110.133 raw.githubusercontent.com 并保存即可
该IP和网址的对应关系是通过域名查询 raw.githubusercontent.com 所得
ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名
host 文件是操作系统文件,主要作用是将一些常用的网址域名和IP地址相关联,在浏览器登陆某个网址时,系统会先从 hosts 文件中寻找对应的 IP 地址,如果找到则打开对应的网页,若无法找到,再将网址提交给DNS域名解析服务器进行 IP 地址解析;故如果把 wsl 下载镜像的相关代理IP设置在hosts文件,则可以更快定位到指定IP地址,获取镜像资源。