WSL子系统部署流程记录

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地址,获取镜像资源。

  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要远程登录WSL子系统,需要进行以下步骤: 1. 在WSL子系统中使用ifconfig命令查看IP地址。可以通过在WSL终端输入ifconfig命令来获取。假设IP地址是10.10.10.2。 2. 使用管理员权限打开CMD或PowerShell。 3. 将WSL的SSH端口转发到Windows的特定端口上。在CMD或PowerShell中运行以下命令: ``` netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22222 connectaddress=10.10.10.2 connectport=22 ``` 4. 放行Windows的22222端口。在CMD或PowerShell中运行以下命令: ``` netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=22222 ``` 5. 在WSL子系统中开启其他地址的访问权限。在WSL终端中使用sudo vim /etc/hosts.allow命令打开hosts.allow文件,在文件的最下方添加以下内容: ``` ALL:ALL ``` 6. 重启SSH服务。在WSL终端中使用以下命令: ``` sudo service ssh restart ``` 完成上述步骤后,你可以使用任意支持SSH登录的软件或在Windows安装SSH后使用CMD或PowerShell输入SSH命令来远程登录WSL子系统。登录命令如下所示: ``` ssh wsl_username@localhost -p 22222 ``` 其中,wsl_username是你在配置SSH登录时设置的用户名。请注意,如果你要从WSL子系统所在的另一台电脑进行远程登录,需要将localhost替换为WSL子系统的IP地址。你可以使用ifconfig命令在WSL子系统中查看IP地址。 希望以上步骤对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [远程登录WindowsWSL子系统](https://blog.csdn.net/qq_32115939/article/details/123061407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [WSL子系统使用SSH远程登录](https://blog.csdn.net/qq_39457683/article/details/127564638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值