ゼロで未使用のスペースをクリアする方法は? (ext3、ext4)
よりスマートなものを探しています
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は、仮想マシン内のゲストOSとしてインストールされたGNU/Linuxシステムから実行されるように作成されています。
そうでない場合は、
ほぼ確実にこのパッケージは必要ありません。
アップデート#1
.debパッケージの説明には、次の段落が含まれています。これは、これがext4でも正常に機能することを意味します。
説明:ext2、ext3、およびext4ファイルシステムからのゼロフリーブロック
Zerofreeは、ext2、ext3、またはext4ファイルシステムでゼロ以外の値のコンテンツを持つ未割り当てブロックを検索し、それらをゼロで埋めます…
その他の用途
このユーティリティのもう1つのアプリケーションは、実ディスクのバックアップであるディスクイメージを圧縮することです。この典型的な例は、BeagleBoneまたはRaspberryPiでのSDカードのダンプです。空のスペースをゼロにすると、バックアップイメージをより効率的に圧縮できます。
関連:データベースを削除した後にディスク領域を解放しますか?