前言
WSL2(Windows Subsystem for Linux 2)是 Windows 提供的一种轻量级 Linux 运行环境,具备完整的 Linux 内核,并支持更好的文件系统性能和兼容性。它允许用户在 Windows 系统中运行 Linux 命令行工具和应用程序,而无需安装虚拟机或双系统。相比于传统的虚拟机,具有更小的开销,而且可以实现显卡直通(子系统可以直接使用显卡),文件系统相互访问,两个系统的命令混用等等,更具体的优势可参考官方文档:Windows Subsystem for Linux 文档
网上的安装教程很多,但是博主自己也遇到了很多的问题,包括没有Hyper-V、网络代理如何设置、中文乱码等等,所以想写下这篇文档,来进行记录,也让在座的各位也省去因为大量查找资料的所花费的精力,确保各位能够一次性成功安装使用。
在此感谢几位博主所创作的教程,各位可通过看第二位博主的演示,来直观的体验WSL2的巨大优势:
CSDN博主:Natsuagin
B站博主: 技术爬爬虾
一、安装WSL2
- 按下 Win + R 组合键,输入appwiz.cpl,然后点击 确定 或直接按 Enter

- 进入程序和功能界面,点击 启用或关闭 Windows 功能

- 勾选以下四项:
适用于 Linux 的 Windows 子系统、虚拟机平台(Virtual Machine Platform)、Windows 虚拟机监控程序平台、Hyper-V

如果没有Hyper-V的话(例如Windows11家庭版),使用以下方式解决:
- 在你的桌面新建一个hyper-v.txt,打开并粘贴以下内容:
bash
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
pause
- 把hyper-v.txt改为hyper-v.cmd,然后右键以管理员身份运行,等待执行完毕。执行完毕以后会出现:"是否重启计算机",根据提示,输入y,进行重启。如果中途出现错误、失败等,可在开机后再次运行,重复这个操作,直到没有错误。
- 点击确认后会让你重启电脑,我们选择重启即可,至此,WSL2安装完毕。
二、WSL2 安装 Ubuntu-22.04
安装有两种方法,一种是使用命令行,一种是使用微软商店(Microsoft Store)。
方法一、使用命令行
1.首先,查看可用的 WSL 发行版,在Windows Powershell中执行:
powershell
wsl --list --online
接着会出现以下列表,列表中就是我们可以安装使用的

2.进行安装,博主根据需求这里选择安装Ubuntu-22.04,执行以下命令:
powershell
wsl --install -d Ubuntu-22.04
3.安装完毕后会要求你创建一个新用户,按照提示输入用户名和密码即可。
方法一、使用微软商店(Microsoft Store)
1.直接打开微软的商店,搜索ubuntu,选择需要安装版本,进行安装
2.安装完毕以后,在搜索栏搜索ubuntu,即可打开:

或者是在Windows Powershell中打开:

3.安装完毕后会要求你创建一个新用户,按照提示输入用户名和密码即可。
三、更改Ubuntu安装位置
ubuntu默认的安装是安装在C盘下的,所以我们需要将其移动到其他位置。运行PowerShell。
- 输入
wsl --shutdown关闭正在运行的ubuntu。再输入wsl -l -v查看Ubuntu-22.04的运行状态,STATE为Stopped即说明已关闭。
bash
wsl --shutdown
wsl -l -v
- 创建目录。
在合适的磁盘上创建一个目录,例如E盘的 E:\Ubuntu22.04。 - 导出镜像。
在PowerShell中输入下列命令,将Ubuntu导出到指定目录,并等待操作完成。
bash
wsl --export Ubuntu-22.04 E:\Ubuntu22.04\Ubuntu22.04.tar
- 注销原系统。
在wsl中注销原有的Ubuntu系统,powershell中输入wsl --unregister Ubuntu-22.04。完成后输入wsl -l -v查看,提示适用于 Linux 的 Windows 子系统没有已安装的分发,即为卸载成功。
bash
wsl --unregister Ubuntu-22.04
- 导入镜像。
在powershell中输入wsl --import Ubuntu-22.04 E:\Ubuntu22.04 E:\Ubuntu22.04\Ubuntu22.04.tar,将之前导出的镜像导入到新的Ubuntu系统。在powershell中输入wsl -l -v查看,出现Ubuntu-22.04的NAME即为导入成功。
bash
wsl --import Ubuntu-22.04 E:\Ubuntu22.04 E:\Ubuntu22.04\Ubuntu22.04.tar
wsl -l -v
- 更改默认用户,因为重新导出导入,ubuntu会默认启动root用户,所以需要这一步,注意用户名是你前面填写的那个用户名。在powershell中输入
ubuntu2204.exe config --default-user [YourUesrName],将新的Ubuntu系统默认用户设置为[YourUesrName]。
如更改默认用户为nanwan,则输入下列命令:
bash
ubuntu2204.exe config --default-user nanwan
Tips: 导出的这一步其实可以当做传统虚拟机的快照,用于备份系统。
Tips: 在Windows的资源管理器中,按住Shift键,右键空白处或者文件夹,即可选择在此处打开 Linux shell,从而实现快速启动Ubuntu子系统并切换终端目录。
Tips: 在Windows的资源管理器中,输入 \\wsl$ 即可访问Ubuntu的文件系统,该系统是通过网络接口访问的,可右键该文件夹并选择 映射网络驱动器 将其映射为带有盘符的目录,从而实现快速访问Ubuntu文件。
四、在ubuntu中设置代理
如果想要在ubuntu中设置代理使用的话,按照以下步骤进行:
-
打开WSL Settings

-
网络模式选择镜像,其他的跟我一样就行。

-
记得关闭wsl。此时,在你的windows中打开代理,然后再次启动ubuntu。
-
接着打开浏览器测试即可。没有安装浏览器可用以下命令安装Google浏览器,安装其他浏览器也可以。
bash
cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -f ./google-chrome-stable_current_amd64.deb
- 当然如果想在ubuntu对git配置使用代理,只需要在终端中使用:
bash
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy https://127.0.0.1:7897
实际地址和端口请根据本机实际的情况修改。

五、中文乱码的解决
这个是我在打开浏览器的时候发现,如果切换到中文的话,会出现大量乱码。解决的方案按照以下进行解决:
- 在ubuntu终端中依次输入执行:
bash
sudo apt install fonts-noto-cjk -y
sudo apt install language-pack-zh-hans -y
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8
2.退出所有ubuntu终端,关闭wsl
bash
wsl --shutdown
wsl -l -v
3.重新启动ubuntu,乱码问题即可解决