星期五, 6月 15, 2007

zenwalk on old laptop ....... done!!

上回講到在一台舊手提電腦上安裝 win2k 的不愉快經驗, 這次則是嘗試一下 Linux。既然是這么舊的配備, 桌面環境只能向 XFCE 求了。由於一直都在用 Gnome, XFCE 其實是個外行, 因此這個求輕盈桌面之旅一點也不簡單。

花了兩天進行資料搜索, 首先找到 zenwalk 這個基於 slackware 的發行版。利用 VirutalBox 模擬了個 128mb 記憶體的環境來比較, 同是 XFCE, zenwalk 比 xubuntu 流暢太多了!!! 這就是KISS(Keep It Simple, Stupid) 的優勢?! 后來也發現了 KateOS, 感覺跟 zenwalk 很相近, 都是以 XFCE 為主要的桌面環境, 這裡 KateOS 官方有個比較。zenwalk 的速度我滿意了, 理論上能直接使用 slackware 的套件, 也由於官方文件比較豐富便選擇了 zenwalk。

跟安裝 win2k 一樣, 問題就在於沒有光碟機。因為是 Linux, "想必" 更麻煩了, 這是我最初的想法。原來只是我個性保守, 一時接受不了新概念, 雖然看懂了文件還是固執地認為自己不明白... 有關文件見這裡, 中文譯本見這裡

簡單來說就是利用 grub4nt 引導並啟動本來的 iso 映像檔。這裡假設了目標電腦上有一個可運作的 DOS/Windows 系統, 否則又將是另一個故事了。

1. 安裝 GRUB for NT
既然 laptop 本身安裝了 win2k 也就適合用 grub4nt, 相信這也最有意義的因為現在最普及的也就 win2k/xp。

1a) grub4nt 是沒有 installer 的, 但所需的 grldr & menu.lst 都包裝在 grub4dos 裡面, 所以首先要下載 grub4dos

1b) 將壓縮包裡的 grldr & menu.lst 放置到 C:\ 下(Windows 根目錄)

1c) 修改/加入以下項目到 C:\boot.ini, 目的是要用 ntldr 啟動 grub4nt
C:\grldr="Start GRUB"

* boot.ini 需移除系統/隱藏/唯讀屬性才能編輯 C:\> attrib c:\boot.ini -s -h -r
** 完成編輯後可以可以這樣還原C:\> attrib c:\boot.ini +s +h +r
*** winxp 的話可以更簡單一些: 控制台 > 系統 > 進階 > 啟動及修復 > 設定 > 編輯

2. 準備 Linux 啟動文件及光碟架構

2a) 首先下載 zenwalk installer iso, 注意是要 Standard CD, 不是 LiveCD。

2b) 將 iso 內的 kernel 及 ramdisk 放置到 C:\, 版本 4.6.1 的位置如下:

/kernels/ata/bzImage
/isolinux/initrd.img


* 留意 zenwalk 使用了新的 libata 系統, 無論 pata 或是 sata 都是 /dev/sdx
** 如果是 scsi 硬碟需用 /kernels/scsi/bzImage 的 kernel

2c) 將完整的 iso 解壓並放置到 zenwalk kernel 可以存取的分割區根目錄, 如 fat32, ext2, ext3 。我這裡就放到了 sda5 的 fat32 系統。

3. 編輯 C:\menu.lst, 也就是 grub4nt 的設定檔


title Install Zenwalk
kernel (hd0,0)/bzImage root=/dev/hda5
initrd (hd0,0)/initrd.img


* hd0,0 是安裝 grub4nt 的分割區, 也就是 Windows 那個
** hda5 是存放著 iso 目錄的那個分割區

4. 啟動及安裝
一切就緒就可以重啟嘗試進入 linux 系統, 如果設定無誤的話將如 cdrom 啟動一樣出現 zenwalk 的安裝程序。否則請根據畫面提示鎖定問題, 是找不到 kernel 或是 root 位置不正確, 然後逐一修正。有 grub使用經驗的都知道 grub 支援 tab completion, 利用這個功能可以即時告訴 grub正確的設定, 從而省去重新進入 Windows 編輯的時間。

不像 cdrom 啟動, 到這步時還不能繼續安裝程序, 因為還先要掛載放置了 iso 內容的那個分區, 讓系統認為真的有 cdrom 一樣。一般來說只要切換到其它 terminal 就可以 mount, 但不知道為什么 Ctrl+Alt+F1 至 F6 不能用, 結果只好先離開安裝程式, 然後再 mount :

$ mount -t vfat /dev/sda5 /zensetup
** /zensetup 是我建立的目錄, 這個掛載目錄必需在根目錄才行,否則 chroot 后便找不到

完成後以 # zenwalk setup 重新進入安裝程式, 之後除了在安裝來源時選擇 "Install from a pre-mounted directory" 並指明相應路徑外, 真的跟 cdrom 安裝沒有兩樣了。這方面官方的安裝指引說得很詳細, 需要看中文的 linuxsir.org 這篇文章。

** 我這裡還有一個問題, 可能是我的分區比較雜亂, 安裝程式不能正確偵測並將 lilo 寫到 mbr, 結果當然是不能啟動。最後只好再一次利用 grub4nt 啟動 installer 環境, chroot 到已安裝的 zenwalk系統, 手動設定並確保 /etc/lilo.conf 設置無誤後利用 #lilo -v 寫 mbr。zenwalk wiki 也有一篇修覆 lilo 的文章可供參閱。

5. 後記及其他
雖然花費了不少時間, 慶幸的是發現了zenwalk 這個可愛的 distro, 也感受了 KISS 的特點, 值得。雖然說 arch 及 gentoo 運行速度或者更理想, 但考慮到快速上手, zenwalk 還是更好的選擇。

由於 zenwalk 沒有內建合適的中文字型, 第一次啟動時的中文還真吓人。得益於 fontconfig 架構, 只要安裝好中文字型, 設定好 fontconfig (我是直接拿 ubuntu那個來用的) , 簡朴又不缺實用的中文桌面就出現了。

最後, 此文得以實現全靠一眾熱心網友的文章, 這裡僅列出幾個供參考 :
1. Install GNU/Linux without any CD, floppy, USB-key, nor any other removable media
2. zenwalk安裝筆記
3. 利用 GRUB4DOS 安裝 Linux
4. SlackWare10.1從(硬盤)安裝到配置(包括升級)全過程


最最後, 口講無憑, 還是自己看看設好的 zenwalk 是什么樣子吧 :)


沒有留言: