今日私はコマンドを使用してext3ファイルシステムに保存されている50 GBのファイルを削除しましたrm
。rm
すべてのブロックを解放するのに集中的なI / O操作は約40分かかりました。他のソースから見ると、ファイルで使用されているすべてのブロックを解放するのにかかる時間です。誰かが途中でプロセスを終了するとrm
どうなりますか?これにより、一部のブロックを空き領域に回収できないファイルシステムが破損する可能性がありますか?
ベストアンサー1
(つまり、要件fsck
)。ファイルシステムの不一致は不要です。
はい、切断後にブロック解除が発生します。ただし、プロセスは中断されません。
__ext2_truncate_blocks ->
ext2_free_branches -> (for loop)
sb_bread ->
wait_on_buffer ->
wait_on_bit_io(&bh->b_state, BH_Lock, TASK_UNINTERRUPTIBLE);
上記の例はについてですext2
。これはもっと簡単に見えるようです。 ext3
あまり変わりません...
ext4
しかし、もっと速くなければなりません。使用範囲は以下の必要性を避けるべきです。トリプル間接ブロック。 (この記事ではext3に範囲を追加する方法について説明しましたが、Linusは最初にext4にバージョン番号を変更するように言いました。)ビットマップを更新する時間は同じであると予想していますが、ブロックポインタよりもはるかにコンパクトです。