這個geek stuff從日本千里迢迢運至Texas,由USPS輾轉送到Boston,最後於2月8日中午抵達旅途的終點。
2月9日在BU ACS上完課後,到BestBuy買了顆特價中的Western Digital EIDE 320G硬碟,99塊。回程先至Washington St.朋友住處幫忙設定一下Airport Extreme基地台,然後才返家。
Ashley有個聚會,好像要出去整晚,我正好趁此時將kurobox安裝好。
Kuro Box是由日本一家叫做玄人志向的公司所販賣。玄人志向原本就是一個出售個人電腦DIY零件、改造零件的公司,2004年2月的時候他們開始出售一種機器,是用Buffalo Linkstation多餘的零件所組裝而成,主要是賣給硬體組裝玩家與Linux駭客,這就是Kuro Box的由來。在美國是由Buffalo USA裡一個叫做Revolution的部門在做銷售與支援的服務。
Kuro Box在日本叫做「玄箱」,是一個標準的NAS (Network-Attached Storage),意思就是連結上網路的儲存裝置。Buffalo原本的想法是販賣一種大容量硬碟,可以直接插上網路線,然後在網路上的其他電腦就可以存取他的硬碟內容(簡單說就是檔案伺服器)。Buffalo也出了一系列的NAS商業系列,像是LinkStation Series、TerraStation Series等。Kuro Box事實上就是Buffalo NAS系列的「零件」,因為他不含硬碟。可是可愛的Linux駭客們hack了Kuro Box,他們幫Kuro Box加裝硬碟後,就可以跑一個「完整的」Linux系統在上面,因此Kuro Box搖身一變成為一台超級低價的伺服器。
我買的版本是Kurobox HG WR,CPU是PowerPC MPC8241 266MHz,RAM是128M,有一個4M的Flash ROM以燒韌體,搭載Atmel AVR微控制器控制開機動作,Realtek 10/100/1000網卡晶片,Sil0680A IDE控制晶片因此只能裝載ATA硬碟,另外還有兩個USB 2.0 port。WR的特色是他的電源轉換器是外接的,因此獲得更好的散熱效能,並能容許110-240V的電壓(前幾代內建電源轉換器的機型只能運作在110V)。
這樣的硬體只要價149美金(約為台幣4800元),運作時約耗費15-19瓦(平均17瓦),機體產生的噪音約為22dB。我另外買了顆99塊的320G硬碟,簡單說我只花了約台幣8000元,就買到一台功能完整的伺服器硬體。
不過天下沒有「便宜的」午餐。接下來就來看看我們怎樣hack這台機器。
首先看開箱照。
Kurobox HG WR的包裝。
Western Digital EIDE 320G的包裝。
Kurobox開箱照。
硬碟開箱照。
接下來開始拆解Kurobox,先移下U型側檔版,然後小心壓卡榫以分解上下外殼,接下來拆下主機板,最後將硬碟固定架也拆下。
Kurobox分解後的樣子。
主機板近照。可以看到MPC8241、Sil0680A等晶片。
接下來開始裝上硬碟,並將Kurobox給組合回來。
將硬碟裝上硬碟固定架。
將硬碟固定架裝回下外殼。
裝上主機板。
將硬碟電源及排線接上。
小心裝回上外殼,並確實讓卡榫卡上。
鎖上機器背後的固定螺絲。這是從另一個方向固定內部硬碟架用的。
裝回U型側檔版。
裝上腳架。
將硬碟裝上Kurobox的工程完成!接下來就是所謂的"nasty stuff"了。
首先將網路線與電源接上Kurobox,開機。由於硬碟是全新的,無法開機,因此Kurobox會以EM Mode啟動,然後使用Flash ROM裡面的內嵌式Linux系統開機,並以dhcp取得ip,成功後會啟動telnet服務。若一切順利,就可以用預設的root帳號telnet進去kurobox。
登入kurobox後,執行mfdisk指令分割硬碟。我的分法是,將/dev/hda1分成2G的系統分割區,/dev/hda2分成1024M的swap空間,剩下的通通分給/dev/hda3,作為以後存放資料的分割區。分割完後,執行mkfs -j指令將/dev/hda1與/dev/hda3格式化為ext3檔案系統,另外執行mkswap將/dev/hda2格式化為swap。
接下來調整系統時間。由於EM Mode裡的Linux系統時間是2004年,因此使用date指令設定目前時間。注意到EM Mode裡系統並沒有date這個程式,因此其實要執行的是/bin/busybox指令。如果真的想堅持傳統的UNIX style,那就ln -sf /bin/busybox /bin/date。這樣就可以用date了,哈。
下一步驟是安裝系統。我使用的是駭客Sylver改良過的Debian系統。首先把debian-sarge-2.6.17.1-mh1_kuro-box-20060623.tgz這個系統壓縮檔抓到筆電上,約60M。我隨手也將幾個kernal update都抓了。然後在kurobox裡,將/dev/hda1掛載到/mnt下,然後在筆電上使用ftp將剛剛抓的debian-sarge-2.6.17.1-mh1_kuro-box-20060623.tgz傳上去。
在/mnt下直接解壓debian-sarge-2.6.17.1-mh1_kuro-box-20060623.tgz這個檔案,完成後系統基本上就算安裝好了,因為/dev/hda1是之後你真正要開機的分割區。我順手也把kernel update給安裝上去了,省得以後麻煩。
接下來新系統的網路設定。為了方便管理,我將Kurobox設定為固定ip。總之修改好/etc/network/interfaces、/etc/resolve.conf、/etc/hosts、/etc/hostname這幾個檔案後,大致上就差不多了。
接著是最令人興奮的時刻,執行write_ok指令,以讓AVR控制晶片知道往後不要進入EM Mode,直接從硬碟開機。然後輸入reboot。
約20秒後,Kurobox就開好機了。照著之前設定好的ip,ping一下,賓果!這表示Kurobox已經照我所設定的網路配置乖乖啟動了,可喜可賀。telnet進去檢查一下,/dev/hda1當然是掛在/下,/dev/dha2正在作為swap使用中,而/dev/hda3自動被掛載到/mnt下。
至此Kurobox算是安裝完成,接下來就是照自己的喜好來設定這個Linux伺服器了。目前我對他做的事:將telnet替換為安全性高的sshd,安裝usbmount以後就可以自動掛載usb外接硬碟,安裝Apache2、mysql4、php4做為網頁介面的平台,跑了ntpd以矯正系統時間,安裝samba以做為Windows網路芳鄰分享,另外安裝了torrentflux這個Web介面的bt軟體。
安裝硬碟約花了20分鐘,安裝與設定系統約花了一小時,之後調整系統與安裝程式大概花了三個小時。花費金額249美金,加上運費與稅金後是262塊。
感覺上算是蠻值得的。