我在 VirtualBox 中使用 Linux 作为来宾操作系统。我从其文件系统中删除了大量文件。现在我想缩小文件系统映像文件(vdi)。收缩是通过压缩磁盘中具有“空”值的文件系统映像来实现的。
似乎有一个应用程序叫零自由可以将“null”写入文件系统的可用空间,使其变得稀疏。但说明书上说它只适用于 ext2/ext3。我的来宾操作系统上有 ext4。
为什么它不能在 ext 4 上工作(引用的原因是“范围”,但有人可以进一步说明它)吗?
如果我安装它会起作用吗分机4作为分机3然后重新安装为分机4?
还有其他工具可以在 ext 上做类似 Zerofree 的事情吗?
答案1
您引用的页面(http://intgat.tigress.co.uk/rmy/uml/index.html) 状态:
The utility also works on ext3 or ext4 filesystems.
所以我不确定你从哪里得知它不适用于 ext4 文件系统。
请注意,零自由公用事业与zerofree不同内核补丁在同一页上提到了这一点(实际上似乎没有 ext4 的版本)。
更新:至少就 VirtualBox 而言,我认为您根本不需要这个实用程序。在我的测试中,在 ext4 上安装的 Ubuntu 10.04 上,您可以将文件系统清零,如下所示:
$ dd if=/dev/zero of=test.file
...等待虚拟磁盘填满,然后
$ rm test.file
并关闭虚拟机。然后在您的 VirtualBox 主机上执行以下操作:
$ VBoxManage modifyhd --compact yourImage.vdi
您将恢复所有未使用的空间。
答案2
您可以使用e2fsprogs
,有一个可与 ext4 一起使用的版本。
让自己成为超级用户:
# su
卸载您的驱动器:
# umount /dev/sda1
删除驱动器的日志:
# tune2fs -O ^has_journal /dev/sda1
然后调整文件系统的大小:
# resize2fs /dev/sda1 30G