1. 为什么选择WSL2+Ubuntu组合?
如果你是一名开发者或者技术爱好者,一定遇到过这样的困境:Windows系统下某些开发工具链不完善,而纯Linux环境又可能影响日常办公娱乐。我在2018年第一次接触WSL时,就被这种"鱼与熊掌兼得"的方案惊艳到了。经过几年迭代,WSL2已经进化成一个成熟的生产力工具。
WSL2相比传统虚拟机有三大优势:首先是性能,实测在文件操作和编译速度上比VMware快30%以上;其次是资源占用,我的Surface Pro 8同时运行WSL2和Android Studio,内存占用比开虚拟机少了近2GB;最重要的是无缝集成,你可以用VS Code直接编辑Linux下的代码,在PowerShell里调用Linux命令,这种体验是双系统切换无法比拟的。
Ubuntu作为最流行的Linux发行版之一,在WSL生态中表现尤为出色。我测试过多个发行版,Ubuntu的软件包兼容性最好,社区支持也最完善。比如最近需要调试一个ROS2项目,Ubuntu 22.04的apt源直接提供了所有依赖包,而其他发行版需要手动编译。
2. 安装前的准备工作
2.1 系统版本检查
按下Win+R输入winver,确认系统版本不低于Windows 10 2004(内部版本19041)或Windows 11。我遇到过不少安装失败案例都是因为系统版本过旧,有个学生用着1809版本折腾了半天,更新系统后所有问题迎刃而解。
2.2 硬件虚拟化支持
在任务管理器"性能"标签页查看虚拟化是否已启用。如果没有,需要进入BIOS开启VT-x(Intel)或AMD-V(AMD)功能。上周帮同事调试时发现,某些品牌笔记本默认关闭这个选项,导致WSL2无法启动。
2.3 磁盘空间预留
建议至少预留20GB空间。虽然基础安装只要几个GB,但开发环境往往会膨胀得很快。我的Python环境加上CUDA工具链就占了15GB。可以通过以下命令检查磁盘空间:
wmic logicaldisk get size,freespace,caption
3. 安装WSL2核心组件
3.1 启用Windows功能
以管理员身份运行PowerShell,执行以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
这两个命令分别启用Linux子系统和虚拟机平台。记得一定要用管理员权限,我有次忘记提权,结果特征启用失败还没任何报错。
3.2 设置WSL2为默认版本
重启电脑后继续执行:
wsl --set-default-version 2
这里有个坑点:某些旧系统会提示"请求的操作失败"。这时需要手动安装WSL2内核更新包,下载地址在微软官网搜索"WSL2 Linux内核更新包"。
4. 安装Ubuntu发行版
4.1 应用商店安装(推荐新手)
打开Microsoft Store搜索Ubuntu,选择LTS版本(目前是22.04)。安装完成后首次启动会提示创建用户,这里有个技巧:用户名不要用大写字母,否则某些软件包可能出问题。
4.2 命令行安装(适合批量部署)
wsl --install -d Ubuntu-22.04
这个命令会自动完成下载和基础配置。如果网络不好导致卡在0%,可以尝试:
wsl --install --web-download -d Ubuntu-22.04
4.3 手动安装(自定义路径)
对于系统盘空间紧张的用户,可以下载.appx包手动安装:
- 访问Ubuntu官网获取.appx下载链接
- 重命名为.zip并解压
- 将解压文件夹移到目标磁盘
- 运行其中的exe文件
我的开发机就把Ubuntu装在了D盘,通过wsl --export和--import还能实现环境迁移。
5. 基础配置与优化
5.1 换国内源
启动Ubuntu后首先更新软件源:
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.aliyun.com@g" /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
这个操作能显著提升下载速度,特别是在教育网环境下,更新耗时从半小时缩短到两分钟。
5.2 内存限制调整
在C:\Users\<用户名>\.wslconfig中添加:
[wsl2]
memory=8GB
processors=4
localhostForwarding=true
这可以防止WSL2占用过多内存。我的16GB笔记本设置8GB上限后,再没出现过系统卡顿。
5.3 文件系统性能优化
WSL2的跨系统文件访问较慢,建议:
- Windows访问Linux文件:使用
\\wsl$网络路径 - Linux访问Windows文件:尽量复制到WSL内部
- 重要项目放在
/home目录下
实测在WSL内部编译Linux内核比在/mnt目录快3倍。
6. 开发环境搭建实战
6.1 Python环境配置
sudo apt install python3-pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
建议使用venv管理项目环境:
python -m venv ~/.venv/project1
source ~/.venv/project1/bin/activate
6.2 Docker集成
- 安装Windows版Docker Desktop
- 设置中启用WSL2后端
- 在Ubuntu中验证:
docker run --rm hello-world
6.3 VS Code远程开发
安装"Remote - WSL"扩展后,直接在Ubuntu终端输入:
code .
就能在Windows下获得完整的Linux开发体验,包括调试、终端和扩展支持。
7. 常见问题排查
7.1 启动时报错0x800701bc
这是WSL2内核未正确安装导致的,解决方案:
- 卸载现有内核
- 重新下载安装包
- 以管理员身份运行安装
7.2 网络连接问题
如果遇到apt无法更新,尝试:
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
7.3 图形界面支持
安装x11-apps后配置显示:
sudo apt install x11-apps
export DISPLAY=$(awk '/nameserver / {print $2}' /etc/resolv.conf):0
然后在Windows端安装VcXsrv等X Server即可。

527

被折叠的 条评论
为什么被折叠?



