close
當 Torvalds 將某些代碼標記為“dontuse”,通常表明這個問題比較大。在 5.12 首個候選版本更新中,破壞瞭交換文件(swapfile)的處理。具體來說,更新後的代碼會失去指向 swapfile 開頭的正確偏移。用 Torvalds 自己的話來說,“交換還是會發生,但它發生在文件系統的錯誤部分,最終結果顯然是災難性的”。
這樣 Linux 內核如果想要將內存中的內容分頁到磁盤上的時候,數據就會落在相同磁盤和 swapfile 活躍的分區的隨機部分上,而且這不是作為文件,而是作為垃圾直接寫入到磁盤的原始扇區。這意味著不僅要覆蓋現有文件中的數據,還要覆蓋相當大塊的元數據,這些元數據的損壞很可能會導致整個文件系統無法掛載和使用。
Torvalds 繼續指出,如果你根本不使用 swap,那麼這並不影響你。不過如果你正在使用 swap 分區,而不是 swap 文件,你也同樣不會受到影響。
據我所知,所有正常的發行版都是用swap分區,而不是文件來設置的 因為老實說,swap 文件往往會比較慢,而且還有其他各種復雜的問題。許多發行版仍然默認使用 swap分區,而不是文件。但是Ubuntu--它可能是這個星球上部署最廣泛的Linux發行版--已經默認安裝 swapfiles四年多瞭。而這個 bug 很可能會毀掉你的整個根文件系統。
全站熱搜