WSL2磁盘占用优化

发表于2026年06月07日 10:27:50 • 阅读2

WSL2磁盘占用优化

本文阅读大约需要3分钟。

前言

WSL2(Windows Subsystem for Linux 2)是微软为Windows开发的Linux兼容层,基于轻量级虚拟机运行真实Linux内核,实现完整系统调用,相比初代大幅提升文件I/O性能。它支持Ubuntu、Debian等多种发行版,与Windows文件系统和工具无缝集成,为开发者提供了高效、便捷的跨平台开发环境。

通俗来说,就是运行在windows的linux虚拟机。对于码农来说,确实很香。

但是使用久了之后,磁盘占用尤其让人头疼。

默认存储在C盘,通常是指对 WSL2 的核心磁盘文件 ext4.vhdx 。迁移之后,其实也可以自定义名称。

WSL2 的磁盘工作方式:

  • 只会单向“长胖”:WSL2 运行在一个名为 ext4.vhdx 的虚拟磁盘文件中。这个文件会随着你在 Linux 里安装、使用软件而动态增大。

  • 不会自然“瘦身”:当你删除 Linux 里的文件时,Linux 系统会释放内部空间,但这个 .vhdx 文件在 Windows 上占用的物理空间不会自动缩小。它就像一个只进不出的口袋,占着地盘就不松开。

  • “瘦身”的唯一方法:因此,想让磁盘“实际占用”变小,关键就是主动对 .vhdx 文件进行手动压缩。

搬家迁移

简单提一嘴,从默认C盘迁移到其他盘。

也就是自定义存储位置,逃离C盘噩梦。

可参考文章: WSL2 磁盘分区迁移

手动压缩

  1. 终止 wsl2
  wsl --shutdown
  1. 使用 diskpart 工具压缩虚拟磁盘
diskpart
  1. 选择虚拟磁盘(请替换为需要压缩的虚拟磁盘文件路径)
select vdisk file="ubuntu_wsl2.vhdx"
  1. 执行如下命令行压缩虚拟磁盘
attach vdisk readonly
compact vdisk
detach vdisk
exit

linux文件清理

清理 WSL Linux 内部垃圾

  1. 清理 APT 缓存(针对 Ubuntu/Debian)
sudo apt autoremove && sudo apt clean
  1. 清理 Docker 垃圾(如果你使用 Docker Desktop)
    Docker 的数据是 WSL2 磁盘膨胀的常见原因之一。请务必在你的 Linux 环境里运行,以彻底清理:
docker system prune -a -f --volumes

这个命令会清理所有未使用的数据,效果最彻底。

  1. 手动查找并删除大文件
    使用 du 或 ncdu 等命令行工具,查找并删除不需要的大文件或日志,例如:
# 使用 ncdu 进行交互式分析(如果没有,请先用 sudo apt install ncdu 安装)
sudo ncdu /

所属分类: 运维

文章标签: #windows #wsl #linux

文章标题:WSL2磁盘占用优化

文章作者:大古

文章链接:https://blog.988898.xyz/archives/wsl2-disk-compact.html

版权声明:本站原创内容均采用《署名 - 非商业性使用 - 相同方式共享 4.0 国际》进行许可,转载请注明出处。

温馨提示:请注意文章发表时间,某些文章所述内容可能具有时效性,文章描述可能已经失效。

添加新评论
暂未有人评论
快来抢沙发