news 2026/9/3 11:08:10

优化解决Windows的Linux子系统WSL中的虚拟硬盘文件VHDX空间占用问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
优化解决Windows的Linux子系统WSL中的虚拟硬盘文件VHDX空间占用问题

前言

在使用Windows Subsystem for Linux (WSL) 的过程中,会遇到一个问题:随着时间的推移,VHDX 文件会不断增大,即使已经删除了大量的文件。这是因为文件系统在删除文件后,并不会立即释放这些空间,而是标记这些块为可回收,等待回收机制来清理它们。

问题描述

在使用Windows的Linux子系统时,遇到了一个Ubuntu的WSL实例,经过一段时间的使用,发现这个VHDX文件的体积已经变得非常大,甚至超过了实际使用的容量,磁盘已经变红,发出了警告。同时也有通过Windows的文件管理器访问\\wsl.localhost\Ubuntu\root进行了相关清理操作,但是Windows的磁盘空间不曾减少!

问题分析

Linux子系统有更改存储路径,存储在D:\VM\Ubuntu\ext4.vhdx文件中,可以明显发现这个文件大小非常巨大,它就是磁盘变红告警的罪魁祸首!

文件系统特性:

ext4是一个 Linux 原生的文件系统,而 Windows 并不直接支持它。Windows子系统 (WSL) 使用一个虚拟硬盘文件 (VHDX) 来模拟 Linux 环境。

空间回收问题:

当在WSL中删除文件时,这些文件在Linux环境中被标记为已删除,但实际上数据仍然存在于VHDX文件中。Windows并不知道这些文件已经被删除,所以VHDX文件的大小不会自动缩小。

文件系统和磁盘映像的差异:

文件系统删除文件时,它只是移除了文件的引用,但数据块可能仍然保留。 VHDX是一个磁盘映像,它不会自动调整大小来反映文件系统的变化。

解决方案

1.标记回收

启动WSL的实例,如Ubuntu子系统,使用fstrim命令来通知文件系统哪些块是可以回收的,以root权限运行以下命令

sudofstrim /

2.关闭所有Linux子系统

wsl--shutdown

3.压缩VHDX

可以使用Windows自带的磁盘管理工具Optimize-VHD进行手动压缩VHDX,以管理员权限打开PowerShell,执行以下命令:

Optimize-VHD-Path'D:\VM\Ubuntu\ext4.vhdx'-ModeFull

执行上述命令后,可以在PowerShell中看到如下类似的磁盘空间压缩进度条,当压缩完毕后可以发现ext4.vhdx虚拟硬盘文件空间将大幅减小!

注意

如果遇到如下异常:

PS C:\Users\Administrator>Optimize-VHD-Path'D:\VM\Ubuntu\ext4.vhdx'-ModeFull Optimize-VHD:由于找不到某个对象,Hyper-V 尝试在计算机“DESKTOP-AAAAAA”上访问该对象时遇到错误。请验证该计算机上的虚 拟机管理服务是否正在运行。 所在位置 行:1 字符:1+ Optimize-VHD-Path'D:\VM\Ubuntu\ext4.vhdx'-ModeFull + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound:(:)[Optimize-VHD], VirtualizationException + FullyQualifiedErrorId:ObjectNotFound,Microsoft.Vhd.PowerShell.Cmdlets.OptimizeVhd

这是因为Hyper-V 虚拟机管理服务没有运行。需要先启动服务,再执行 VHD 优化。

Start-Service vmms
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 11:07:06

我的世界生存攻略:小麦换绿宝石的村民交易闭环详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 11:04:27

AI辅助开发越用越忙?从工程化视角提升AI编程效率的落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 11:02:46

Tyler-1:面向嵌入式入门的可拆解实体教具

简介:本资源是面向Arduino初学者与创客教育者的智能模型车实践项目——“太乐1号(Tyler-1)”完整源码包,融合电子控制、机械搭建与移动终端交互,解决入门者在软硬协同开发中缺乏系统性项目参考的痛点,适用于…

作者头像 李华
网站建设 2026/9/3 11:02:19

KOReader 2025.04 发布:这 3 个改动最实用

KOReader 2025.04 发布:这 3 个改动最实用 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices 项目地址: https://gitcode.co…

作者头像 李华
网站建设 2026/9/3 11:01:32

从会聊天到能干活:AgentScope 2.0 多智能体框架完整上手指南

从会聊天到能干活:AgentScope 2.0 多智能体框架完整上手指南 【免费下载链接】agentscope Build and run agents you can see, understand and trust. 项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope AgentScope 2.0 是阿里巴巴通义实验室开源…

作者头像 李华