終止長時間運行的 rm 命令的效果

終止長時間運行的 rm 命令的效果

今天我使用命令刪除了儲存在 ext3 檔案系統上的 50GB 檔案rm。花了rm近 40 分鐘的密集 I/O 來釋放所有區塊。從我從其他來源看到的情況來看,這是釋放文件使用的所有區塊所需的時間。如果有人rm在中間殺死該進程會發生什麼。這是否會導致檔案系統損壞,某些區塊無法再回收為可用空間?

答案1

(即要求fsck)。文件系統的不一致是不必要的。

是的,取消連結後將發生區塊釋放。但這個過程不會被中斷。

ext2_evict_inode->

__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)。我預計更新位圖的時間是相同的,但它們比塊指針要緊湊得多。

相關內容