2013/9/3 補充: 改推薦 antix。
要製作救命碟, 減少寫入頻率很重要。 「開機隨身碟延年益壽妙方」 這一帖有詳細的步驟。 其中最較麻煩的一步是: 如何將 /var/log 掛成 tmpfs ? 因為我們必須讓系統在剛開機、 /var/log 已經掛載好但各種服務尚未開始寫入 /var/log 之前, 就先把隨身碟/硬碟上的資料拷進 tmpfs; 又必須讓系統在即將關機前、 各種服務已經停止寫入 /var/log 之後再把 tmpfs 上的資料寫回隨身碟/硬碟。 後半步如果做錯了, 只是遺失一部分 log 而已; 但前半步如果做錯了, 開機可能會失敗。 以下解釋在 SimplyMepis 11.9.60 (其實就是 SimplyMepis 12 的 alpha 版) 底下如何把 /var/log 掛成 tmpfs。
11.9 一樣可以採用 無光碟愛地球 的方式進行環保安裝。 安裝完畢之後:
- 新版的目錄架構有點變化 -- 例如 /tmp
變成一個 symlink 指向 /var/tmp。
所以在 /etc/fstab 裡面加上的幾句, 跟先前有點出入:
tmpfs /var/tmp tmpfs defaults 0 0 tmpfs /run tmpfs defaults 0 0 tmpfs /var/cache tmpfs defaults 0 0 # tmpfs /var/log tmpfs defaults 0 0
- 建立備份 /var/log/ 用的目錄:
mkdir -p /park/var/log
- 修改 /etc/init.d/mountall.sh , 在
do_start() { ... }
的 最尾巴 加上兩句:cp -a /park/var/log/* /var/log/ (echo -n "mountall start ; /var/log restored from /park/var/log " ; date) >> /root/log ;
- 修改 /etc/init.d/umountfs , 在
do_stop() { ... }
的 最開始 加上兩句:cp -a /var/log/* /park/var/log/ (echo -n "umountfs stop ; /var/log saved to /park/var/log " ; date) >> /root/log ;
touch /var/log/abc /park/var/log/xyz
(等一下測試用)- 重新開機。 下 df 檢查三個 tmpfs 目錄是否正常掛載。 查看一下文字檔 /root/log 裡面是否出現開機關機時拷貝 /var/log 的記錄。 查看一下 /var/log 底下是否出現 xyz ; /park/var/log 底下是否出現 abc。
- 如果一切順利, 才把 /etc/fstab 裡面 /var/log 那一句的註解拿掉, 重新開機。
- 按照 「延年益壽妙方」 這一帖, 完成其他步驟。 (但請扣除下載/解壓 ssd-opt-2.tgz 那一部分。) 其中最重要的就是修改 firefox 設定檔 pref.js。
為避免不慎改錯發生無法開機的慘劇, 以上多加了一些測試的步驟。 SimplyMepis 11 的修改, 其實也應該照這樣小心做才對。 (而且我的舊版 ssd-opt.tgz 好像漏了一個目錄, 不知道有沒有造成讀者的悲劇 orz。 已在那一帖更新為 ssd-opt-2.tgz)
另外我也安裝了 gcin 和嘸蝦米。 如果有讀者裝不起來請留言, 我再寫一帖。
因為這是 alpha 版, 很多地方都還沒修好。 例如下 apt-get 指令安裝套件之後, 經常會出現一串嚇人的錯誤訊息:
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/Debconf/DbDriver/File.pm line 44, <DEBCONF_CONFIG> chunk 3.
搜尋一下,
在巴西找到解答。
呵呵我的破破西班牙文並沒有好到可以順便看懂葡萄牙文啦。
不過拉到最下面就可以看到一個指令:
apt-get install debconf --reinstall
。
貴哥向來不是衝最快、 最前衛的追新一族; 現在為什麼要裝 alpha 版呢? 因為快開學了, 必須找一個可以製作救命碟的版本拿來上課。 如果採用 SimplyMepis 11, 怕跟不上新的硬體。 而 Fedora 17 的開機過程改用 systemd, 整個就是一個超複雜, 自己寫了一個新的服務、 加入 dependency 描述, 結果系統被我玩爛好幾次還是失敗。 (而且網路上 dependency 描述的教學文件還蠻不豐富的。) 後來想直接寄生在既有的服務上面 (就不必自己寫 dependency 描述), 卻發現關鍵的 /lib/systemd/systemd-remount-fs 竟是一個二進位執行檔! (低頭握拳)
總之就是期待 Warren Woodford (mepisguy) 大大趕快釋出正式版啊~~
沒有留言:
張貼留言
因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。