Linux
核心更新/升級時 BCache 損壞
在舊筆記型電腦的根設備上使用 write-around bcache 一年多(HD + SD 卡)後,我終於發現我面臨一些嚴重的文件系統損壞 - 這導致我求助於備份並重新安裝一切都兩次(!!) - 是由於更新/升級核心後重新啟動後記憶體設備上的 bcache 損壞。
解決方法相當“簡單”,因為它是一個讀取記憶體:當啟動過程說我的設備損壞超出自動修復能力時,我只需要在手動 fsck 之前刪除記憶體設備,重新創建記憶體並註冊再說一遍。-順便說一句,永遠不要嘗試使用損壞的 write-around bcache 來 fsck 據稱損壞的文件系統,因為那樣的話,您將真正損壞您的數據。
**問題:**防止這種腐敗的可能方法是什麼?因此,我使用archlinux,總是使用最新版本的所有東西——現在的核心是4.19.4。
我找到了一種解決方法,該解決方法已經在幾台機器上證明了自己的多次更新:
在正常的系統和核心升級之後,在重新啟動之前,只需停止 bcache:
echo 1 >/sys/fs/bcache/*/stop;sleep 2;sync;sync;shutdown -r now;logout
在下一次重新啟動時,bcache 將重新啟動而不會出現任何損壞。
可以肯定的是,bcache 不會將其格式從核心版本更改為核心版本,但事實是:在沒有核心更新的情況下重新啟動機器不會損壞 bcache 的記憶體設備,而更新核心會。哪怕是小更新。