ext4ファイルシステムをスパースにする方法は?


10

VirtualBoxでゲストOSとしてLinuxを使用しています。ファイルシステムから膨大な数のファイルを削除しました。次に、ファイルシステムイメージファイル(vdi)を縮小します。圧縮は、ディスク内に「null」値がある場合は常にファイルシステムイメージを圧縮することによって機能します。

zerofreeと呼ばれるアプリケーションは、ファイルシステムの空き領域にスパースになるように「null」を書き込むことができるようです。しかし、指示はそれがext2 / ext3でのみ機能することを述べています。ゲストOSにext4があります。

  1. なぜそれがext 4で機能しないのですか(引用されている理由は「範囲」ですが、誰かがより多くの光を当てることができます)?

  2. 私はマウントした場合には、動作しますEXT 4としてEXT 3として再マウント当時とEXT 4

  3. extでzerofreeとして同様のことができる他のツールはありますか?


2
そこのリンクによると、zerofreeはext4で動作します。
psusi

それがあなたの時間で動作するかどうかは
わかり

回答:


23

あなたが参照するページ(http://intgat.tigress.co.uk/rmy/uml/index.html)は次のように述べています:

The utility also works on ext3 or ext4 filesystems.

したがって、ext4ファイルシステムでは機能しないことがどこでわかっているのかわかりません。

zerofree ユーティリティは、同じページに記載されているzerofree カーネルパッチとは異なることに注意してください(実際、ext4のバージョンがないようです)。

更新:少なくともVirtualBoxの場合、このユーティリティはまったく必要ないと思います。私のテストでは、ストックのUbuntu 10.04をext4にインストールすると、次のようにファイルシステムをゼロにできます。

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

...仮想ディスクがいっぱいになるのを待ってから、

$ rm test.file

VMをシャットダウンします。次に、VirtualBoxホストで次のようにします。

$ VBoxManage modifyhd --compact yourImage.vdi

未使用のスペースをすべて回復します。


お返事をありがとうございます。zerofreeのマンページではext4が指定されていなかったため、代替案が必要でした。
rajaganesh87

1
提案された代替案(dd if = / dev / zero of = test.file)がうまくいきました!他のソリューションよりもはるかに簡単です。
Pisu

3
これは受け入れられる答えになるはずです。美しく動作します。
クリスプラット

sync後に実行しddます。
イグニス2013年

ddアイデアも私のために働いた。よくできました!
Stefan

1

あなたが使用するe2fsprogsことができ、ext4で使用可能なバージョンがあります。

スーパーユーザーにしてください:

# su

ドライブをアンマウントします。

# umount /dev/sda1

ドライブのジャーナルを削除します。

# tune2fs -O ^has_journal /dev/sda1

次に、ファイルシステムのサイズを変更します。

# resize2fs /dev/sda1 30G


お返事ありがとうございます。パーティションを縮小したくありませんが、ゲストのファイルシステムイメージ(vdi)を縮小します。
rajaganesh87
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.