如何使ext4文件系统稀疏?


10

我在VirtualBox中使用Linux作为来宾OS。我从其文件系统中删除了大量文件。现在,我要缩小文件系统映像文件(vdi)。收缩通过压缩磁盘上具有“ null”值的文件系统映像来进行。

似乎一个名为zerofree的应用程序可以以稀疏的方式将“ null”写入文件系统的可用空间。但说明说它仅在ext2 / ext3上有效。我的来宾操作系统上有ext4。

  1. 为什么它在ext 4上不起作用(被引述为“范围”,但有人可以对此进行更多说明)吗?

  2. 如果我将ext 4安装为ext 3,然后重新安装为ext 4,是否可以使用?

  3. 是否有其他工具可以在ext上实现与Zerofree类似的功能?


2
根据那里的链接,zerofree适用于ext4。
psusi'4

我不确定它是否在您的时间工作,但是手册说它支持ext4
phuclv 2015年

Answers:


23

您引用的页面(http://intgat.tigress.co.uk/rmy/uml/index.html)指出:

The utility also works on ext3 or ext4 filesystems.

所以我不确定您从哪里得到它在ext4文件系统上不起作用。

请注意,zerofree 实用程序与同一页面上提到的zerofree 内核修补程序不同(该修补程序实际上似乎没有ext4的版本)。

更新:至少就VirtualBox而言,我认为您根本不需要此实用程序。在我的测试中,在ext4上安装的现有Ubuntu 10.04上,您可以像这样将文件系统清零:

$ dd if=/dev/zero of=test.file

...等待虚拟磁盘填满,然后

$ rm test.file

并关闭虚拟机。然后在您的VirtualBox主机上执行以下操作:

$ VBoxManage modifyhd --compact yourImage.vdi

您将恢复所有未使用的空间。


感谢您的回复。zerofree的联机帮助页没有指定ext4,这就是为什么我需要替代方法。
rajaganesh87 2011年

1
建议的替代方案(dd if = / dev / zero of = test.file)对我有用!比其他解决方案简单得多。
Pisu

3
这应该是公认的答案。做工精美。
克里斯·普拉特

做一个sync之后dd
ignis

dd这个想法也对我有用。做得很好!
Stefan

1

您可以使用e2fsprogs,其中有一个可与ext4一起使用的版本。

使自己成为超级用户:

# su

卸载驱动器:

# umount /dev/sda1

删除驱动器的日志:

# tune2fs -O ^has_journal /dev/sda1

然后调整文件系统的大小:

# resize2fs /dev/sda1 30G


感谢您的答复,但我不想缩小分区,而是要缩小来宾的文件系统映像(vdi)。
rajaganesh87 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.