菜单

烂氧羊
烂氧羊
发布于 2024-11-12 / 72 阅读
1

WSL如何安装在其他盘?(WSL手动安装和使用方法详细教程)

前言

WSL(Windows Subsystem for Linux),官方名称为“适用于Linux的Windows子系统”,是微软为Windows 10和Windows 11开发的一个兼容层,它允许用户在Windows操作系统上运行Linux环境,包括大多数命令行工具、实用程序和应用程序,而不需要安装虚拟机或双系统

当你自己尝试安装WSL的时候,你可能会遇到Microsoft Store死活打不开、默认安装在C盘占用太大等问题,这时候使用手动安装就可以迎刃而解,本文章将教会你如何通过手动安装的方式安装WSL

注:
本教程所安装的是WSL2而非WSL(1),请确保自己的系统版本符合运行要求,系统为Windows11则不需要额外检查
本次安装的Linux发行版为Ubuntu 24.04,想要安装其他发行版请自行选择,安装方法是差不多的

第一步:下载所需的文件

分别前往这两个链接下载WSL所需的文件:

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#downloading-distributions

下载完成后会分别得到一个压缩包和一个MSI安装程序

第二步:开启需要的Windows功能

打开控制面板,进入启用或关闭Windows功能,开启这两个功能
image-mhvb.png
再点击立即重新启动(记得保存没保存的文件巴拉巴拉)

重启后打开此电脑,如果在左侧最下方能看到一个叫Linux的条目,就说明成功了

第三步:安装WSL

运行wsl_update_x64.msi

无脑下一步即可完成安装

解压Ubuntu2404-240425.zip

解压后你会看到这一堆东西,我们实际上只需要其中的一个文件

ARM64使用上面框住的文件,x64使用下面框住的文件

把需要的那个文件拿出来之后就可以把其他的删了

image-foqq.png

解压Ubuntu_2404.0.5.0_x64.appx

.appx实际上就是个压缩包,如果你想要自定义安装位置就不能直接双击安装,需要将里面的文件解压到想要的位置,我们修改后缀为.zip就可以使用解压缩软件打开,然后在你的电脑上找一个风水宝地存放WSL(我解压到了D:\WSL下面)

确保你创建的目录直接点进去就能直接看见ubuntu2404.exe,不要使用中文路径,避免出现问题

最后再确认一下这个目录的属性,确保压缩内容以便节省磁盘空间没有开启,否则会报错

运行ubuntu2404.exe

当你做完上述步骤后,直接双击ubuntu2404.exe,会自动开始部署

第一个问题是让你输入用户名,这是你在Linux里的用户名,只能使用小写字母和数字,不能以数字开头
第二个问题是让你输入新密码,这是你在Linux里的密码,输入是没有提示的
第三个问题是让你再次输入密码,这个是防止你打错字,输入时同样没有提示,没什么好说的


输入完成后会自动进入Linux的终端,同时窗口标题也变成了[你的用户名]@[电脑主机名]

第四步:学会在哪打开

如果你使用的是Windows终端(win11才有),重新打开终端后下拉菜单会自动出现一个新的配置文件,点击即可进入WSL

如果你使用的不是Windows终端(而是直接使用cmd等),直接输入命令wsl也可以进入WSL

第五步:学会在Windows查看WSL的文件

如果你记忆力不错,你应该还记得第二步的时候此电脑里多了个叫Linux的条目
现在可以通过这个条目访问WSL的文件了
点进去会显示所有Linux发行版的目录,因为我们现在只安装了一个,所以只有一个叫Ubuntu-24.04的目录

进入对应发行版的目录则会进入这个发行版的根目录(/),目录结构与Linux一致,文件是实时同步的(没同步则需要按F5刷新)

第六步:学会在WSL查看Windows的文件

WSL的/mnt目录下会自动出现你的所有盘符,你可以在这里访问电脑上的其他文件

第七步:学会WSL的其他命令

因为篇幅限制,常用命令请看这个链接,所有可用命令请在终端输入wsl help自行查看,我只讲几个

https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands#change-directory-to-home

在终端里使用wsl -u [用户名]来使用特定用户启动wsl

在终端里使用wsl -l -v显示当前所有发行版的状态

在终端里使用wsl -s [发行版名称]来关闭特定发行版
直接使用wsl -s将会关闭所有发行版

在终端里使用wsl hostname -I查看WSL的IP地址(用于从宿主机连接到WSL)

在WSL里使用ip route show | grep -i default | awk '{ print $3}'查看宿主机的IP地址(用于从WSL连接到宿主机)

第八步:学会转发WSL端口

WSL的所有端口都可以通过localhost:端口号访问,但只有宿主机可以这么做,如果想让局域网内其他设备也能访问则需要设置端口转发

命令示例

将WSL的22端口转发到宿主机的22端口
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=localhost connectport=22

显示所有已设置的转发
netsh interface portproxy show all

删除22端口的这条转发
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=22

命令解析

listenaddress表示要监听的地址,例如你的A网卡为192.168.0.1,B网卡为192.168.1.1,此时设置为192.168.1.1只会转发来自B网卡的连接(局域网其他设备使用192.168.1.1:[端口号]连接),来自A网卡的连接不会转发,设置为0.0.0.0即为监听所有地址

listenport表示要监听的端口(其他设备从什么端口连接)

connectaddress 表示要转发到的地址,设为localhost是因为宿主机可通过localhost访问WSL,也可以设为WSL的IP地址

connectport表示要转发到的端口(连接到WSL上的哪个对应端口)

注:转发存在优先级,如果宿主机上的其他服务使用了同个端口,转发的端口会被其他服务的端口覆盖,将命令中的localhost修改为WSL对应的IP地址,转发的端口就会覆盖其他服务的端口

尾声

如果你看到这里,说明你看到了这里
此处应该说点什么东西,但我不会,就这样吧

8EF354E5E66D660F1BF534AC392F5AAA.gif