WSL 安装与 C 盘空间优化指南
WSL 安装与 C 盘空间优化指南
适用场景:全新安装 WSL,希望将系统安装在非系统盘(如 D/E 盘),避免 C 盘空间被占用。
一、准备工作
1.1 确认系统版本
-
Windows 10 版本 2004 及以上,或 Windows 11
-
在 PowerShell 中运行
winver查看版本号
1.2 以管理员身份打开 PowerShell
-
右键点击"开始"菜单 → "终端(管理员)" 或 "Windows PowerShell(管理员)"
二、一键安装到指定盘符(推荐)
直接指定安装位置,一步到位,无需后期迁移。
wsl --install -d Ubuntu --location "D:\WSL\Ubuntu"
将
D:\WSL\Ubuntu替换为你想要安装的目标路径(如E:\WSL\Ubuntu)
执行过程说明
-
系统会自动启用 WSL 功能
-
下载并安装 Ubuntu 发行版
-
如果提示需要重启,请先重启电脑,然后再次执行上述命令
三、完成初始配置
安装完成后,首次打开 Ubuntu(或在 PowerShell 中输入 wsl),系统会提示:
-
设置用户名:输入你想要的用户名(如
cico) -
设置密码:输入两次密码(屏幕不会显示,正常输入即可)
-
数据收集选项:输入
y(同意)或n(拒绝),不影响功能
配置完成后,进入 Ubuntu 终端,看到 用户名@电脑名:~$ 提示符即表示成功。
四、验证安装位置是否正确
wsl -l -v
查看 Ubuntu 是否在列表中,然后打开文件管理器,前往你指定的安装目录(如 D:\WSL\Ubuntu),确认存在 ext4.vhdx 文件。
✅ 如果
ext4.vhdx在目标目录,说明安装成功,C 盘不会被占用。
五、WSL 服务启动类型优化(可选)
5.1 服务说明
WSL 在后台运行一个系统服务,负责管理 Windows 与 Linux 子系统之间的通信。
| 服务名称 | 作用 |
|---|---|
WSL Service |
WSL 核心服务,负责发行版的管理和通信 |
5.2 默认行为
-
该服务默认为手动(Manual)启动类型
-
当输入
wsl命令或打开 Ubuntu 时,系统自动启动该服务 -
当执行
wsl --shutdown后,该服务自动停止
✅ 默认即为"手动"类型,无需额外设置即可实现"用时启动,退出停止"的效果。
5.3 如何查看当前状态
在 PowerShell 中运行:
Get-Service "WSL Service"
输出示例:
Status Name DisplayName ------ ---- ----------- Stopped WSL Service WSL Service
5.4 如何手动设置为"手动"(如已被修改)
如果该服务被设置为"禁用"或其他类型,可按以下步骤恢复:
方法一:图形界面
-
按
Win + R,输入services.msc,回车 -
在列表中找到
WSL Service -
右键 → 属性 → 启动类型选择 "手动"
-
点击"确定"保存
方法二:命令行(管理员 PowerShell)
sc config "WSL Service" start= demand
5.5 ⚠️ 重要警告
| 操作 | 后果 |
|---|---|
| 设置为手动(Manual) | ✅ 正常,按需启动 |
| 设置为自动(Auto) | ⚠️ 开机常驻,额外占用内存 |
| 设置为禁用(Disabled) | ❌ WSL 完全无法使用 |
绝对不要将服务设置为"禁用",否则任何
wsl命令都会报错,需重新启用才能恢复。
5.6 验证"手动"模式是否生效
-
执行
wsl --shutdown关闭所有发行版 -
在任务管理器中确认
WSL Service处于"已停止"状态 -
在 PowerShell 中输入
wsl启动 Ubuntu -
回到任务管理器,
WSL Service应自动变为"正在运行"
六、内存与进程管理
6.1 WSL 进程说明
| 进程名称 | 作用 | 是否可关闭 |
|---|---|---|
VmmemWSL |
WSL 虚拟机核心进程,占用内存较大 | ✅ 可关闭 |
WSL Service |
WSL 系统服务,占用极小 | ❌ 建议保留,已设为手动 |
6.2 关闭 WSL 释放内存
wsl --shutdown
执行后,VmmemWSL 进程会立即结束,内存被释放。WSL Service 也会随之自动停止(前提是启动类型为"手动")。
6.3 只关闭特定发行版
wsl -t Ubuntu
七、C 盘空间占用分析
7.1 WSL 在 C 盘的残留位置
| 路径 | 内容 | 大小 |
|---|---|---|
C:\Program Files\WindowsApps |
WSL 程序文件 | 较小(必须保留) |
C:\Windows\System32\lxss |
WSL 内核文件 | 较小(必须保留) |
%USERPROFILE%\AppData\Local\Temp\ |
临时文件(如 wsl.msi) |
可删除 |
%USERPROFILE%\AppData\Local\Temp\swap.vhdx |
交换文件(虚拟内存) | 可迁移或删除 |
7.2 清理临时文件
Temp 目录下的 wsl.msi、wsl_update_x64.msi 等文件是安装包缓存,可以安全删除,不影响 WSL 正常运行。
八、迁移交换文件(swap.vhdx)到其他盘
默认交换文件在 C 盘,可以迁移到 E 盘或其他盘:
8.1 创建配置文件
在 %USERPROFILE% 目录(即 C:\Users\你的用户名)下创建 .wslconfig 文件。
8.2 写入以下内容
[wsl2]
swapfile=E:\\wslswapfile\\wsl-swap.vhdx
将
E:\\wslswapfile替换为目标路径,注意使用双反斜杠\\
8.3 重启 WSL 使配置生效
wsl --shutdown
然后重新打开 WSL,新的 swap 文件会在指定位置生成,旧的可以手动删除。
九、附录:常见命令速查
| 命令 | 作用 |
|---|---|
wsl --install -d <发行版> --location <路径> |
安装到指定位置 |
wsl -l -v |
查看已安装的发行版列表 |
wsl --shutdown |
关闭所有 WSL 发行版 |
wsl -t <发行版名> |
关闭指定的发行版 |
wsl --export <发行版名> <导出路径> |
导出发行版为 tar 文件 |
wsl --unregister <发行版名> |
注销并删除发行版 |
wsl --import <发行版名> <安装路径> <tar文件> --version 2 |
从 tar 文件导入发行版 |
Get-Service "WSL Service" |
查看 WSL 服务状态 |
sc config "WSL Service" start= demand |
将 WSL 服务设为手动 |
十、常见问题排查
Q1:安装时提示"直到重新启动系统前更改将不会生效"
解决:重启电脑,然后再次执行安装命令。
Q2:安装后 ext4.vhdx 不在指定目录
解决:使用 --export → --unregister → --import 三部曲迁移到目标盘。
Q3:wsl --install 不支持 --location 参数
解决:系统版本较旧,先用 wsl --install -d Ubuntu 安装,再按迁移流程处理。
Q4:设置了"手动"后 WSL 无法启动
检查:确认服务没有被误设为"禁用"。运行 sc config "WSL Service" start= demand 恢复。
十一、总结
| 优化项 | 操作 | 效果 |
|---|---|---|
| 安装到其他盘 | --location 参数 |
✅ 主体文件不占 C 盘 |
| 服务设为手动 | sc config "WSL Service" start= demand |
✅ 用时启动,退出停止 |
| 定期关闭释放内存 | wsl --shutdown |
✅ 释放内存占用 |
| 迁移 swap 文件 | .wslconfig 配置 |
✅ 释放 C 盘额外空间 |
| 清理 Temp 临时文件 | 手动删除 wsl.msi 等 |
✅ 释放少量临时空间 |
按照本指南操作,WSL 的核心文件、虚拟硬盘、交换文件均可放置在非系统盘,服务按需启动不常驻后台,C 盘空间将长期保持清爽。🎯
📌 文档版本:1.0 | 基于 Windows 11 / WSL 2 实测
浙公网安备 33010602011771号