我想通过将所有已删除文件上的数据清零来最大程度地减少虚拟磁盘所用的空间量。虚拟磁盘是运行 ubuntu 的 VDMK,在 VirtualBox 上有一个 Ext4 分区。
查找任何已删除的文件并将其清零的最佳方法是什么,以便当我导出设备时磁盘大小仅仅是磁盘上现有的文件?
答案1
如果您使用支持它的文件系统,那么您可以使用零自由。
如果不是,那么您基本上只需要使用 dd 将零写入每个分区上的文件,直到没有剩余空间。然后删除用零填充的文件。
答案2
对于每个文件系统,执行以下操作
sudo dd if=/dev/zero of=/zero
# ...wait until the filesystem is full...
sudo rm /zero
这将创建一个文件,覆盖文件系统上的所有可用空间,并用零填充。删除它后,分区上将只剩下零。不过,我猜你无论如何都需要对虚拟磁盘进行 gzip 压缩,因为零无论如何都会占用空间。我不确定 VirtualBox 磁盘管理有多智能。
答案3
转储和恢复将会起作用。
答案4
为了实现此功能,您必须使用精简配置。还是我错了?