Ext4

ext4 在硬重置後被 fsck 報告為乾淨:這正常嗎?

  • April 2, 2017

我的根分區被格式化為 ext4 文件系統。

我注意到,每當我的機器崩潰並且我必須對其進行硬重置時,再次啟動並檢查根文件系統時,此步驟所需的時間比從完全關閉的系統啟動時要長一點(比如一到兩秒),但它被報告為“乾淨”(而不像/dev/<rootpartition> was not cleanly unmounted, check forced)。文件系統已滿 92% (352 GiB)。

我的問題:我想知道這是 ext4 的正常和安全行為還是啟動腳本中的一些錯誤。我知道 ext4 的 fsck 比 ext3 快得多,但我擔心它在系統崩潰後被報告為“乾淨”。

當我e2fsck -f在該分區上手動執行時,檢查的持續時間與 ext2/ext3 文件系統相當。所以我很擔心,因為我調整了我的文件系統以在每次啟動時檢查(tune2fs -c 1),這導致每次啟動都需要進行全面檢查e2fsck -f

編輯,只是為了澄清:在非干淨重置後,通常在 /var 上,即 reiserfs,fsck 重播日誌條目;在/boot上,即ext2,fsck執行,顯示進度條,執行後報告“clean”。僅在根文件系統上沒有“強制檢查”並且沒有 fsck-progress 出現,即使其他文件系統證明是乾淨的,也會出現這些文件系統。這就是令人擔憂的區別!

ext4 是一個日誌文件系統,日誌的主要目標之一是在不干淨的關機時不損壞,因此不需要長時間的 fsck。

簡而言之,像 ext3/4 這樣的日誌文件系統會將元數據(至少)寫入兩次更改。首先,它將它們寫入“日誌”。然後,一旦它在磁碟上,它就會寫入實際的文件系統元數據。(寫入日誌要快得多,因為日誌是順序的,不需要大量尋軌。至少在磁碟上——SSD 上的尋軌代價大大降低。)

額外的幾秒鐘可能是日誌重播:基本上,如果文件系統沒有完全解除安裝,下一次安裝或fsck將讀取日誌並應用主文件系統中尚未進行的任何更改。

因此,簡而言之,聽起來它的行為符合預期。

Fsck 通常在您的文件系統未完全解除安裝時(通常在您必須硬重置時)在啟動時執行。fsck 將在掛載之前檢查您的文件系統,並在檢測到出現問題時報告錯誤(不一致、無法重播日誌、孤立 inode ……),如果未檢測到任何錯誤,它將報告“乾淨”。因此,在您的情況下,您會很幸運,並且您的文件系統還可以。如果您想了解有關 fsck 內部工作原理的更多資訊,有一篇關於 fsck 的非常有趣的文章:https ://lwn.net/Articles/248180/

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