Filesystems

用零清除未使用的空間(ext3,ext4)

  • May 6, 2020

如何用零清除未使用的空間?(分機3,分機4)

我正在尋找比

cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero

就像FSArchiver正在尋找“已用空間”並忽略未使用但相反的站點。

目的:我想壓縮分區映像,因此強烈建議用零填充未使用的空間。

順便提一句。對於 btrfs:用零清除未使用的空間 (btrfs)

這樣的實用程序是zerofree.

從它的描述來看:

Zerofree 在 ext2 或 ext3 文件系統中查找未分配的非零塊,並用零填充它們。如果此文件系統所在的設備是磁碟映像,這將很有用。在這種情況下,根據磁碟映像的類型,輔助實用程序可能能夠在執行 zerofree 後減小磁碟映像的大小。Zerofree 要求將文件系統解除安裝或以只讀方式安裝。

實現相同結果(將未使用的塊歸零)的常用方法是執行“dd”創建一個充滿零的文件,該文件佔用驅動器上的整個可用空間,然後刪除該文件。這有很多缺點,而 zerofree 可以緩解:

  • 它很慢
  • 它使磁碟映像(臨時)增長到最大程度
  • 它(暫時)使用磁碟上的所有可用空間,因此其他並發寫入操作可能會失敗。

Zerofree 已被編寫為在作為虛擬機內的來賓作業系統安裝的 GNU/Linux 系統上執行。如果這不是你的情況,你幾乎肯定不需要這個包。

更新#1

.deb 包的描述現在包含以下段落,這意味著這也適用於 ext4。

描述:來自 ext2、ext3 和 ext4 文件系統的零空閒塊 Zerofree 在 ext2、ext3 或 ext4 文件系統中找到具有非零值內容的未分配塊,並用零填充它們…

其他用途

此實用程序的另一個應用程序是壓縮作為真實磁碟備份的磁碟映像。一個典型的例子是 BeagleBone 或 Raspberry Pi 中的 SD 卡轉儲。將空白空間歸零後,可以更有效地壓縮備份映像。

引用自:https://unix.stackexchange.com/questions/44234