2009/05/15

[ FBSD ] FreeNAS Hack Chinese UTF-8

FeaaNAS 微調能讓 Pietty 終端軟體也可以顯示出中文:

Pietty 連到 FreeNAS 想要讓 Pietty 可顯示中文,必需修改 /etc/csh.cshrc 的設定,我們必需要準備一台 FreeBSD Server,再把 FreeNAS 中的 mfsroot.gz 檔傳到 FreeBSD Server 中解開,接著重新做設定檔,為甚何要這樣做 ? 因為 FreeNAS 為 embed 型態,直接連進去 FreeNAS 修改設定雖可馬上生效但重開機後便重新回到 msfsroot.gz 內的所有設定,因此我們必須直接修改 mfsroot.gz 檔才能讓設定永久生效。

BSD# cd /home/user # 切換到 FreeBSD Server 中自己的家目錄
BSD# sftp 192.168.10.5 # 連到 FreeNAS Server
sftp> cd /cf # 在 FreeNAS 中切換到 /cf 目錄
sftp> get mfsroot.gz # 在 FreeNAS 中取得 mfsroot.gz 檔
sftp> exit # 離開 FreeNAS
BSD# gzip -d mfsroot.gz # 解壓縮 mfsroot.gz
BSD# mdconfig -a -t vnode -f /home/user/mfsroot # 以RAM DISK 方式將 mfsroot 載入 /dev/md0
BSD# mount /dev/md0 /mnt/ # 將 RAM DISK md0 掛載到 /mnt 目錄下
BSD# cd /mnt
BSD# vi /etc/csh.cshrc # 建立 csh.cshrc 檔並寫入下面設定檔

setenv PAGER more
setenv BLOCKSIZE K
setenv EDITOR nano
setenv LANG zh_TW.UTF-8
setenv LC_ALL en_US.UTF-8
setenv PACKAGEROOT ftp://ftp4.freebsd.org
alias ls 'ls -wG'
setenv LSCOLORS ExGxFxdxCxDxDxBxBxExEx

BSD# umount md0 # 卸載 md0
BSD# mdconfig -d -u 1 # 卸除 /dev/md0 RAM DISK
BSD# gzip -9 mfsroot # 重新將 mfsroot 壓縮成 mfsroot.gz
BSD# ssh 192.168.10.5 # 連到 NAS 機器上
NAS# umount /cf # 將 cf 磁區卸載
NAS# mkdir /mnt/temp # 建個臨時資料夾
NAS# mount /dev/ad0s1 /mnt/temp # 將 /dev/ad0s1 也就是 /cf 區域掛到 /mnt/temp 臨時資料夾
NAS# exit # 離開 NAS
BSD# sftp 192.168.10.5 # 回到 BSD 後再用 sftp 連到 NAS
sftp> cd /mnt/temp
sftp> put mfsroot.gz # 將修改完的 mfsroot.gz 回傳到 NAS 蓋調原本那個 mfsroot.gz 檔

最後重開 FreeNAS 這台機器即可套用新設定

PS:Pietty 編碼也必需設定 UTF-8 萬國碼

Ref.

http://blog.ctl.tw/2007/02/hack-freenas.html
http://www.mobile01.com/topicdetail.php?f=110&t=727507&last=7497811

6 意見:

Eric Chang 提到...

請問一下,您這邊採用的Freenas版本是多少?我用0.7RC2 ,會找不到文中所提到的mfsroot.gz 這個檔案耶?

4wei-diary 提到...

可能你用的是 Freenas 安裝版,我這是 Freenas CF嵌入式版本才有 mfsroot.gz ,一般安裝版本直接改就寫入硬碟~

Eric Chang 提到...

我後來有發現怎麼處理在console中看到亂碼的問題,但是這又衍生出新的狀況。
http://blog.cowbay.org/?p=795
這是我測試的結果,要去修改/etc/login.conf,但是只要一重新開機,login.conf似乎就會被恢復成預設值。不知道您有什麼建議嗎?

Cyber Knights 提到...

embedded模式其实只要在data区做好csh.cshrc, 启动时在post_init脚本将它做ln -sf 到/etc/csh.cshrc就可以啊? 不需要操刀修改mfsroot.gz再放回这样吧?

4wei-diary 提到...

方式很多~謝謝提供這個好方法 ~

van 提到...

版大~~請問一下~我是使用0.72安裝版!!
我照您的方法在新增/etc/csh.cshre 了
可適用pietty還是無法正確顯示中文耶~請問該怎摩解決阿?
不過我嘗試用 ls -w卻可以顯示但無法修改~請問市蛇ㄇ狀況阿?