WSL 安装与 C 盘空间优化指南

WSL 安装与 C 盘空间优化指南

适用场景:全新安装 WSL,希望将系统安装在非系统盘(如 D/E 盘),避免 C 盘空间被占用。

一、准备工作

1.1 确认系统版本

  • Windows 10 版本 2004 及以上,或 Windows 11

  • 在 PowerShell 中运行 winver 查看版本号

1.2 以管理员身份打开 PowerShell

  • 右键点击"开始"菜单 → "终端(管理员)" 或 "Windows PowerShell(管理员)"

二、一键安装到指定盘符(推荐)

直接指定安装位置,一步到位,无需后期迁移。

powershell
wsl --install -d Ubuntu --location "D:\WSL\Ubuntu"

D:\WSL\Ubuntu 替换为你想要安装的目标路径(如 E:\WSL\Ubuntu

执行过程说明

  1. 系统会自动启用 WSL 功能

  2. 下载并安装 Ubuntu 发行版

  3. 如果提示需要重启,请先重启电脑,然后再次执行上述命令

三、完成初始配置

安装完成后,首次打开 Ubuntu(或在 PowerShell 中输入 wsl),系统会提示:

  1. 设置用户名:输入你想要的用户名(如 cico

  2. 设置密码:输入两次密码(屏幕不会显示,正常输入即可)

  3. 数据收集选项:输入 y(同意)或 n(拒绝),不影响功能

配置完成后,进入 Ubuntu 终端,看到 用户名@电脑名:~$ 提示符即表示成功。

四、验证安装位置是否正确

powershell
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 中运行:

powershell
Get-Service "WSL Service"

输出示例:

text
Status   Name               DisplayName
------   ----               -----------
Stopped  WSL Service        WSL Service

5.4 如何手动设置为"手动"(如已被修改)

如果该服务被设置为"禁用"或其他类型,可按以下步骤恢复:

方法一:图形界面

  1. Win + R,输入 services.msc,回车

  2. 在列表中找到 WSL Service

  3. 右键 → 属性 → 启动类型选择 "手动"

  4. 点击"确定"保存

方法二:命令行(管理员 PowerShell)

powershell
sc config "WSL Service" start= demand

5.5 ⚠️ 重要警告

 
操作后果
设置为手动(Manual) ✅ 正常,按需启动
设置为自动(Auto) ⚠️ 开机常驻,额外占用内存
设置为禁用(Disabled) ❌ WSL 完全无法使用

绝对不要将服务设置为"禁用",否则任何 wsl 命令都会报错,需重新启用才能恢复。

5.6 验证"手动"模式是否生效

  1. 执行 wsl --shutdown 关闭所有发行版

  2. 在任务管理器中确认 WSL Service 处于"已停止"状态

  3. 在 PowerShell 中输入 wsl 启动 Ubuntu

  4. 回到任务管理器,WSL Service 应自动变为"正在运行"

六、内存与进程管理

6.1 WSL 进程说明

 
进程名称作用是否可关闭
VmmemWSL WSL 虚拟机核心进程,占用内存较大 ✅ 可关闭
WSL Service WSL 系统服务,占用极小 ❌ 建议保留,已设为手动

6.2 关闭 WSL 释放内存

powershell
wsl --shutdown

执行后,VmmemWSL 进程会立即结束,内存被释放。WSL Service 也会随之自动停止(前提是启动类型为"手动")。

6.3 只关闭特定发行版

powershell
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.msiwsl_update_x64.msi 等文件是安装包缓存,可以安全删除,不影响 WSL 正常运行。

八、迁移交换文件(swap.vhdx)到其他盘

默认交换文件在 C 盘,可以迁移到 E 盘或其他盘:

8.1 创建配置文件

%USERPROFILE% 目录(即 C:\Users\你的用户名)下创建 .wslconfig 文件。

8.2 写入以下内容

ini
[wsl2]
swapfile=E:\\wslswapfile\\wsl-swap.vhdx

E:\\wslswapfile 替换为目标路径,注意使用双反斜杠 \\

8.3 重启 WSL 使配置生效

powershell
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 实测

posted @ 2026-07-16 14:30  卖雨伞的小男孩  阅读(90)  评论(0)    收藏  举报