Windows 安装 WSL2 并运行 Ubuntu 22.04 指南
Windows 安装 WSL2 并运行 Ubuntu 22.04 指南
本文为 Windows 10 和 Windows 11 用户提供从零开始搭建 WSL2 环境的详细指南,涵盖安装 Ubuntu 22.04、自定义存储位置、性能优化以及常见问题排查。无论你是开发者、运维工程师还是 Linux 爱好者,本文将助你快速上手 WSL2。
为什么要选择 WSL2 而非 VirtualBox 等虚拟机?
在选择运行 Linux 环境时,WSL2(Windows Subsystem for Linux 2)与 VirtualBox、VMware 等传统虚拟机相比具有显著优势。以下是选择 WSL2 的主要理由:
1. 更高的性能和资源效率
- 轻量级虚拟化:WSL2 使用 Hyper-V 架构的轻量级虚拟机,相比 VirtualBox 的完整虚拟化,占用更少的 CPU 和内存资源。
- 动态内存管理:WSL2 支持动态分配内存,并在空闲时通过
autoMemoryReclaim
释放内存,而 VirtualBox 通常需要预分配固定内存。 - 快速启动:WSL2 可在数秒内启动 Linux 环境,而 VirtualBox 启动完整虚拟机通常需要更长时间。
2. 无缝的 Windows 与 Linux 集成
- 文件系统互操作:WSL2 支持直接访问 Windows 文件系统(通过
/mnt/
),并提供高性能的文件共享,而 VirtualBox 需要配置共享文件夹,性能较低。 - 命令行集成:WSL2 可在 Windows Terminal 或 PowerShell 中直接运行 Linux 命令,无需切换到虚拟机界面。
- 端口转发:WSL2 支持
localhost
端口无缝转发,方便开发和测试,而 VirtualBox 需要复杂网络配置。
3. 开发体验优化
- 工具链支持:WSL2 与 Visual Studio Code、Docker Desktop 等开发工具深度集成,适合现代化开发工作流。VirtualBox 需额外配置以实现类似功能。
- WSLg(GUI 支持):Windows 11 的 WSL2 支持运行 Linux GUI 应用(如 Firefox),无需额外安装 X 服务器,VirtualBox 则需要手动配置图形界面。
- 嵌套虚拟化:WSL2 支持在 Linux 环境中运行 Docker 或其他虚拟化工具,适合云原生开发,而 VirtualBox 的嵌套虚拟化配置复杂。
4. 简化的管理与更新
- 一键安装:WSL2 可通过
wsl --install
快速部署,相比 VirtualBox 的繁琐安装和配置过程更简单。 - 自动更新:WSL2 内核通过 Windows Update 自动更新,Ubuntu 发行版通过
apt
维护,管理成本低。VirtualBox 需要手动更新虚拟机镜像和扩展包。 - 存储优化:WSL2 使用虚拟硬盘(
.vhdx
)动态扩展存储,占用空间小,而 VirtualBox 虚拟机镜像通常占用较大固定空间。
5. 微软官方支持
- WSL2 是微软官方产品,与 Windows 生态高度兼容,社区活跃,更新频繁。VirtualBox 虽功能强大,但依赖第三方维护,可能存在兼容性问题。
- WSL2 提供详细的官方文档和 GitHub 社区支持,问题排查更便捷。
适用场景对比
什么时候选择 VirtualBox?
- 需要运行完整的 Linux 桌面环境(如 GNOME、KDE)或非 Ubuntu 发行版。
- 需要模拟复杂网络拓扑或多虚拟机环境。
结论:对于开发者、学生或需要在 Windows 上快速运行 Linux 环境的个人,WSL2 提供更高效、便捷的体验。对于需要完整虚拟化或特殊硬件模拟的场景,VirtualBox 可能更适合。
一、前置条件:确认操作系统支持性
在安装 WSL2 之前,需确保你的 Windows 系统满足最低要求。
Windows 11
- 默认支持 WSL2,无需额外检查。
- 推荐版本:22H2 或更高,以支持 systemd 和 WSLg(GUI 应用支持)。
Windows 10
- 最低要求:1903 版本(Build 18362) 或更高。
- 推荐版本:20H2 或更高,以获得更好的性能和功能支持。
查看系统版本
- 按
Win + R
,输入winver
,回车。 - 弹窗将显示 Windows 版本和 Build 号。
升级系统
若版本不符合要求:
- 打开 设置 > Windows 更新 检查更新。
- 或使用 Windows 10 更新助手进行升级。
提示:建议备份重要数据后再升级系统,以防意外情况。
二、安装 WSL2
WSL2 提供两种安装方式:一键安装(推荐新手)和手动安装(适合需要自定义的用户)。
方法一:一键安装(推荐)
-
以管理员身份打开 PowerShell 或 Windows Terminal。
-
执行以下命令:
wsl --install
-
系统将自动:
- 启用 WSL 和虚拟机平台功能。
- 下载并安装最新 WSL2 内核。
- 安装默认的 Ubuntu 发行版(若无其他指定)。
-
重启电脑以完成安装。
注意:若命令未自动安装 Ubuntu,可在后续步骤手动安装 Ubuntu 22.04.
方法二:手动安装
适合需要精确控制安装过程的高级用户。
-
启用必要功能:
以管理员身份运行 PowerShell,执行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
重启电脑:
shutdown /r /t 0
-
安装 WSL2 内核更新:
- 下载并安装 WSL2 Linux 内核更新包.
- 按提示完成安装。
-
设置 WSL2 为默认版本:
wsl --set-default-version 2
提示:若需确认 WSL 是否安装成功,可运行
wsl --version
检查版本信息。
三、安装 Ubuntu 22.04
Ubuntu 22.04 LTS 是长期支持版本,稳定且适合大多数开发场景。以下提供两种安装方式。
方法一:通过 Microsoft Store 安装
- 打开 Microsoft Store。
- 搜索 Ubuntu 22.04 LTS。
- 点击 获取 并安装。
- 安装完成后,启动 Ubuntu,设置用户名和密码.
方法二:通过命令行安装
-
在 PowerShell 中运行:
wsl --install -d Ubuntu-22.04
-
安装完成后,WSL 将自动启动 Ubuntu 并提示设置用户名和密码。
注意:
- 用户名和密码仅用于 Ubuntu 内部,与 Windows 账户无关。
- 若 Microsoft Store 访问受限,推荐使用命令行方式。
四、管理存储:默认位置与自定义迁移
WSL2 的虚拟硬盘文件(.vhdx
)默认占用系统盘空间,可能导致 C 盘空间不足。以下介绍如何查看默认存储位置并迁移到其他磁盘。
默认存储位置
Ubuntu 22.04 的文件默认位于:
C:\\Users\\\\AppData\\Local\\Packages\\CanonicalGroupLimited...UbuntuonWindows_...
- 包含一个扩展名为
.vhdx
的虚拟硬盘文件,存储 Ubuntu 的完整文件系统。 - 默认占用空间约为 1-2GB,随使用逐渐增长。
自定义存储位置
通过导出和导入操作,可将 Ubuntu 迁移到其他磁盘(如 D 盘)。
-
导出 Ubuntu 发行版:
wsl --export Ubuntu-22.04 D:\\WSL\\Ubuntu2204_backup.tar
- 将 Ubuntu 22.04 导出为
.tar
文件,存储在D:\\WSL
目录。
- 将 Ubuntu 22.04 导出为
-
注销旧发行版:
wsl --unregister Ubuntu-22.04
- 删除旧的 Ubuntu 发行版,释放 C 盘空间。
-
导入到新位置:
wsl --import Ubuntu-22.04 D:\\WSL\\Ubuntu2204 D:\\WSL\\Ubuntu2204_backup.tar --version 2
- 将 Ubuntu 导入到
D:\\WSL\\Ubuntu2204
目录,确保使用 WSL2。
- 将 Ubuntu 导入到
-
验证迁移:
wsl -l -v
- 确认 Ubuntu-22.04 已正确导入并运行在 WSL2。
提示:
- 迁移后,建议定期备份
.tar
文件以便恢复。- 若需调整虚拟硬盘大小,可使用
wsl --manage
命令(Windows 11 24H2 及以上支持)。
五、WSL2 常用命令速查
以下是管理 WSL2 的核心命令,建议收藏以便随时参考。
wsl --list
/ -l
wsl --list --verbose
/ -l -v
wsl --set-version 2
wsl --set-default
wsl --set-default-version 2
wsl --shutdown
wsl --terminate
wsl --unregister
wsl --export
wsl --import
提示:使用
wsl --help
可查看完整命令列表。
六、性能优化:配置 .wslconfig
WSL2 的性能可以通过全局配置文件 .wslconfig
进行优化,文件位于:
C:\\Users\\\\.wslconfig
若文件不存在,需手动创建。
推荐配置模板
[wsl2]memory=6GB # 限制最大内存使用量processors=4 # 指定 CPU 核心数swap=8GB # 交换空间大小swapFile=D:\\WSL\\swap.vhdx # 自定义 swap 文件路径autoMemoryReclaim=true # 自动回收未使用内存localhostForwarding=true # 启用 localhost 端口转发guiApplications=true # 启用 WSLg(GUI 应用支持)gpu=true # 启用 GPU 加速(需支持的 GPU 驱动)dns=8.8.8.8 # 使用 Google DNSnetworkingMode=mirrored # 启用镜像网络模式(支持 IPv6)firewall=true # 启用 WSL 防火墙集成autoProxy=true # 自动使用 Windows 代理nestedVirtualization=true # 启用嵌套虚拟化(适合运行 Docker 等)
参数详解
memory
processors
swap
swapFile
autoMemoryReclaim
localhostForwarding
guiApplications
gpu
dns
networkingMode
mirrored
支持双栈网络(IPv4/IPv6)。firewall
autoProxy
nestedVirtualization
应用配置
-
保存
.wslconfig
文件。 -
执行:
wsl --shutdown
-
重新启动 WSL 或重启电脑。
参考资料
- Microsoft Learn - WSL 配置文档
七、Ubuntu 内部配置:/etc/wsl.conf
/etc/wsl.conf
是 WSL2 发行版内部的配置文件,用于控制挂载、网络和启动行为。
推荐配置模板
[boot]systemd=true[automount]enabled=trueroot=/mnt/options=\"metadata,umask=22,fmask=11\"[network]generateHosts=truegenerateResolvConf=false[interop]enabled=trueappendWindowsPath=true[user]default=
参数详解
[boot]
systemd
[automount]
enabled
[automount]
root
/mnt/
。[automount]
options
metadata
启用文件权限映射。[network]
generateHosts
/etc/hosts
文件。[network]
generateResolvConf
/etc/resolv.conf
(设为 false 可自定义 DNS)。[interop]
enabled
[interop]
appendWindowsPath
[user]
default
应用配置
-
在 Ubuntu 中编辑
/etc/wsl.conf
:
sudo nano /etc/wsl.conf
-
保存后,重启 WSL:
wsl --shutdown
提示:若需自定义 DNS,可手动编辑
/etc/resolv.conf
,并确保generateResolvConf=false
。
八、常见问题排查与解决方案
以下是 WSL2 使用中的常见问题及解决方法。
1. Ubuntu 启动提示 systemd 无效
原因:Windows 版本不支持 systemd 或配置错误。
解决:
- 确保系统为 Windows 11 22H2 或更高(运行
winver
检查)。 - 确认
/etc/wsl.conf
中[boot] systemd=true
。 - 执行
wsl --shutdown
后重试。
2. 网络访问异常(如无法访问公网)
原因:DNS 解析失败或网络模式配置错误。
解决:
-
在
.wslconfig
中设置:
dns=8.8.8.8networkingMode=mirrored
-
清理 Windows DNS 缓存:
ipconfig /flushdnswsl --shutdown
-
检查 Windows 防火墙,确保未阻止 WSL 网络流量。
3. WSL2 占用内存过高
原因:WSL2 默认动态分配内存,可能占用过多资源。
解决:
-
在
.wslconfig
中限制内存:
memory=4GBautoMemoryReclaim=true
-
定期运行
wsl --shutdown
释放内存。
4. 如何彻底重置 WSL?
步骤:
-
注销发行版:
wsl --unregister Ubuntu-22.04
-
关闭 WSL:
wsl --shutdown
-
(可选)禁用 WSL 功能:
- 打开 控制面板 > 程序和功能 > 启用或关闭 Windows 功能。
- 取消勾选 适用于 Linux 的 Windows 子系统 和 虚拟机平台。
- 重启后重新启用。
5. WSLg(GUI 应用)无法运行
原因:Windows 11 配置或驱动问题。
解决:
- 确保系统为 Windows 11 且启用 WSLg(
.wslconfig
中guiApplications=true
)。 - 更新 GPU 驱动。
- 安装 X11 服务器(如
VcXsrv
)作为备用。
九、扩展功能与进阶用法
1. 使用 Windows Terminal
- 安装 Windows Terminal(Microsoft Store 提供),统一管理 WSL、PowerShell 和 CMD。
- 支持多标签页、自定义主题和快捷键,提升终端体验。
2. 运行 GUI 应用(WSLg)
-
Windows 11 支持 WSLg,可直接运行 Linux GUI 应用(如
gedit
、firefox
)。 -
安装示例:
sudo apt updatesudo apt install firefoxfirefox
3. 在 WSL2 中运行 Docker
- 启用嵌套虚拟化(
.wslconfig
中nestedVirtualization=true
)。 - 安装 Docker Desktop 并启用 WSL2 后端,或直接在 Ubuntu 中安装 Docker CE.
4. 集成开发环境
-
在 WSL2 中安装 VS Code Server,结合 Windows 的 VS Code 实现无缝开发。
-
示例:
curl -fsSL https://code-server.dev/install.sh | shcode-server
十、📄 WSL2 快速参考卡片(A4 一页版)
一页速查,涵盖安装、管理和优化,适合打印或保存为 PDF。
安装与管理
# 一键安装 WSL2wsl --install# 安装 Ubuntu 22.04wsl --install -d Ubuntu-22.04# 查看发行版wsl -l -v# 设置默认 WSL2wsl --set-default-version 2# 关闭 WSLwsl --shutdown
性能优化:.wslconfig
路径:C:\\Users\\\\.wslconfig
[wsl2]memory=6GBprocessors=4swap=8GBautoMemoryReclaim=truenetworkingMode=mirroredguiApplications=true
内部配置:/etc/wsl.conf
[boot]systemd=true[automount]enabled=trueoptions=\"metadata\"[network]generateResolvConf=false
快速排查
- Systemd 无效:检查 Windows 11 22H2+ 和
/etc/wsl.conf
。 - 内存过高:设置
memory=4GB
和autoMemoryReclaim=true
。 - 网络问题:启用
networkingMode=mirrored
和dns=8.8.8.8
。
十一、总结与资源推荐
WSL2 是一个强大的工具,将 Linux 的灵活性与 Windows 的易用性结合,为开发者提供了高效的跨平台开发环境。通过本文的指南,你可以:
- 快速安装并配置 WSL2 和 Ubuntu 22.04。
- 优化存储、内存和网络性能。
- 排查常见问题并探索进阶功能。
推荐资源
- Microsoft WSL 官方文档
- Ubuntu 官方 WSL 教程
- WSL GitHub 社区
- Windows Terminal 自定义指南