双配置体系
WSL 2 使用两个配置文件,作用范围不同:
配置生效规则
修改配置后必须等待运行该发行版的子系统完全停止再重启,更改才会生效。通常需要关闭发行版 shell 的所有实例后约 8 秒。
可以通过以下命令检查发行版是否仍在运行:
如果没有运行中的发行版(返回「没有正在运行的分发版」),重启发行版即可看到配置更新生效。
快速重启所有 WSL 实例:
仅关闭指定发行版:
[!warning]
wsl --shutdown会关闭所有正在运行的发行版,操作前注意保存工作。
wsl.conf 详解
文件路径:/etc/wsl.conf,位于 Linux 发行版内部。
[automount] 自动装载
自动装载选项(options 字段可用值):
[network] 网络
[interop] 互操作
[user] 用户
[!note]
default设置对导入的发行版不生效。导入的发行版只能通过wsl.conf的[user]节修改默认用户。
[boot] 启动
[gpu] GPU
[time] 时间
wsl.conf 完整示例
.wslconfig 详解
文件路径:%USERPROFILE%\.wslconfig(即 C:\Users\<用户名>\.wslconfig),位于 Windows 侧。文件不存在需手动创建。
[!tip] 建议通过 Windows 开始菜单中的「WSL 设置」修改配置,而非手动编辑此文件。
[wsl2] 主要设置
标记 ¹ 的设置仅适用于 Windows 11。标记 ² 的设置需要 Windows 11 22H2 或更高。
大小值格式:默认单位为字节,可省略单位。使用其他单位时需追加后缀,如 8GB、512MB。
路径值格式:必须是带转义反斜杠的 Windows 路径,如 C:\\Temp\\myCustomKernel。
[experimental] 实验性设置
.wslconfig 完整示例
[!tip] 实际开发中,最常需要调整的是
memory(根据物理内存设置 25%-40%)、processors(设置为一半核心数)和autoMemoryReclaim(设为gradual防止内存持续增长)。其余设置使用默认值即可。
命令速查
以下命令在 PowerShell 或 CMD 中执行。在 Bash/Linux 终端中使用时,将 wsl 替换为 wsl.exe。
安装与更新
发行版管理
运行与用户
导入与导出
磁盘操作
IP 地址查询
弃用命令
以下命令已弃用,不应继续使用:wslconfig.exe、bash(旧语法)、lxrun。
systemd 服务管理
启用 systemd
新安装的 WSL(wsl --install)默认已启用 systemd。如果未启用:
- 编辑
/etc/wsl.conf:
- 添加以下内容:
- 关闭并重启 WSL:
- 验证:
架构影响
启用 systemd 后,WSL init 进程成为 systemd 的子进程(而非 PID 1)。这意味着:
- 系统关闭由 systemd 控制
- 服务不会保持 WSL 实例活跃(WSL 仍在原有规则下管理实例生命周期)
常用 systemd 操作
systemd 应用示例
snap 包管理(Canonical 的软件打包系统):
MicroK8s(轻量级 Kubernetes):
[!note] 使用 systemd 需要确保 WSL 版本为 0.67.6 或更高。通过
wsl --version检查,通过wsl --update更新。
磁盘空间管理
VHD 存储原理
WSL 2 使用虚拟硬盘(VHD,文件名为 ext4.vhdx,ext4 文件系统格式)存储每个发行版的文件。VHD 会随使用自动增长,默认最大分配空间:
- WSL 0.58.0 之前:512GB(更早版本为 256GB)
- WSL 0.58.0 及之后:1TB
检查磁盘空间
输出字段说明:
扩展 VHD 大小
方法一:wsl --manage(WSL 2.5+)
支持的大小格式:<数值>B/M/MB/G/GB/T/TB,不支持小数。
方法二:diskpart 手动操作
-
关闭所有 WSL 实例:
wsl --shutdown -
找到 .vhdx 文件路径:
- 以管理员身份打开 CMD,启动 diskpart:
- 在 DISKPART 提示中:
maximum 的值必须大于当前虚拟大小,单位为 MB。例如扩展到 2TB:maximum=2097152。
- 启动发行版并扩展文件系统:
修复 VHD 装载错误
如果遇到「装载分发磁盘」错误,发行版可能进入了只读模式(因突然断电等原因)。表现为:
修复步骤:
-
关闭 WSL:
wsl --shutdown -
挂载 VHD(替换
<vhdx路径>为实际路径):
- 查找块设备名称:
- 修复文件系统(替换
<device>为块设备名,如sdc):
- 卸载:
[!warning] 不要使用
sudo mount -o remount,rw /强制解除只读,因为所有更改仅在内存中,重启后会丢失。请使用上述 e2fsck 方法。
相关推荐
WSL 2 高级场景实战
WSL 2 的进阶使用场景,涵盖 NAT 与镜像网络模式配置、VPN/代理适配、Linux GUI 应用运行、GPU 加速机器学习、USB 设备连接,以及自定义 Linux 发行版导入。
WSL2 安装 Arch Linux 完整指南
在 WSL2 中安装 Arch Linux 的完整步骤,包括系统初始化、镜像源配置、用户创建、systemd 启用、开发环境搭建,以及与已有 Ubuntu 共存的注意事项。
WSL 2 启动崩溃排查与性能调优实战
从 WSL2 启动崩溃排查到性能调优的完整实战指南,涵盖 shell 配置错误修复、内存 CPU 分配策略和 Turborepo 多应用并发优化。
WSL 2 架构与版本选型指南
从底层架构理解 WSL 2 的工作原理,通过 WSL 1 vs WSL 2 的全面对比做出正确的版本选型决策,并掌握从安装到开发环境搭建的完整流程。