從運行系統覆蓋 linux(只讀)根目錄

從運行系統覆蓋 linux(只讀)根目錄

這對我來說似乎是一個非常普遍的問題。我有一個從唯讀根運行 Linux 的嵌入式系統。有一個更新程序守護程序,可以透過覆蓋整個分割區來安裝可用的新軟體映像。我的問題是:從正在運行的系統執行此操作的最佳方法是什麼?

  1. 將更新的分割區加入到/dev/sdX,哪一個是目前(只讀)安裝的根?
  2. 如所討論的那樣將當前根使用移動pivot_root到 tmpfs這裡
  3. 使用 2 個根分區並在每次更新後切換「活動」分區?

2 和 3 的缺點是,我需要大量 RAM(2)或磁碟空間(3)。有沒有一種安全的方法可以從正在運行的系統覆蓋只讀根分區並重新啟動到更新的系統?

答案1

所以我所做的是,我採用了 1. 方法,但遇到了很多麻煩,由於檔案系統問題,系統不再穩定。我想覆蓋已安裝的分割區不是一個好主意(不過也沒什麼大驚喜)。為了解決這個問題,我嘗試了 2. 想法(pivot_root),它有效,但有一些缺點。一是:您必須在更新完成後儘快停止大部分正在執行的進程和/或重新啟動。最後,我嘗試了3.想法,唯一的缺點是「浪費」磁碟空間。其他一切都很好。

相關內容