啟動時的 EXT4 FS 檢查:聲明其乾淨的條件

啟動時的 EXT4 FS 檢查:聲明其乾淨的條件

1 個硬碟託管4 個EXT4 檔案系統,我們將它們命名為A(1,2,3,4),每個檔案系統都會在我的fstab 中獲得一個條目,但很少安裝,磁碟機甚至在初始化時透過udiskctl 關閉電源。

1 個硬碟託管8 個EXT4 檔案系統,每個檔案系統都會在我的fstab 中取得一個條目,其中4 個,假設B(1,2,3,4) 在初始化時自動掛載,另外四個,假設C( 1,2,3,4) 偶爾根據需要安裝。

在這些情況下(A(1,2,3,4) 未安裝且相關驅動器已關閉;C(1,2,3,4) 檔案系統中沒有一個安裝)並且出於任何原因(電源故障、內核恐慌、硬重置...)系統未正常關閉。
下次重新啟動時,將檢查每個檔案系統。

所有在異常關閉時未安裝的檔案系統都會很快被清除:

問題一:這個結論是由對超級塊的唯一解讀得出的嗎?s_狀態欄位或是否進行了其他檢查?

Q2:這是否取決於觸發異常關閉的原因,是否取決於底層驅動器是否通電?

Q3:這些檢查會命令 fsck 掛載檔案系統嗎?

Q4:雖然控制台上報告了這些乾淨的狀態,但為什麼我找不到這些報告在我的內核(或任何其他)日誌中回顯,而那些實際上需要修復並最終從日誌中恢復的文件系統的跟踪是?


Linux-5.4/e2fsck 1.46.5/下開放資源庫作為初始化系統和元學如果重要的話,充當系統日誌守護程序。
Metalog 最相關的規則:

Kernel messages :
        facility        = "kern"
        logdir          = "/var/log/kernel"
        break=1
Fallback:
        facility        = "*"
        minimum         = 6
        logdir          = "/var/log/fallback"

答案1

請不要提出多個問題。

當分割區被mount編輯時,檔案系統程式碼將分割區的區塊分配表複製到記憶體中,並將磁碟的表標記為「需要還原」。

檔案系統代碼以記憶體速度管理區塊分配,這比磁碟速度快得多。

記憶體中的表會定期寫回磁碟,這樣既可以保持它們相對最新,又可以避免將所有表同時保存在記憶體中。

當分割區被umount編輯時,記憶體中的表被寫入磁碟(清除「需要恢復」標誌)。內存中的表將被丟棄。

當系統崩潰時,最新的記憶體表將會遺失,並且「需要恢復」標誌仍然設定在磁碟上。

如果啟動需要文件系統(/etc/fstab條目有auto),並且在磁碟上設置了“需要恢復”標誌,則fsck運行特定於文件系統的文件系統(例如,fsck.ext4對於ext4文件系統)來“恢復”文件系統- 使塊分配表“正確」 「(最大限度地減少資料遺失,確保沒有區塊既不空閒也不使用,...),保留「需要復原」時寫入的區塊等fsck。被mount編輯,並且此外,磁碟還設置了“需要恢復”標誌,直到fsck成功為止。

這種預安裝系統引起的fsck活動發生在引導過程「啟動」到足以真正記錄訊息之前,但請嘗試dmesg

感謝 LustreOne,

在掛載時,e2fsck 將檢查日誌「需要恢復」標誌,並對掛載檔案系統所需的超級區塊和群組描述符區塊進行基本檢查。如果設定了“需要恢復”,那麼它將重播日誌。如果發現其他錯誤,它將運行檔案系統的完整 e2fsck。 – LustreOne

相關內容