news 2026/8/7 19:44:40

WSL2 使用的 VHDX正确压缩过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WSL2 使用的 VHDX正确压缩过程

原因:WSL2 使用的 VHDX 是 “动态扩展磁盘”,只会变大,不会自动变小

你在 WSL 里删除文件,其实只是:

  • ext4 文件系统内部释放了空间
  • 但 VHDX外层虚拟磁盘文件并不会回收空间

就像你删除了里面的东西,但外面的“箱子”不会缩小。


要让 VHDX 变小,需要满足两个条件

① ext4 内部块真正被标记为空闲(rm/clean/autoremove 已做)

② WSL 彻底关闭后,用 Windows 的工具进行 VHDX 压缩(关键)


你可能遇到的问题:

你清理了内容,但压缩没有成功 或 WSL 没有完全停止

让我们确保你正确执行下面的操作。


正确压缩 VHDX 的步骤(必须严格按顺序)

1. 完全关闭所有 WSL 实例、后台 service 和 Docker(如果有)

PowerShell 执行:

wsl--shutdown

如果你使用 Docker Desktop,需要确保:
⚠ Docker Desktop 不要使用 WSL2 或需要关闭 Docker
否则 WSL 会被 Docker 占用,无法压缩。


2. 使用 Optimize-VHD 压缩(最关键的一步)

PowerShell(管理员模式):

Optimize-VHD-Path"C:\Users\ddooo\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"-Mode Full

⚠ 常见错误原因:

  1. 报错:Optimize-VHD 命令不存在
    → 说明你没有启用 Hyper-V 模块
    执行:

    Enable-WindowsOptionalFeature-Online-FeatureName Microsoft-Hyper-V-All
  2. 报错:磁盘被占用 / 文件锁定
    → 通常是 WSL 没有完全关掉 或 Docker 占用
    再次执行:

    wsl--shutdown
  3. PowerShell 未以管理员模式运行
    → 右键“以管理员身份运行”


经过压缩后 VHDX 会真正变小

比如原来:

ext4.vhdx = 40 GB

删除大文件后,压缩后可能变为:

ext4.vhdx = 12 GB

如果 VHDX 仍未变小,可能是这几种情况:

1. ext4 上还有被占用的空间

检查:

df-hdu-sh /*

特别注意:

  • /var/lib/docker(如果你装了 Docker)
  • /usr/local(模型文件、toolchains)
  • ~/.conda
  • .cache文件夹

2. 你删除的大文件在另一个挂载点 /drv/c 之类的 Windows 文件系统

WSL 删除Windows 目录下的文件不会影响 VHDX 大小。


3. ext4 文件系统存在“碎片”

需要在 WSL 内执行:

sudofstrim -v /

然后再:

wsl--shutdownOptimize-VHD-Mode Full

总结:为什么删除文件后 VHDX 不变小?

原因解释
VHDX 是动态扩展,不会自动缩小必须用 Optimize-VHD
WSL 未关闭文件锁定无法回收
Docker 或后台服务占用 WSLVHDX 不能压缩
未启用 Hyper-VOptimize-VHD 不能运行
ext4 未执行 fstrim空闲块未标记
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 17:43:01

2025 年广州服装批发市场推荐:原创与效率双驱采批标杆

中国服装协会《2024-2025 中国服装行业发展报告》显示,广州服装批发市场作为华南服饰流通核心,2024 年原创商户交易额占比达 45%,数字化配套完善的市场采批效率提升 30%。本次推荐 5 大市场:apM 时代国际(中韩原创&…

作者头像 李华
网站建设 2026/8/5 23:09:05

记录vue动态切换访问后台服务

1.在public文件夹内的配置文件配置服务ipconst VUE_APP_URL http://127.0.0.1:2222 // 在线服务器地址 const VUE_APP_URL2 http://127.0.0.1:1111 // 离线本地地址 const IS_FLAG "true" // 是否启用在线离线切换 const IS_STATUS "onLine" // 初始化…

作者头像 李华
网站建设 2026/8/7 15:36:39

stm32 adc采集光敏传感器模块的模拟输出脚A0的值

#include "stm32f10x.h" // Device header #include "delay.h" #include "stdio.h" unsigned int a; int fputc(int ch, FILE *f)//重定义打印函数,可以使用printf { while(USART_GetFlagStatus(USART1, USAR…

作者头像 李华
网站建设 2026/8/6 5:23:26

银发旅游崛起:退休后的“第二人生”革命

今年秋天,朋友圈里最活跃的不是年轻人,而是一群“银发旅行家”。62岁的兰姐从山西阳泉出发,一路打卡悬空寺、平遥古城,还计划年底去西藏。她的朋友圈几乎每天都在更新:自拍、风景、姐妹合照。儿子留言让她注意安全&…

作者头像 李华
网站建设 2026/8/6 5:05:30

3步精通Eino框架:构建企业级Go语言AI应用

3步精通Eino框架:构建企业级Go语言AI应用 【免费下载链接】eino 项目地址: https://gitcode.com/GitHub_Trending/ei/eino 想要快速掌握Eino框架,在Go语言AI开发领域脱颖而出?本文为你揭示从零到一的完整学习路径,让你在3…

作者头像 李华
网站建设 2026/8/7 18:54:03

如何让文件秒变二维码?文件生成二维码技巧

想把合同、简历、课件等文件快速分享给他人,却嫌上传邮箱、发链接太麻烦?其实只要把文件放进二维码里,对方扫码就能直接查看或下载,省时又高效。不用复杂技术,跟着下面的步骤操作,一分钟就能实现文件生成二维码&#…

作者头像 李华