如何使 ext4 文件系统稀疏?

raj*_*h87 10 ext4 virtualbox sparse-files

我在 VirtualBox 中使用 Linux 作为来宾操作系统。我从其文件系统中删除了大量文件。现在我想缩小文件系统映像文件 (vdi)。收缩通过压缩文件系统映像在磁盘中具有“空”值的任何位置进行。

似乎一个名为zerofree的应用程序可以将“null”写入文件系统的空闲空间,使其变得稀疏。但是说明说它只适用于 ext2/ext3。我的来宾操作系统上有 ext4。

  1. 为什么它不能在 ext 4 上工作(引用的原因是“范围”,但有人可以更清楚地了解它吗)?

  2. 如果我将ext 4安装为ext 3然后重新安装为ext 4,它会起作用吗?

  3. 任何其他可以在 ext 上做与 zerofree 类似的事情的工具?

pdo*_*pdo 23

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

The utility also works on ext3 or ext4 filesystems.
Run Code Online (Sandbox Code Playgroud)

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

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

更新:至少在 VirtualBox 的情况下,我认为您根本不需要这个实用程序。在我的测试中,在 ext4 上的股票 Ubuntu 10.04 安装上,您可以像这样将文件系统归零:

$ dd if=/dev/zero of=test.file
Run Code Online (Sandbox Code Playgroud)

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

$ rm test.file
Run Code Online (Sandbox Code Playgroud)

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

$ VBoxManage modifyhd --compact yourImage.vdi
Run Code Online (Sandbox Code Playgroud)

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

  • 这应该是公认的答案。工作精美。 (3认同)