目前我正在使用wsl2,并且我注意到ext4.vhdx需要大量的磁盘空间,就像我知道它是Ubuntu的文件管理系统一样,但我不太明白其中的内容,这就是为什么我想查看并删除所有不必要的文件,我怎么做呢?正如我所知道的,wsl2不会将已使用的磁盘空间放回主机系统(我使用的是windows 10),所以我想看看ubuntu保存的是什么磁盘存储。
发布于 2021-04-29 21:28:31
@汤玛斯-沃德的回答是正确的,但在我看来,你的问题中似乎还有一个额外的“问题”需要回答。
首先,重新定义另一个答案,只需运行WSL并查看文件,就可以很容易地看到ext4.vhdx
的全部内容。例如:
sudo find / -xdev | less
这将找到安装为root的ext4
文件系统上的所有文件(/
),但在安装的NTFS/Windows驱动器上找不到任何文件( -xdev
不包括其他文件系统)。
您还可以看到以下这些文件正在使用的存储:
sudo du -hdx
如果该数量与ext4.vhdx
文件的大小不同,那么是的,正如您已经怀疑的那样,您可能有未回收的空间。正如您在问题中提到的,WSL将根据需要增长该文件,但是当文件被删除时,它不会自动缩小它。
要手动收缩文件,您可以按照我在这个超级用户的答案中提到的任何步骤进行操作。下面是其中一个,它是从一个参考的Github评论中复制出来的:
wsl --shutdown
# At this point, it is recommended that you back up your ext.vhdx and delete the backup once you have confirmed the other commands are successful.
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
注意:直接访问vhdx
的另一种方法是在Hyper上创建一个新的基于Linux的虚拟机,并将虚拟驱动器(或它的副本)添加到实例中。不可能在Windows中直接检查它,因为Windows不了解ext4文件系统。
发布于 2021-04-29 16:29:36
在Windows上不建议直接检查VHDX,因为它包含一个ext4
文件系统。
本质上,VHDX保存的是它上的整个Ubuntu操作系统,再加上您在WSL中安装的任何其他文件/程序/库/等等。WSL2使用虚拟化来运行Ubuntu环境,这是整个系统的“硬盘”。基本上,在WSL中可以导航到的任何文件(例如,/usr/lib/...
)都是VHDX中的内容。
https://askubuntu.com/questions/1334900
复制相似问题