我尝试运行这个来清理docker镜像等等...用这个命令:
compact vdisk
文件系统分配为 1007GB,仅使用了 4%。
我该如何解决?
所有的论坛和问题似乎都指向运行diskpart
,从这个服务器故障问题这解释了要做的事情,我已经做了。我的pyenvs
占用了大约 9GB,而且我已经删除了大部分。
我感到很困惑。
答案1
你的帖子有点令人困惑,我实际上把它作为重复帖子关闭了,然后才意识到你不是在问如何恢复没用过空间,但你似乎首先问的是到底是什么占用了你的 WSL 磁盘映像中的空间。
您提到您的映像占用了约 40GB,并且显示大约 1TB(WSL 磁盘的正常稀疏大小)的使用率为 4%。我假设您使用df
WSL 内部来获取该数字。Windows 和 Linux 的数字相匹配,因此磁盘映像本身似乎已经尽可能地压缩了。
要查找正在使用空间的内容,标准方法是使用du
(磁盘使用情况)命令。在 WSL 上,我建议执行以下操作:
sudo du -hxs --exclude=/{proc,sys,dev,run} /*
在哪里:
sudo
允许您读取您无法以普通用户身份访问的目录中的文件大小。罪魁祸首不太可能位于这些目录中,但这也会抑制尝试读取这些目录时可能产生的错误。-h
为您提供“人类可读”的目录大小-s
总结根目录中每个文件/目录的信息 (/*
)-x
对于 WSL 来说,这一点尤其重要,因为如果没有 WSL,它将du
尝试跟踪/mnt/c
等。这些文件特大尺寸WSL,不应该被计算在内。- 此外,忽略虚拟文件系统可以很好地抑制一些否则会遇到的错误。归功于这个答案为了那一点小秘密。
A sudo du -hxs --exclude=/{proc,sys,dev,run} /
(不带通配符)应该为您提供根文件系统的所有内容的总数,该总数应该与df
您提供的数字相匹配。
一旦确定了哪个目录包含大部分文件,就可以重新运行du
该目录,深入研究直到找到罪魁祸首。例如:
sudo du -hxs --exclude=/{proc,sys,dev,run} /var/*
附注:如果您正在运行 Docker Desktop,那么它的大部分存储应该位于单独的 WSL 映像中。docker-desktop-data
但是,如果您没有运行 Docker Desktop,而是在 WSL 中安装了 Docker Engine,那么可能会留下一些文件。compact vdisk
您提到的命令对 Docker 数据没有任何作用。
最后,从 WSL 中删除有问题的文件后,然后在 WSL 上运行压缩例程,ext4.vhdx
正如我在回答中提到的那样这个问题。