目前我正在使用 wsl2 并且我注意到 ext4.vhdx 需要大量磁盘空间,就像我知道它是 Ubuntu 的文件管理系统一样,但我并不深入了解里面的内容,这就是为什么我想查看并删除所有内容不必要的文件,我该怎么办?就像我知道 wsl2 不会将已使用的磁盘空间释放回主机系统(我使用的是 Windows 10),所以这就是为什么我想看看 ubuntu 拥有哪些磁盘存储。
目前我正在使用 wsl2 并且我注意到 ext4.vhdx 需要大量磁盘空间,就像我知道它是 Ubuntu 的文件管理系统一样,但我并不深入了解里面的内容,这就是为什么我想查看并删除所有内容不必要的文件,我该怎么办?就像我知道 wsl2 不会将已使用的磁盘空间释放回主机系统(我使用的是 Windows 10),所以这就是为什么我想看看 ubuntu 拥有哪些磁盘存储。
@thomas-ward 的回答是正确的,但在我看来,还有一个额外的“你的问题中的问题”仍然需要回答。
首先,要改写另一个答案,您
ext4.vhdx
只需运行 WSL 并查看文件即可最轻松地查看全部内容。例如:这将找到
ext4
作为 root (/
) 挂载的文件系统上的所有文件,但不会找到挂载的 NTFS/Windows 驱动器上的任何文件(-xdev
不包括其他文件系统)。您还可以通过以下方式查看这些相同文件使用的存储空间:
如果该数量与
ext4.vhdx
文件的大小不同,那么是的,正如您已经怀疑的那样,您可能有未回收的空间。正如您在问题中提到的,WSL 会根据需要增大该文件,但在删除文件时它不会自动缩小它。要手动缩小文件,您可以按照我在此超级用户答案中提到的任何步骤进行操作。这是其中之一,从引用的 Github 评论中复制而来:
注意:直接访问的另一种方法是
vhdx
在 Hyper-V 上启动一个新的基于 Linux 的 VM,并将该虚拟驱动器(或其副本)添加到实例中。由于 Windows 不理解 ext4 文件系统,因此无法在 Windows 中直接检查它。不建议在 Windows 上直接检查 VHDX,因为它包含
ext4
文件系统。从本质上讲,VHDX 拥有的是其上的整个 Ubuntu 操作系统,以及任何其他文件/程序/库/等。您已经在 WSL 中安装了它。它是系统的整个“硬盘”,WSL2 使用虚拟化来运行 Ubuntu WSL 环境。基本上,您可以在 WSL 中导航到并查看(
/usr/lib/...
例如)的任何文件都是 VHDX 中的内容。