1. 为什么要在Win11上安装WSL和Ubuntu
作为一名长期在Windows环境下开发的程序员,我深刻体会到原生Linux环境的重要性。微软推出的WSL(Windows Subsystem for Linux)彻底改变了开发者的工作流,它允许我们在不离开Windows环境的情况下,获得近乎原生的Linux体验。特别是对于需要同时使用Windows办公软件和Linux开发工具的用户来说,WSL提供了完美的解决方案。
Win11作为微软最新的操作系统,对WSL的支持更加完善。相比Win10,Win11的WSL2在性能上有显著提升,特别是文件系统IO性能提高了20倍以上。而Ubuntu作为最流行的Linux发行版之一,拥有庞大的软件库和活跃的社区支持,是开发者的首选。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装前的准备工作
2.1 系统要求检查
在开始安装前,我们需要确认几个关键点:
- 确保你的Win11版本是19041或更高版本(可通过winver命令查看)
- 确认CPU支持虚拟化技术(可在任务管理器-性能选项卡中查看)
- 至少4GB内存(建议8GB以上以获得更好体验)
提示:如果你的系统是家庭版,可能需要先启用Hyper-V功能。专业版和企业版默认支持。
2.2 启用Windows功能
WSL需要几个Windows功能的支持,我们需要先启用它们:
powershell复制# 以管理员身份打开PowerShell并执行以下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完毕后,重启计算机使更改生效。
3. 安装WSL2内核更新
WSL2相比WSL1有更好的兼容性和性能,我们需要先安装内核更新包:
- 下载地址:https://aka.ms/wsl2kernel
- 运行下载的wsl_update_x64.msi文件
- 安装完成后,设置WSL2为默认版本:
powershell复制wsl --set-default-version 2
4. 安装Ubuntu发行版
4.1 通过Microsoft Store安装
最简单的方式是通过Microsoft Store安装:
- 打开Microsoft Store
- 搜索"Ubuntu"
- 选择Ubuntu 22.04 LTS(或其他你需要的版本)
- 点击获取并安装
4.2 通过命令行安装
如果你更喜欢命令行方式,可以执行:
powershell复制wsl --install -d Ubuntu-22.04
这个命令会自动完成所有必要的安装步骤。
5. 初始设置Ubuntu
安装完成后,首次启动Ubuntu会进行初始化设置:
- 创建Unix用户名(建议与Windows用户名不同)
- 设置密码(输入时不会显示字符)
- 等待文件系统解压完成(可能需要几分钟)
6. 常见问题解决
6.1 安装速度慢的问题
由于服务器位于海外,下载可能很慢。解决方法:
powershell复制# 设置镜像源
wsl --shutdown
notepad "$env:USERPROFILE\.wslconfig"
在打开的文件中添加:
code复制[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
6.2 WSL2网络问题
如果遇到网络连接问题,可以尝试:
bash复制# 在Ubuntu中执行
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'
6.3 文件系统性能优化
WSL2的跨系统文件访问性能较差,建议:
- 将项目文件放在Linux文件系统中(/home/username/)
- 如果必须使用Windows文件,可以挂载为drvfs:
bash复制sudo mkdir /mnt/c
sudo mount -t drvfs C: /mnt/c
7. 进阶配置
7.1 图形界面支持
WSL2默认没有图形界面,但可以安装:
bash复制sudo apt update
sudo apt install xfce4 xfce4-goodies -y
然后使用X Server软件如VcXsrv在Windows端显示。
7.2 开发环境配置
对于开发者,建议安装:
bash复制sudo apt install build-essential git python3-pip nodejs npm
7.3 内存限制设置
如果发现WSL占用内存过多,可以设置上限:
powershell复制notepad "$env:USERPROFILE\.wslconfig"
添加内容:
code复制[wsl2]
memory=4GB
swap=2GB
8. 日常使用技巧
- 在Windows终端中固定Ubuntu标签页
- 使用
wsl -d Ubuntu-22.04命令启动特定发行版 - 通过
wsl --shutdown完全关闭WSL - 使用
wsl --export和wsl --import备份恢复系统
9. 性能优化实测
在我的开发机上(i7-11800H, 32GB RAM),进行了以下测试:
- Node.js项目构建时间:
- WSL1: 42秒
- WSL2: 18秒
- Git克隆大型仓库:
- WSL1: 3分12秒
- WSL2: 1分45秒
- Python虚拟环境创建:
- WSL1: 8秒
- WSL2: 3秒
10. 与Docker集成
WSL2与Docker Desktop有深度集成:
- 安装Docker Desktop for Windows
- 在设置中启用"Use WSL 2 based engine"
- 在Ubuntu中可以直接使用docker命令
bash复制sudo usermod -aG docker $USER
需要重启WSL使更改生效。
11. 卸载与清理
如果需要卸载Ubuntu:
powershell复制wsl --unregister Ubuntu-22.04
要完全移除WSL:
powershell复制dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
12. 个人使用心得
在实际开发中使用WSL+Ubuntu组合已经两年多,最大的感受是开发效率的提升。特别是对于全栈开发者,可以同时使用Visual Studio Code的Windows版本和WSL中的Linux工具链。几个实用建议:
- 将常用命令添加到~/.bashrc中
- 使用Windows Terminal作为默认终端
- 定期使用
sudo apt autoremove清理不需要的包 - 重要项目文件建议同时备份到Windows分区
对于文件路径转换,我经常使用这个小技巧:
bash复制# 将Windows路径转换为WSL路径
wslpath "C:\Users\username\project"
