去年秋天,提出了一台硬體清單,其中最重要的是一張 Adaptec RAID S2110 和三顆 SCSI Seagate HDD。一開始 Server 被拿來當作強力的 W2k 平台用,不過似乎沒有人缺電腦。後來決定開始寫寫 server-client 的程式,順道把 CVS server 也架出來,於是裝起了 Debian。
放入 Woody CD,「找不到硬碟」。
在安裝過程遇上的第一個問題就是這。
於是重新用 Woody CD 開機,試著看看它有些什麼提示可以幫助解決。發覺有所謂的 compact & bf24,於是由 compact 著手,看看是否使用這個 kernel ,能運氣很好地,有支援這 RAID card,不過失敗了。於是接著試試 bf24,也同樣失敗了。
至此,決定上網找別人 make 好的 driver。
過程略…最後裝起了 Debian…
前一陣子,來到了 moto forum,看了些文章。想說,那來把 kernel 升個級好了。抓下了 kernel-image-2.4.20-i686 的樣子。(bf24 是用 2.4.18)
apt-get install kernel-image-2.4.20-i686
....
Setting up kernel-image...
在這犯了一個錯誤,忘了執行一下 lilo 來重建 map。(當時會沒有執行,一來是完全不了解 lilo 到底在幹麻的,二來是看了「無痛起步」後,好像有提到說新版的 kernel 不用在自己執行 lilo 了?!)
重開機後…糗了,無法開機了。
最後,決定做張 bootable floppy 或是由 install cd 來開機進入 system 後,再 mount 原來的 partition 來看看倒底是怎麼了。
在這犯下了第二個錯誤,應該直接在 prompt 處按個 Ctrl or Alt or Del or Caps Lock 來由舊 kernel 開機的。(老樣子,還是不知道 lilo 是在幹麻的。雖然說修過了 Operation System 和 Operation System Design,但是似乎沒在這個節骨眼上有幫助…)
接著犯了第三個錯誤,忘了當初是怎麼讓 Woody CD 能認得 RAID card 的…
p.s. 剛剛想起來,會決定要升級一下,好像是因為發現原有的 kernel 不支援 RAM 超過 1G ,然後那時覺得好像升級了會比較安全??!!
最後想起來了,手邊應該有張 floppy image 上有 driver 可以用,經過多次試驗,最後我發現,手上的 driver 要配合 bf24 才可以順利地把 i2o 這個 module load 進去。(那時也已經忘了 i2o 了,好死不死,floppy上有3x~4x個module,都是不知道用途為何的:!:)
讓 install cd 順道找到硬碟的第一件事,是進入 shell。進 shell 之前,在安裝手續中,把之前的 partition mount 回來。
發現到幾件事。第一是只有一個叫 tiny-nano 的 editor;第二是用的 shell 好像功能很陽春:?: 要不就是不太熟習;最後是想補執行之前安裝 kernel-image 後忘了的 lilo,但卻無法執行。
於是作了個假設:可能是有兩個 lilo,一個是 install cd 開機後, shell 裏的;一個是放在舊有 partition 裏的。接著以指定路徑的方式執行任一,發覺都不行。問題的核心在於 static libs 似乎用錯了。
這時想清楚了,發覺一定要能執行原有 partition 上的 lilo 才有用。經過在 moto forum 上和高原兄的一問一答,加上其它人的熱心回應,多認識了一個指令: chroot 。它幫我解決掉了此問題。
chroot /target/ooxx/
lilo
(事後知道,lilo 有個 -r 參數可以指定 root directory,-C 可以指定 lilo.conf…那時為什麼會沒想到要看一下 lilo 如何使用呢:?:因為在那個 shell 下,沒有 man 可以執行 )
執行成功了
重開機…還是無法開機,又失敗了
最後,下了個正確的決定:來研究一下 lilo.conf 是怎麼個一回事。
於是發覺到,要手動更動一下 lilo.conf ,且情況可能會依每個人在升級 kernel 的過程中而大大不同:!:
而也做了個假設,大概就算改好 lilo.conf 還是會無法開機的吧。因為關鍵在於新的 kernel 得讓它懂得去把 dpt_i2o.o 給 load 起來才有用吧。
最後,我偷懶地退回原路,把新裝的 kernel-image 給 purge 掉,將 lilo.conf 指到舊有的 kernel 去了。
下一步,我打算抓 kernel-source 下來自己 make,順道把 dtp_i2o.o 鑲崁進去。