答案1
WSL2 的工作原理类似于虚拟机;客户操作系统不会直接将单个文件存储在主机文件系统中——它有一个专用的虚拟“磁盘”,该磁盘存储在.vhdx
Windows 所见的单个大文件中。
随着客户操作系统将数据写入新的“磁盘”区域,此文件会动态增长,但不缩水当这些区域不再使用时。例如,如果虚拟磁盘的扇区 10000-20000 被一个大文件使用,而您将其删除,则这些扇区(及其数据)的空间仍被 VHDX 文件占用。
因此随着时间的推移,当 Ubuntu 将新文件放置在整个磁盘区域时,VHDX 将继续增长,直到最终达到分配给 VM 的完整“磁盘大小”。
WSL2 使用的 VHD 的自动压缩功能实际上是被添加的本周早些时候。
如果这是一个专用的 Hyper-V VM,它需要定期运行fstrim
以通知主机操作系统哪些 VHD 区域可能被视为“空闲”(与使用 SSD 时相同);我怀疑新的 WSL2 功能以相同的方式工作,只从其“系统发行版”执行修剪。