Linux

如何在不失去數據的情況下人為地誘導損壞的 ext4 文件系統?

  • March 4, 2022

我正在嘗試處理一個非常罕見的極端情況,即我的系統在 ext4 文件系統中存在輕微損壞。這個觸發器 systemd 的emergency.service,我正在嘗試改變它的行為以自動修復 fs。

無論如何,有沒有辦法稍微改變分區/文件系統以最小的數據失去機會來誘導這種狀態?我只需要fsck返回有問題的地方。

如果 Emergency.service 執行,則 initrd 切換 root 或 fsck 已經嘗試過但失敗了。可以通過核心命令行參數 fsck.repair=yes 告訴 systemd-fsck-root.service 始終修復 (fsck -y)

對於 /etc/fstab(第 6 個欄位)中 passno 值為 0 的任何文件系統,將跳過 fsck。在具有損壞歷史的系統中可能是一個壞主意,但如果文件系統安裝允許繼續操作。

在 fstab 中使用 nofail 選項可以使 local-fs.target 不需要文件系統。但是,這不適用於 root fs。考慮在您懷疑包含問題文件的掛載點創建一個新文件系統,例如 /var/lib/whatever。使用 nofail 選項,即使掛載失敗,也不會掉入緊急外殼。

備份是避免失去重要數據的最後一道防線。不要依賴修復來解決問題,即使是在成熟的文件系統上也是如此。

e2fsprogs 測試套件中存在一些損壞的文件系統。實際使用起來很棘手,尤其是作為根 fs。使用它對您的塊設備進行映像,將其擴展得更大,並從備份中恢復您的數據。

引用自:https://serverfault.com/questions/1095277