阿貴的系統管理撇步
我用 linux 很多年了, 玩出一些不太正統的系統管理心得, 在這裡跟大家分享。 當然, 每個人的需求與癖好不同, 這裡提供的撇步不見得適合您。 我的生活哲學是: 降低對外界的需求, 提高自己適應不同環境的彈性, 隨時準備好面對最艱困的環境。 因此我選擇的應用軟體與安裝的系統有一些特性:
- 盡量用小支, 依賴套件少, 文字介面的工具。 例如用 lynx 與 w3m 瀏覽; 用 mutt 收發信件, 用 vim 編輯 html 檔並用 tidy 整修, 用 soffice2html 轉換 OO.o, ... 等等。 又如視窗管理員, 我既不用 gnome 也不用 kde, 而是選擇輕薄短小卻聲效十足的 enlightenment, 強力推薦!
- 用不到的套件盡量砍掉!
所以要安裝一套每天工作娛樂使用的系統, 其實 2G, 最多 3G 的硬碟空間就用不完了。 (我的系統通常大約使用 1.2G 到 1.5G 的空間) 以下許多安排的合理性與實用性, 都基於這樣的假設。 另一方面, 如果您的生活哲學與我不同, 這裡談的資源配置就不見得適合您。 (例如備份光碟可能會超過 700MB)
分割硬碟
首先盡其可能地多切幾個 partitions。 如果沒有經過特殊設定的話, 一顆硬碟最多可以切成 16 個分割。 其中 1 個 extendend partition 只是用來容納 logical partitions 的空殼子, 不能直接用; 其他 3 個 primary partitions 與 12 個 logical partitions 都可以用。
按照大小, 不要按照功來能切割。 這部電腦用幾年下來, 可能會升級好幾次, 安裝很多套不同的 Linux 或 BSD (如果不幸的話, 甚至還必須安裝 Windows...)。 從這個角度思考, 留各種不同大小的空間, 比現在決定如何分出 /var /home /usr ... 更有意義。 事實上大部分時候我只掛載兩個分割在用: 系統與資料; 而資料要由不同版本的系統共用, 所以有另外的設定方式, 下詳。 例如 40G 的硬碟, 它的 logical partitions 可以切成 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 6, 6; 其他留給 primary。 有各種大小的分割, 最常用的大小多切幾個, 這樣將來要調整/安裝多套/對調/... 就很方便。
Windows 很難養, 一定要 primary partition, 所以把 那三個 primary 留給它, 萬一那天不幸需要的時候可以用。 選一個分割 (例如叫做 worksp) 存放資料, 包含未來的 /home 。 從前我還必須 dual boot 回 windows 或 OS/2 的時候, 另外還有一個格式化成 vfat 的分割 (例如叫做 share), 用來與這些作業系統交換檔案。
安裝系統
選一個 2G 的分割, 開始進行 最小安裝。 如果新版的光碟片/系統/驅動程式/... 有任何問題, 很快就會知道; 避免花了很多時間選套件, 最後才發現根本無法開機。
確定可以開機沒問題之後, 趕快重新開機切換到另一個系統 (例如舊版的
Linux; 或直接用光碟開機, 並在 boot 的提示符號上打 linux rescue
進入救援模式)。 假設剛剛裝在 /dev/hda17 上面, 於是檢查一下系統
fsck -f /dev/hda17
, 掛載進來 mount /dev/hda17
/mnt/hda17
, 備份 cd /mnt/hda17 ; tar czf .
/some/large/data/partition/mdv-06-a.tgz
這裡的
"/some/large/data/partition" 當然是指另外掛載的,
專門放大量資料的大容量分割。 將來要還原或是複製系統,
可以直接拿這個映象檔來解壓縮 (下詳),
不必再經過繁瑣的交談式安裝手續。 這要蠻久的,
起來活動活動筋骨吧。
重新開機回到剛裝好的迷你系統, 開始增刪套件。 rpm -qa --qf
'%10{SIZE} (%{NAME}) %{SUMMARY}\n' | sort -n | less
從最下面
(最大) 的套件開始向上檢查, 看看有那些套件自己從來不用, 可以刪除。
至於新增套件, 在 Mandriva 底下可以用 urpmi, 在 Fedora 底下可以用
yum; 這兩個指令都會查看欲安裝套件的相依關係, 如果有必要,
會自動安裝使用者未指定, 但需要用到的其他套件。 一切 ok
沒有問題之後, 記得下 rpm -qa >
.../worksp/mdv-06-b.rpm-qa
將系統目前安裝的套件列表記錄到資料分割某處。
這可是經過幾小時精挑細選的心血, 要好好保存。 另外, 我習慣把新增的
user (例如 ckhung) 的家搬到工作分割 worksp 底下, 並從 /home
底下建立 symbolic link: ln -s /mnt/worksp/home/ckhung
這樣將來不論從那套 linux 開機, 自己家中的設定都不必重新改。
複製系統
再度 reboot, 切換到舊的 Linux 或用光碟開機。 就像先前備份的動作一樣, 再把剛才辛苦挑選套件安裝完成的系統壓縮起來, 叫做 mdv-06-b.tgz 好了。 (一樣, 放在另外的大容量資料分割。) 現在將整個系統複製到 /dev/hda18 去:
mkfs -t ext2 -j /dev/hda18 mount /dev/hda18 /mnt/hda18 cd /mnt/hda18 tar xzpsf /some/large/data/partition/mdv-06-b.tgz
再來只要改兩個地方, hda18 也變成可以開機的系統了:
- 修改 /mnt/hda18/etc/fstab, 把原來的 "/dev/hda18 /mnt/xxx ..." 改成 "/dev/hda18 / ..."
- 修改 /boot/grub (或是 /lib/grub ?) 底下的 menu.lst -- 把安裝時自動產生的 /dev/hda17 那幾句抄過來類比修改。
重新開機, 選 hda18 進入試試看吧。 Linux 要複製在同一系統的不同分割上面就這麼簡單! 是不是比 Windows 乾淨清楚多了呢?
有了複製系統, 就不怕臨時出狀況。 雖然說 Linux 不太當機, 但是偶爾總會遇到停電不正常關機, 或不經意刪除一些很久以後才會發現/悔恨的套件, ... 等等意外狀況。 特別是經常帶著筆記電腦四處奔波的朋友, 只要遇到一次, 您就會感受到複製系統的方便。
每隔幾個月, 可以檢查這段時間以來新增了那些套件,
準備再製作新的映象檔 mdv-06-x.tgz 。 (x=c,d,e, ...)
但不要直接在現行使用的系統上面製造, 而是切到乾淨,
從來沒有在用的複製系統, 把新增套件一次裝完,
立即重新開機回現行使用的系統, fsck -f
之後,
對複製系統備份。 這樣你的備份系統又乾淨得跟剛安裝完畢時差不多。
當然前提就是平常你不會在現行使用系統上用 "非 rpm" 的方式安裝套件;
或者說, 如果對它做了任何增刪 rpm 套件之外的修改, 記得要記錄下來,
以便製作新映象檔的時候可以使用。
把 grub 搬到 資料分割
到目前為止, grub 都還是跟著 hda17 跑; 但事實上它應該像 home
一樣, 超然獨立於任何版本的 linux 之外。 用 rpm -ql
grub
看一下最重要的檔案是那些 (通常放在 /lib/grub 底下),
把它搬到 /mnt/worksp/boot/grub 去, 並且重新安裝一次。 ...
不知為什麼, 較新版本的 grub (0.95, 0.97) 對於 --config-file
沒有反應, 它的設定檔不能改名字, 一定要叫做 menu.lst 。
(本節待補充)
製作救援光碟
把 /mnt/worksp/boot 壓縮起來, 和最新的備份映象檔 mdv-06-x.tgz 一起放到光碟上, 並用 syslinux 安裝幾套小型的 linux, 就變成客製化的救援光碟。 就算機器換了一顆全新的空硬碟, 也可以靠著這張救援光碟, 在半小時內還原成平常工作的環境。
(本節待補充)
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/clr/cksaprac.php; 您所看到的版本: February 14 2012 10:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。