在日常使用 Windows Subsystem for Linux (WSL2) 时,随着文件的不断创建与删除,WSL 虚拟磁盘(如 ext4.vhdx
)的体积会逐渐增大,甚至在删除文件后依然占据大量的磁盘空间。为了更有效地管理磁盘使用,微软在 2023 年9月的 WSL 更新中推出了 Sparse VHD 功能,使虚拟磁盘能够自动释放未使用的空间。
本篇文章将详细介绍如何启用 Sparse VHD 以及相关的步骤和注意事项。
Sparse VHD 的功能介绍
Sparse VHD 功能允许 WSL 的虚拟磁盘自动识别未使用的空间,并动态调整其大小。启用此功能后,当你在 WSL 中删除文件时,虚拟磁盘的大小会随着空闲空间的增多而自动减小,从而减少 ext4.vhdx
文件对硬盘空间的占用。
如何启用 Sparse VHD 功能
要启用此功能,你需要按照以下步骤进行操作。
步骤 1:编辑 .wslconfig
文件
首先,在你的用户主目录(例如 C:\Users\<YourUsername>\
)下创建或编辑 .wslconfig
文件。如果你已经有 .wslconfig
文件,可以直接在其中加入以下配置:
[experimental]
sparseVhd=true
该配置启用 WSL 支持稀疏 VHD,但这只是全局配置的一部分,真正激活还需要为具体的发行版执行额外的命令。
步骤 2:关闭 WSL
在启用 Sparse VHD 之前,WSL 需要处于关闭状态。你可以使用以下命令来关闭所有正在运行的 WSL 实例:
wsl --shutdown
步骤 3:为指定的 WSL 发行版启用 Sparse VHD
使用 PowerShell 或命令提示符运行以下命令,为指定的 WSL 发行版启用 Sparse VHD:
wsl --manage <发行版名称> --set-sparse true
例如,如果你使用的是 Ubuntu-20.04
,那么命令如下:
wsl --manage Ubuntu-20.04 --set-sparse true
该命令只需运行一次,之后该发行版的 Sparse VHD 功能将保持启用状态,无需每次启动时重新运行。
验证功能是否成功启用
执行完上述步骤后,WSL 会自动根据空闲的磁盘空间进行调整。为了验证虚拟磁盘的大小是否成功减小,你可以检查 ext4.vhdx
文件的大小变化。
文件路径通常位于:
C:\Users\<YourUsername>\AppData\Local\Packages\<DistroPackage>\LocalState\ext4.vhdx
通过观察该文件的大小,你可以看到未使用空间被成功释放。
注意事项
- 关闭 WSL:在执行
--set-sparse
命令时,WSL 必须处于关闭状态,否则命令可能无法成功执行。 - 持久生效:Sparse VHD 功能一旦为某个发行版启用,无需每次启动 WSL 时重新运行命令。
- .wslconfig 文件配置:
.wslconfig
中的配置是全局的,它确保 WSL 支持稀疏 VHD,但你仍需要为每个发行版手动启用。
总结
通过启用 Sparse VHD 功能,你可以自动优化 WSL2 虚拟磁盘的大小管理,避免虚拟磁盘占用过多的硬盘空间。这一功能对于那些经常在 WSL 中进行大量文件操作的用户来说尤为有用。按照本文的步骤,你可以轻松启用此功能,并确保 WSL 的虚拟磁盘始终保持高效和轻量化。
参考资料: