当前位置: 首页 > news >正文

WSL释放空间

在 WSL (Windows Subsystem for Linux) 中,Linux 发行版可能会占用越来越多的磁盘空间,即使删除文件后,空间也可能不会自动释放。这是因为 WSL 使用虚拟硬盘(VHDX 文件)来存储 Linux 文件系统,而 Windows 不会自动回收未使用的空间。下面介绍几种释放 WSL 磁盘空间的方法。

一. 清理 WSL 磁盘空间

1. 在 Linux 中清理不必要的文件

#清理 apt 缓存(Ubuntu/Debian)
sudo apt clean#删除不再需要的软件包
sudo apt autoremove#查找并删除大文件(例如日志文件)
sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
sudo journalctl --vacuum-size=50M  # 清理 systemd 日志#删除临时文件
sudo rm -rf /tmp/*

2. 在 Windows 中手动压缩 WSL 虚拟磁盘

WSL 2 使用 ext4.vhdx 文件存储数据,即使删除文件,该文件也不会自动缩小。可以手动压缩:

powershell
#2.1. 关闭 WSL
wsl --shutdown#2.2. 找到你的 WSL 发行版名称(如 Ubuntu-22.04)
wsl -l -v#2.3. 导出 WSL 发行版(可选备份)
wsl --export <发行版名称> <备份文件.tar>
# 例如:wsl --export Ubuntu-22.04 Ubuntu-backup.tar#2.4. 注销当前发行版(会删除数据!)
wsl --unregister <发行版名称># 2.5. 重新导入发行版(使用之前备份的 tar 文件)
wsl --import <发行版名称> <安装路径> <备份文件.tar> --version 2
# 例如:wsl --import Ubuntu-22.04 C:\WSL\Ubuntu Ubuntu-backup.tar --version 2#2.6. 设置默认用户(如果是 Ubuntu)
ubuntu2204.exe config --default-user <用户名>
⚠️ 注意:此方法会完全重建 WSL 发行版,确保先备份重要数据!

二. 使用 diskpart 压缩 WSL 虚拟磁盘

如果不想重新导入 WSL,可以尝试手动压缩 ext4.vhdx 文件:

powershell
#1. 关闭 WSL
wsl --shutdown#2. 打开 diskpart
diskpart#3. 选择 WSL 虚拟磁盘
select vdisk file="C:\Users\<你的用户名>\AppData\Local\Packages\<WSL发行版>\LocalState\ext4.vhdx"
如:select vdisk file="C:\Users\Lenovo\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"#4. 压缩磁盘
compact vdisk#5. 退出 diskpart
exit
📌 提示:ext4.vhdx 的路径可能不同,可以在 %LOCALAPPDATA%\Packages 下查找。

三. 调整 WSL 2 最大磁盘占用

WSL 2 默认会动态扩展磁盘,但可以限制其最大大小:

创建或编辑 %USERPROFILE%.wslconfig 文件:

ini
[wsl2]
memory=4GB    # 限制内存
swap=2GB      # 限制交换空间
localhostForwarding=true
disk=50GB     # 限制最大磁盘占用(例如 50GB)
重启 WSL:powershell
wsl --shutdown

四. 使用 wsl --export 和 --import 重建 WSL

如果 WSL 占用空间过大,可以导出并重新导入:

powershell
#1. 导出当前 WSL 发行版
wsl --export Ubuntu-22.04 Ubuntu-22.04-backup.tar#2. 注销旧发行版
wsl --unregister Ubuntu-22.04#3. 重新导入(可选择新位置)
wsl --import Ubuntu-22.04 C:\WSL\Ubuntu Ubuntu-22.04-backup.tar --version 2#4. 设置默认用户
ubuntu2204.exe config --default-user <用户名>

 总结

WSL磁盘空间清理方法对比
方法适用情况效果
apt clean + autoremove清理临时文件释放部分空间
diskpart compact手动压缩 VHDX减少虚拟磁盘占用
.wslconfig 限制大小防止 WSL 占用过多空间长期控制
wsl --export/import彻底重建 WSL最有效但较麻烦

建议先尝试 方法 一(清理 Linux 缓存) 和 方法 二(diskpart 压缩),如果仍然占用过高,再考虑 方法 四(重建 WSL)。

http://www.xdnf.cn/news/197767.html

相关文章:

  • ‌wangEditor 所有菜单项分类、说明及隐藏方法
  • Java项目场景题深度解析
  • Termux - Android终端应用与Linux环境
  • Java读Excel:解析阿里云easyExcel导入文件的行号
  • vmare pro安装报错用户在命令行上发出了EULAS_AGREED=1,表示不接受许可协议的错误解决方法
  • 高压开关柜局部放电信号分析系统
  • C/C++链表的常用操作实现
  • three.js后处理原理及源码分析
  • HTML5好看的水果蔬菜在线商城网站源码系列模板7
  • 文档在线协同工具ONLYOFFICE教程:如何使用宏突出显示具有特定提示文本的空文本字段
  • window 图形显示驱动-在 WDDM 1.2 中提供无缝状态转换(下)
  • 系统架构师2025年论文《论面向对象的软件设计——UML 在面向对象软件架构中的应用》
  • leetcode 876. 链表的中间结点
  • Python 实现的运筹优化系统数学建模详解(动态规划模型)
  • 第二阶段:基础加强阶段总体介绍
  • 网络安全怎么入门?快速了解
  • 基于大模型的公安预审办案笔录分析的挑战与应对策略-3
  • 2025汽车制造企业数字化转型路径参考
  • TypeScript之基础知识
  • vue报错:Loading chunk * failed,vue-router懒加载出错问题。
  • C++复习补充 类型转换和RTTI
  • 人工智能与机器学习:Python从零实现K-Means 算法
  • RAG工程-基于LangChain 实现 Advanced RAG(预检索优化)
  • 驱动开发硬核特训 │ Regulator 子系统全解
  • 企业架构之旅(2):解锁TOGAF ADM
  • 什么是 DDoS 攻击?高防 IP 如何有效防护?2025全面解析与方案推荐
  • 风力发电领域canopen转Profinet网关的应用
  • echarts X轴是日期,Y轴是文字
  • 【mysql】python+agent调用
  • 算法相关概念