2013/9/3 補充: 改推薦 antix。
「百毒不侵救命碟」 可以讓你過著 電腦樂活 的生活。 不過隨身碟如果寫入頻率過高, 很容易衰老損毀。 在經過設定之後, 過去三個多星期我帶著 Linux 開機隨身碟在國外生活, 開機六十多次共使用一百多個小時, 到目前為止都沒什麼問題。 (這帖的圖文也還是在這上面完成的。) 以下解釋如何讓您的 Linux 開機隨身碟也可以延年益壽; 主要參考 SSD optimizations on Linux 這篇文章。
一、 開機隨身碟延年益壽妙方
救命碟原本採用的版本是 slax-cyut; 但是因為 slax 已經兩年沒有更新, 所以最近改用 SimplyMepis。 本文的實作環境是 mk-boot-usb 所製作的開機隨身碟上安裝的 SimplyMepis 11; 不過我猜大致上也適用於其他基於 debian 的版本。
首先請把你的隨身碟當做硬碟, 將 SimplyMepis 安裝進去。
我是在 8G 隨身碟上用 mk-boot-usb 分配 6G 給 SimplyMepis 用。
(好懷念 slax 的輕薄短小...) 然後下載 m/11/ssd-opt.tgz
ssd-opt-2.tgz (2012/09/09 小更新) 並且到根目錄底下解壓縮: cd / ;
tar xvzf ssd-opt-2.tgz
。
這些檔案就是讓開機隨身碟延年益壽的妙方。
reminder/ 底下的檔案都只是提醒作用,
你必須找到自己系統內相對應的檔案, 模仿修改;
其他檔案則可以不去動它。
- 修改 grub 選單裡的開機選項, 加上
elevator=noop
這一小段 (請參考 reminder/menu.lst) - 修改 /etc/fstab , 加上以下幾句:
tmpfs /tmp tmpfs defaults 0 0 tmpfs /var/run tmpfs defaults 0 0 tmpfs /var/log tmpfs defaults 0 0
這些都是最常寫入的目錄, 所以把它們放在記憶體裡。 超重要! (請參考 reminder/fstab) - 找到每一位用戶的 firefox 設定檔 --
~/.mozilla/firefox/亂數.default/prefs.js
並且在裡面加上這一句:user_pref("browser.cache.disk.parent_directory", "/tmp/ckhung/firefox");
請參考 reminder/prefs.js 並且請把 ckhung 改成你的帳號。 [注意: 請先關掉 firefox 才編輯 pref.js , 不然會做白工。] 這個設定超重要! 幾年前我剛開始玩隨身碟開機時, 就是因為不懂得設定這個, 所以有好幾顆隨身碟死在 firefox 的 cache 手上 冏rz。 這個設定指定快取暫存檔放置的目錄。 注意: 如果是在多人共用電腦上, 這個設定會洩漏隱私! - park/ 子目錄搭配 etc/init.d/park-ssd 腳本,
作用是: 關機前把 (存放於記憶體裡面的) /var/log
拷貝回隨身碟上的 park/ 子目錄;
開機後又把隨身碟上的 log 檔拷貝到
(記憶體內的) /var/log 。
另外, etc/rc?.d/*park-ssd 這幾個捷徑,
是用
update-rc.d park-ssd defaults
自動產生出來的; 詳見 Making scripts run at boot time with Debian。 這部分的所有檔案應該都不需要更改。 - /etc/polkit-1/localauthority/50-local.d/02-disable-hibernation.pkla 的作用是取消休眠功能 (我不確定有無效果)
重新開機之後, 請做兩個最重要的檢查:
df
指令的結果, 至少應該包含以下所有 tmpfs 的檔案系統:ckhung@z9100:~$ df 檔案系統 1K-區段 已用 可用 已用% 掛載點 ... tmpfs 512208 10684 501524 3% /tmp tmpfs 512208 384 511824 1% /var/run tmpfs 512208 21944 490264 5% /var/log
ls -la .mozilla/firefox/*.default/Cache
應該看到空的目錄; 另一方面ls -la /tmp/你的帳號/firefox
應該看到很多目錄與檔案。
如果這兩個檢查的結果不符預期, 那麼你的隨身碟還是曝露在過度寫入的危險之中! 另一個次要的檢查是 /park 裡面的檔案。 使用電腦時, 那些檔案應該不會增減; 但每次重開機之後, 會有一些檔案更新、 變大。
最後, 壓縮檔裡面還附贈一個 /usr/sbin/mbu-uuid
指令。
因為複製新版的救命碟時, 需要多一個步驟...
二、 複製 SimplyMepis 版或 Antix 版的百毒不侵救命碟
[2014/02/16 更新]
想要複製救命碟, 建議先在你原本的 (Antix/SimplyMepis/... 完整版本的) 救命碟上面另外補裝文字介面救援版 finnix。 (不需要重新製作救命碟。)
- 確認你的救命碟 [甲碟] 上沒有個人隱私資料如相片密碼信用卡號等等!
- 以甲碟開機, 選擇進入 finnix。
fdisk -s /dev/sd?
- 插入目的地碟 [丙碟]
- 隔幾秒, 再度
fdisk -s /dev/sd?
看看與先前有何差異。 mk-boot-usb -b -v 1 -s /dev/sd甲 -d /dev/sd丙
把甲碟複製給丙碟。mbu-uuid /dev/sd丙
這支小程式會自動整修丙碟的 menu.lst 與 fstab 裡面的 UUID= 設定。
上面的 fdisk
指令,
用意是根據隨身碟插入順序及顯示的容量大小 (以 K 為單位)
來判斷甲碟及丙碟的正確代號。 當然, 用甲碟開機之後,
也可以拿另外的乙碟當作來源碟, 複製給丙碟。
請用力為更多朋友製作開機隨身碟吧! (但要注意保護自己及他人的隱私, 記得別誤將自己平日使用的隨身碟複製給別人了) 史巴克與貴哥共同祝您的 Linux 開機隨身碟與記憶卡長命百歲, 多子多孫 -- live long and prosper!
更新: 如果乙碟上除了 SimplyMepis 之外, 也安裝一套原始精簡的 slax 並加裝 mk-boot-usb 與 mbu-uuid, 那麼就可以省略甲碟, 直接從乙碟的 slax 開機, 從乙複製到丙。
回覆刪除感謝分享
回覆刪除slax有人改良新的版本叫porteus(http://porteus.org/),設定方式跟slax一樣,只要幾百mb,隨身系統帶著走~
回覆刪除哇, 好酷, 謝謝! 暑假再來試 porteus。 雖然現在 16G 隨身碟只要 399; 如果可以恢復像過去一樣用 2G 裝一堆教育軟體還是比較酷。
回覆刪除