Win11上使用WSL2运行Ubuntu的完整指南

📅 2026/7/17 22:21:01 👁️ 阅读次数 📝 编程学习
Win11上使用WSL2运行Ubuntu的完整指南

1. 为什么选择WSL2在Win11上运行Ubuntu

作为Windows开发者或Linux爱好者,我们经常面临一个困境:如何在保持Windows生产力工具链的同时,又能充分利用Linux的开发环境?传统解决方案是使用虚拟机,但资源占用高且性能损耗大;双系统方案又需要频繁重启。WSL2(Windows Subsystem for Linux 2)完美解决了这个痛点。

WSL2不是简单的命令行工具,而是微软在Windows内核层面实现的完整Linux兼容层。与初代WSL相比,WSL2采用真正的Linux内核(通过轻量级虚拟机实现),提供100%的系统调用兼容性。这意味着你可以:

  • 直接运行Docker等依赖内核特性的工具
  • 获得接近原生Linux的性能(文件IO速度提升20倍)
  • 无缝访问Windows文件系统
  • 使用GPU加速等硬件特性

特别在Win11上,微软对WSL2做了深度优化:

  • 动态内存分配(不再需要手动配置内存上限)
  • 改进的启动速度(冷启动仅需2秒)
  • 原生支持systemd等初始化系统
  • 图形界面应用支持(通过Wayland)

重要提示:WSL2要求Win11版本不低于22000(21H2),建议更新到最新稳定版以获得完整功能支持。可通过Win+R输入winver查看当前版本。

2. 安装前的必要准备

2.1 硬件与系统要求

在开始安装前,请确认你的设备满足以下条件:

  • CPU:支持虚拟化技术(Intel VT-x/AMD-V),通常在BIOS中启用
  • 内存:建议至少8GB(WSL2会动态占用内存)
  • 存储空间:至少10GB可用空间(Ubuntu基础安装约占用1.5GB)
  • 系统版本:Win11 21H2或更高版本

验证虚拟化是否启用:

  1. 打开任务管理器(Ctrl+Shift+Esc)
  2. 切换到"性能"标签页
  3. 查看CPU部分是否显示"虚拟化:已启用"

如果未启用,需要进入BIOS设置(开机时按Del/F2等键),找到类似"Intel Virtualization Technology"或"AMD SVM"的选项并启用。

2.2 启用Windows功能

WSL2需要以下Windows功能支持:

  • 虚拟机平台
  • Linux的Windows子系统

通过PowerShell(管理员身份)启用:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行后必须重启计算机使更改生效。

2.3 设置WSL2为默认版本

重启后,将WSL2设为默认版本:

wsl --set-default-version 2

如果看到"WSL 2需要更新其内核组件"的提示,需下载并安装 WSL2 Linux内核更新包 。

3. 安装Ubuntu发行版

3.1 通过Microsoft Store安装(推荐)

这是最简单的安装方式:

  1. 打开Microsoft Store
  2. 搜索"Ubuntu"
  3. 选择最新LTS版本(当前为22.04)
  4. 点击"获取"按钮

安装完成后,可以在开始菜单找到Ubuntu图标,首次启动会进行初始化设置(创建用户账户和密码)。

3.2 命令行安装方式

如果你更喜欢命令行操作,可以使用:

wsl --install -d Ubuntu-22.04

这个命令会自动完成以下操作:

  • 下载Ubuntu镜像
  • 创建默认实例
  • 初始化用户环境

安装进度可能因网络状况而异,Ubuntu基础镜像约500MB。如果下载速度慢,可以考虑使用代理或更换软件源镜像。

3.3 验证安装

安装完成后,通过以下命令验证:

wsl -l -v

正常输出应类似:

NAME STATE VERSION * Ubuntu-22.04 Running 2

星号(*)表示默认发行版,VERSION为2表示使用WSL2。

4. 初始配置与优化

4.1 首次启动设置

首次启动Ubuntu时:

  1. 设置用户名(建议与Windows用户名不同)
  2. 设置密码(输入时不会显示字符)
  3. 确认密码

注意:此密码将用于sudo操作,不需要与Windows账户密码相同。建议使用强密码,因为WSL实例默认没有防火墙保护。

4.2 更新软件源

为了获得最佳性能和安全性,首先更新软件包索引:

sudo apt update && sudo apt upgrade -y

这个过程会下载约100MB的更新(取决于安装时间与官方源的同步情况)。

4.3 配置APT镜像源

替换为国内镜像源可显著提升下载速度:

  1. 备份原配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 使用sed命令替换源(以阿里云为例)
sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|http://security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list
  1. 重新更新索引
sudo apt update

4.4 安装基础工具

推荐安装的开发工具包:

sudo apt install -y build-essential git curl wget zsh unzip net-tools

这些工具约占用300MB空间,但为后续开发提供了基础环境。

5. 文件系统与互操作性

5.1 跨系统文件访问

WSL2最强大的特性之一是Windows与Linux系统的无缝文件互访:

  • Windows访问Linux文件:通过\\wsl$\Ubuntu-22.04路径访问
  • Linux访问Windows文件:挂载在/mnt/下(如C盘为/mnt/c

重要提示:避免直接在/mnt下编辑代码文件,因为跨系统IO性能较差。建议将项目放在Linux文件系统内(如~/projects

5.2 性能优化配置

/etc/wsl.conf中添加以下内容提升性能:

[automount] enabled = true root = /mnt/ options = "metadata,umask=22,fmask=11" mountFsTab = false [interop] enabled = true appendWindowsPath = false

修改后需要重启WSL实例:

wsl --shutdown

5.3 解决文件权限问题

Windows应用修改Linux文件可能导致权限混乱,解决方法:

  1. 在Windows资源管理器中右键点击WSL项目文件夹
  2. 选择"属性" → "安全" → "高级"
  3. 禁用"从父项继承权限"
  4. 添加你的Windows用户并赋予完全控制权限

6. 高级配置技巧

6.1 内存与CPU限制

默认情况下,WSL2会动态分配最多50%的物理内存。如需限制:

  1. 创建或修改%USERPROFILE%\.wslconfig
  2. 添加配置:
[wsl2] memory=4GB # 限制最大内存为4GB processors=4 # 限制使用4个CPU核心
  1. 重启WSL生效

6.2 启用Systemd支持

许多Linux服务依赖systemd,但WSL默认不启用。激活方法:

  1. 编辑/etc/wsl.conf
[boot] systemd=true
  1. 退出并重启WSL实例

6.3 图形界面支持

通过Wayland实现GUI应用支持:

  1. 安装X服务器(如 VcXsrv )
  2. 在WSL中配置:
export DISPLAY=$(awk '/nameserver / {print $2}' /etc/resolv.conf):0
  1. 测试运行GUI应用:
sudo apt install gedit -y gedit

7. 常见问题排查

7.1 网络连接问题

如果遇到网络不通:

  1. 检查Windows防火墙设置
  2. 重置WSL网络:
wsl --shutdown netsh winsock reset
  1. 检查DNS配置:
cat /etc/resolv.conf

7.2 启动失败处理

当WSL无法启动时:

  1. 检查虚拟机平台是否运行:
Get-Service vmcompute
  1. 重置WSL状态:
wsl --shutdown wsl --terminate Ubuntu-22.04

7.3 磁盘空间管理

WSL2使用虚拟硬盘(VHDX),默认最大256GB。查看使用情况:

wsl --shutdown diskpart select vdisk file="%USERPROFILE%\AppData\Local\Packages\<PackageName>\LocalState\ext4.vhdx" detail vdisk

如需压缩磁盘:

optimize-vhd -Path "C:\Users\<User>\AppData\Local\Packages\<PackageName>\LocalState\ext4.vhdx" -Mode Full

8. 生产力工具集成

8.1 VS Code远程开发

  1. 安装 Remote - WSL 扩展
  2. 在WSL终端输入:
code .
  1. VS Code会自动安装服务器组件并建立连接

8.2 Docker集成

WSL2支持原生Docker:

  1. 安装 Docker Desktop for Windows
  2. 设置中启用"Use the WSL 2 based engine"
  3. 在WSL中直接使用docker命令

8.3 Windows Terminal配置

优化终端体验:

  1. 安装 Windows Terminal
  2. 配置默认启动WSL
  3. 添加Zsh等自定义shell支持
{ "profiles": { "defaults": { "fontFace": "Cascadia Code PL", "colorScheme": "One Half Dark" }, "list": [ { "guid": "{<your-guid>}", "name": "Ubuntu-22.04", "source": "Windows.Terminal.Wsl", "startingDirectory": "//wsl$/Ubuntu-22.04/home/<user>" } ] } }

经过以上步骤,你现在拥有了一个功能完整的Ubuntu开发环境,既能享受Linux的强大命令行工具,又能无缝使用Windows的图形界面应用。这种混合开发模式特别适合需要跨平台工作的开发者,无论是Web开发、数据科学还是嵌入式开发,都能从中受益。