Linux

如果正在使用交換映像,我可以重新安裝為只讀嗎?

  • June 9, 2013

當我在玩我的 Android 手機(CyanogenMod 10.1 核心 3.0.78)時,我發現了這個:

  • 中的一個腳本/etc/init.d/99system.swap.sh
  • 它將 /system 重新掛載為 rw,並在/system/swap/swap.img

手機啟動後,我可以通過查看/proc/swaps. 但是/system安裝為 ro。

我試圖在另一部手機上手動做同樣的事情。但是當我嘗試重新掛載/systemro時,我收到錯誤消息,說有資源正在使用中。如果我交換swap.img文件中的圖像,我可以立即重新掛載/systemro

我錯了,將其重新安裝為rw後,我無法將其重新安裝/systemrolsof顯示大量程序正在使用./system

正如手冊頁所述,理論上應該是可能的swapon

[...] the swap file implementation in the kernel expecting to be able to write to the file directly, without the assistance of the file system [...]

所以當你有一個交換文件時,核心喜歡把它當作一個分區來對待,即它確定交換文件在磁碟上的物理位置,然後直接使用那個區域,就像它使用一個分區區域一樣。這是使交換到文件的速度與交換到正常分區一樣快的技巧。

此時文件系統已脫離循環,將文件系統本身設為只讀應該沒問題。您是否真的被允許這樣做是另一回事。我自己沒有測試過,特別是 Android 可能與正常 Linux 環境不同。

引用自:https://unix.stackexchange.com/questions/78270