2016年5月14日 星期六

psd 不讓瀏覽器折磨開機隨身碟

2009 年我在馬來西亞授課兩週時, 都是在 slax 開機隨身碟上過日子。 那時就發現瀏覽器頻繁寫入, 對 linux 開機隨身碟的傷害最大。 2011 年這篇 Linux 開機隨身碟延年益壽妙方 的第一重點也是要設定瀏覽器。 今天來介紹 Profile Sync Daemon -- 它把 firefox、 chromium、 ... 各種瀏覽器所使用的目錄整個搬到記憶體去, 直到關機前才寫回硬碟, 以便保護你的開機隨身碟。

以下設定在 lubuntu 15.10、 lubuntu 16.04、 proxmox 4.2 三處實作。 在 lubuntu 15.04 失敗, 可能 還是得升級才能解決問題吧? 請先按照 Ubuntu Users 那一節 (或是根據你用的 linux 版本選一節) 安裝 profile-sync-daemon。

接下來用普通人 (你自己常用的帳號, 非 root) 的身份做事。 先用 psd p 查看狀態, 其中應該有一句 「Systemd service is currently inactive」 表示目前並未啟動服務。 另外, 如果你曾經用過 firefox 或 chromium, 就會在家目錄底下留下 ~/.mozilla/firefox/亂碼.default 或 ~/.config/chromium 等目錄, 而 psd 表示將會管理這兩個瀏覽器的工作目錄。

不過最傷的是 cache, 而它卻不在 psd 管轄範圍內。 所以我們下 ls -l ~/.cache 先查看有哪些子目錄。 我們要 在啟動 psd 之前 先把每個瀏覽器的 cache 目錄搬到它自己的工作目錄底下, 這樣等一下 psd 把工作目錄搬到記憶體裡面的時候, cache 就可以一起搭便車。 然後再從原來的 cache 目錄建立一個 symobilic link (類似 windows 下的「捷徑」) 指向 cache 目錄新的位置, 這樣瀏覽器才找得到它的 cache 目錄。 另外也可順便 手動調整firefox cache 大小首先關掉所有的瀏覽器視窗。 然後:

cd ~/.cache
mv chromium ~/.config/chromium/cache
ln -s ~/.config/chromium/cache chromium
ls -l # 確認連結是正確的
cd ~/.cache/mozilla/firefox
ls
mv 亂碼.default ~/.mozilla/firefox/亂碼.default/cache
ln -s ~/.mozilla/firefox/亂碼.default/cache 亂碼.default
ls -l # 確認連結是正確的

手動啟動 psd: systemctl --user start psd

開瀏覽器之前, find ~/.cache /run/user -type f -mmin -3 查看這兩個目錄底下在過去三分鐘內曾經修改過的檔案。 應該空空的沒幾個檔案。

打開瀏覽器, 然後再執行一次 find, 這次應該出現很多檔案, 如果大部分都在 /run/user 底下, 那就對了, 以後隨身碟 (大約) 可以放心使用; 如果大部分都在 ~/.cache 底下, 那就是設定錯誤, 瀏覽器還是一直在頻繁讀寫隨身碟。

注意: (1) 如果需要手動關閉 psd, 請先關掉所有的瀏覽器。 重新啟動 psd 之後, 才打開瀏覽器。 (2) 如果想要備份瀏覽器的設定, 則必須先手動關閉 psd, 瀏覽器的設定才會被從記憶體裡搬回硬碟原來的目錄。 比方說你想把 firefox 跟 chrome 的歷史記錄跟設定整個砍掉重練, 做最安全最隱私的設定, 應該這樣做:

  1. 關掉所有的瀏覽器。
  2. 停用 psd: systemctl --user stop psd
  3. 刪掉舊資料: rm -rf .mozilla/firefox .config/chromium
  4. 打開全新的 firefox 跟 chromium, 讓系統自動產生相關目錄、
  5. 安裝 https everywhere、 privacy badger、 ... 等等。
  6. 關閉 firefox 跟 chromium。
  7. 重做上述建立 symlink 的動作。
  8. 備份: tar czf firefox-clean.tgz ~/.mozilla/firefox
  9. 備份: tar czf chromium-clean.tgz ~/.config/chromium
  10. 啟用 psd: systemctl --user start psd

當然, 這些動作最好在硬碟上做。 儲存好之後, 就可以拿到隨身碟上解壓縮, 然後你的開機隨身碟版 firefox 跟 chromium 也會變得一樣乾淨安全。 還有, 這兩個壓縮檔內包含你剛才登入網站的帳密, 所以請小心保管不要外流。

測試成功之後, 就把 systemctl 那一句加入 「登入時自動啟動」 的程式清單。 例如 lubuntu 是放在 ~/.config/lxsession/Lubuntu/autostart 裡面。 這個設定檔有可能是空的; 但若不是空的, 啟動 psd 的指令必須放在啟動任何瀏覽器之前。 登出圖形介面, 再登入。 再次下剛剛的 find 指令, 確認 .cache 底下的檔案真的有自動被搬到 /run/user 底下去。

其實就算不用 psd, firefox chrome 也都可以各自設定成把 cache 放在記憶體裡 (tmpfs), 不過這樣每次關機 cache 就清空了, 下次又要重新累積才有 cache 的效果。

那麼接下來就請大家用力在隨身碟上過日子, 等玩壞的時候再來小格分享一下第二頻繁寫入的到底是哪類的檔案吧 :-)

沒有留言:

張貼留言