如何将磁盘空间从 WSL2 分配到 C 盘(Windows 10 Pro)

如何将磁盘空间从 WSL2 分配到 C 盘(Windows 10 Pro)

我已经在 Windows 10 Pro 上安装了 WSL2。

我不知道如何将 WSL 和 C: 分开,但基本上现在我的 WSL 似乎有一个分区(250GB)对于所需的(~15GB)来说太大了,所以我在 WSL 上还剩下 235GB 的可用空间,而我的 C: 驱动器已满(仅剩~6.7GB 可用)...

我想将分配给 WSL 的 250GB 磁盘空间中的一部分重新分配回我的 Windows C: 驱动器。

有人有干净的解决方案吗?

我的驱动器在“此电脑”中显示的屏幕截图:

我的驱动器在“此电脑”中显示的屏幕截图

答案1

好消息是——你没有意外地将 250G 分配给 WSL。WSL2 分配了所谓的“稀疏”虚拟磁盘。这意味着内部,它显示的最大大小为 250GB。但是,外部实际使用的内容则完全不同。当稀疏磁盘为空时,它实际上在主机驱动器上占用 0 个字节。

您可以在 WSL 中看到以下示例:

> cd ~
> dd if=/dev/zero of=sparse_file bs=1 count=0 seek=512M
0+0 records in
0+0 records out
0 bytes copied, 3.9604e-05 s, 0.0 kB/s
> ls -lhn sparse_file
-rw-r--r-- 1 1000 1000 512M Nov 25 19:10 sparse_file
> du sparse_file
0       sparse_file
> rm sparse_file

文件出现为512MB,但du(磁盘使用情况)显示磁盘上确实占用0。

因此,当您通过网络共享查看文件系统时\\WSL$\,它仅显示最大值可能的虚拟 WSL2 磁盘可以增长到的大小。

可以看到WSL2虚拟磁盘有多少空间实际上通过在驱动器中搜索 来获取ext4.vhdx。它将类似于%userprofile%\AppData\Local\Packages\<DistributionPackage>\LocalState。例如,对于 Ubuntu,"DistributionPackage" 将类似于CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc(但会根据版本而变化)。

如果虚拟磁盘的大小确实比你预期的要大得多,那么这可能是因为稀疏文件将生长因为虚拟磁盘中的空间已被占用,但它不会收缩当您删除文件时。

您可以通过多种方式回收此空间。请参阅这个答案如果需要的话,可以了解详细信息。

好吧,这是好消息。坏消息是(假设它不是 WSL)你需要找到什么是实际上占用 Windows 驱动器上的所有空间。有几种方法可以做到这一点。您可以从 Windows 中的“存储”设置开始,但您可能需要更详细的分析也一样。

相关内容