前言

WSL 默认安装位置在 C盘,这对C盘不够大的小伙伴来说有点难受的,本文将以 Ubuntu 22.04 演示自定义安装

一、微软商店下载

搜索 Ubuntu,选择所需的版本点进去,点击获取按钮即可开始下载安装

[tip type=”red”]下载安装完成后,切记不要打开,不要打开,不要打开!!![/tip]

1.png

2.png

安装完成后,我们在开始菜单会看到 Linux 系统图标,这就是刚刚下载的 Ubuntu安装程序。

3.png

二、进入微软商店应用默认安装目录

使用微软商店下载的应用安装包会默认保存在 C:\Program Files\WindowsApps 目录下。

如果发现没有权限打开C:\Program Files\WindowsApps文件夹,可以用 PowerShell(管理员权限运行)的命令打开,对应的操作为:

1
cd "C:\Program Files\WindowsApps"

4.png

找到 Ubuntu 安装包的默认下载位置

Ubuntu 安装包默认保存在 WindowsApps 目录下的某个文件夹里。文件夹名称的开头应该类似于 CanonicalGroupLimited。

寻找当前目录下以 CanonicalGroupLimited 开头的文件夹:

1
dir CanonicalGroupLimited*

5.png

这里我们查询到了几个文件夹,现在依次查看这些文件夹找到所需要文件:

1
dir CanonicalGroupLimited(不要回车执行)

按 TAB 键可以按顺序补全上面四个文件夹,我们以此来以此查看四个文件夹,切换到需要查看的文件夹后,回车执行命令。

我们需要在这几个文件夹中找到含有:buntu<版本号>.exe文件,这就是我们要找的文件夹

6查询文件.gif

7.png

buntu<版本号>.exe就是 Ubuntu的安装程序;安装完成后,该程序还可用来启动或访问Ubuntu。

三、复制安装包和相关文件到指定的安装位置

这里,我想将 WSL2 安装路径设置在:Z:\WSL2,在对应路径创建文件夹:

1
mkdir Z:\WSL2\Ubuntu2004

然后,我们将 Ubuntu 安装包复制到新建的 Ubuntu2004 文件夹下:

1
2
格式:cp <安装包所在的文件夹名>\* <你想要安装ubuntu文件夹的路径>
演示:cp .\CanonicalGroupLimited.Ubuntu22.04LTS_2204.1.23.0_x64__79rhkp1fndgsc\* Z:\WSL2\Ubuntu2004

8.png

执行完毕后我们去 Z:\WSL2\Ubuntu2004 查看,可以看到已经将 Ubuntu 程序完整复制过来了

9.png

[tip type=”blue”]如果你不想操作前面的步骤,我已经将完整的 Ubuntu 程序打包压缩,可以在下面路径下载然后放到指定目录即可使用[/tip]

[hide]下载地址:https://alist.xkl.me/d/%E4%B8%BB%E8%8A%82%E7%82%B9/ISO/Ubuntu/WSL2-Ubuntu2004.7z[/hide]

到此,我们可以将微软商店下载的 Ubuntu 卸载掉

10.png

四、安装 Ubuntu

打开我们拷贝出来的WSL程序文件夹,双击运行 ubuntu<版本号>.exe 即可,等待 Ubuntu系统初始化。

初始化时会提示创建新用户,输入用户名和密码即可完成初始化完成安装

11.png

完成之后我们目录下会多出一个 vhdx虚拟硬盘文件,它就是 Ubuntu WSL2 虚拟机挂载的“硬盘”。在 WSL2 Ubuntu虚拟机中的所有下载执行都将在此文件内

12.png

安装结束后,安装目录中的 ubuntu<版本号>.exe 就是 Ubuntu的启动/访问程序。

如果你是 Windows11 ,那么打开终端(Windows Terminal)点击加号可以看到系统自动添加了我们刚刚创建的 WSL2 系统,点击即可快速进入

13.png

文件还会在 此电脑中自动挂载路径

15.png

五、其他

使用 Root 用户

默认为 普通用户,我们需要初始化 root 密码并切换至 root

1
2
3
sudo passwd root
su root
su -

14.png

设置 Ubuntu 源

默认的 Ubuntu源在国内使用是很慢的

备份配置文件

1
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak

命令替换

使用华为云源
1
2
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
使用清华源
1
2
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

更新索引和软件包

1
sudo apt-get -y update && sudo apt-get -y upgrade

WSL运行状态

WSL已安装发行版信息查询

WSL可以安装多个Linux发行版(如 Ubuntu、Centos等),我们可以打开 Powershell,通过以下命令查询机器上安装的所有发行版

1
wsl --list --verbose

分别记录了 WSL 中 Linux发行版的名称(NAME)状态(STATE)版本(VERSION)

16.png

开机/关机

开机:wsl --terminate <发行版名称>

关闭所有发行版:wsl --shutdown

开机后,只要不手动执行关机操作,或者不关闭物理机器,它会一直保持开机。物理机器在关闭、重新启动后,发行版会关机。

六、移除 WSL2

查看所注册的 WSL2 服务

1
wslconfig /l

注销 WSL2 服务

1
wslconfig /u Ubuntu-20.04