2/10/2007

Kuro as a box

1月26日在Revolution by Buffalo訂了一個kurobox。



這個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塊。



感覺上算是蠻值得的。




8 comments:

  1. ok。

    目前Apache2+MySQL4+php4運作十分穩定。bt-web我是還蠻滿意的。以
    128M的RAM來說,雖然接近滿載,不過linux kernel的swap機制十分順
    暢、有效率,因此系統其實十分穩定,266MHZ的CPU運作起來也十分快。

    你提到的ftpd我沒有跑,我跑的是sshd裡面的sftp sub-service,若有需
    要還是可以架設vsftpd,蠻好設定的。

    maild我沒有跑,因為我目前用不到。emule也沒跑,有需要時再安裝。

    另外我有安裝samba,可以直接在網路芳鄰上管理kurobox裡分享出來的資
    料夾內之檔案,蠻方便的。用54Mbps操作網路芳鄰感覺還是有點慢,不過
    你家有Gigabit Ethernet,我想這應該不成問題才是。

    等我kurobox先跑個一個月,確定都沒問題了,再看看你有沒意願購買。
    也許你可以一次買個四台來跑個超級cluster,嘿嘿嘿。

    ReplyDelete
  2. 很詳細的說明
    你先跑一陣子
    之後在寫一下心得
    剛好當個白老鼠
    看看各個服務之間會不會有相衝突或是甚麼影響之類的
    我也考慮將服務換到KUROBOX上 可以省硬體資源
    現在就缺實驗報告了 主要幾個服務想知道的就是
    FTP MAILD HTTPD MySQL BT-WEB EMULE

    ReplyDelete
  3. (≧▽≦)錯字~~~ 改"量"過的Debian系統…
    哇哈哈~~~~

    ReplyDelete
  4. 嘿嘿,已訂正!

    ReplyDelete
  5. 沒辦法加ram,因為是燒在版子上。跑任何大型伺服程式應該都是不夠力
    的吧,因為他是小型NAS裝置。

    反正Linux swap效能非常好,我現在跑一堆伺服程式外加一個bt,都還是
    順得很,自用的話應當是夠的。

    要跑大型服務,還是只能砸錢下去買硬體呀。

    ReplyDelete
  6. 128M ?
    那現在跑完記憶體剩多少

    這樣若放個甚麼網站可能不夠喔~
    能不能加 RAM 呀 ?

    ReplyDelete
  7. 哈...我比較窮指買快過氣的ls
    不過這東東倒是蠻省電的
    拿來養小動物真是超值
    阿曼德~~我要吃龍蝦

    ReplyDelete
  8. 好啊,來波士頓找我吧!

    ReplyDelete