2012年2月2日 星期四

FreeNAS 8.0.3 multimedia版設定


FreeNAS是免費作業系統FreeBSD的簡化版,之所以研究這個
起因是看到PCHome購物上有便宜的NAS(Network Attached Storage)想敗家的關係
結果上敗家小惡魔找評價,卻覺得便宜的版本還不夠好用
然後就發現有人推這套軟體,而且還有BT Client與DLNA功能,相當地符合我的需求
而且家裡有舊筆電可以試試,就開始研究啦!
研究一個新的東西的結果總是充滿著無數次失敗的嘗試
一上官網就先下載新版,8.0.3p
結果裝完後去爬文才發現,沒有BT與DLNA功能...
開發者為了單純化,先把這些拿掉了 Orz

開始爬文,看看Roadmap,要8.2版才會有可能支援
再爬文發現有nighty版,好,先用...
還是不行,雖然功能更強大,像直接在瀏覽器上使用Shell指令等
但也沒有直接安裝這些套件
仔細一看sourceforge檔案列表才發現有個8.0.3 multimedia版
下載,安裝,喔喔喔,內建minidlna與transmission咧!

照著這篇文章一步一步來,終於搞定了DNLA功能
接著就是transmission了,但是,難搞多了
因為不知道參考文章有點問題,還是軟體有做變更
實際照著設定的結果就是問題多多
這邊把使用結果做個筆記,硬體部分使用的是VMWARE虛擬電腦
正常的電腦應該也差不多,大家可以試試看

首先,請到http://sourceforge.net/projects/freenas/files/FreeNAS-8.0.3-multimedia/
下載多媒體版來使用
這邊我選FreeNAS-8.0.3-RELEASE_MULTIMEDIA-p1-x86.iso
然後安裝作業系統很簡單,就是當開機光碟用後,直接選第一個選項進行安裝
唯一要注意的只有一點,它沒有進行硬體分割的選項
所以直接用小一點的硬碟(其本上2G就非常夠用),或使用CF轉IDE(SATA)用CF卡當硬碟
不然剩餘的空間並無法當分享使用,切記切記
至於事先分割能不能,我就沒試過了

重新開機後,就可以開始進行設定了
網路設定的部分我就跳過了
我們照著一般的設定,先進行網頁的部分進行管理者(root)的密碼設定
然後建新一個Volume給要放資料的硬碟,這邊的範例名稱訂為tank

之後,最好再重新開機一次,這樣Windows的CFIS與SSH服務才能正常啟動
不開SSH也可以,但是後續使用root進行權限變更才可以讓分享更方便

接下來就是重點了
更改Volume磁碟的權限,開放給某一個群組使用,這邊用www當範例

建立一個使用者名稱請自訂,這邊範例用netserver
建立home目錄到/mnt/tank/home/netserver
群組指定給www
設定全名與密碼


接下來有兩個作法

一、使用Putty利用SSH進入伺服器,然後登入netserver帳號後
    建立需要的目錄,我設定了download、music、movie、picture這些,要當作分享用
    然後transmission需要建立.config/transmission-daemon目錄在使用者的Home目錄下
    mkdir -p $HOME/.config/transmission-daemon
    minidlna需要建立var/db/minidlna目錄,同樣在使用者的Home目錄下
    mkdir -p $HOME/var/db/minidlna


二、直接在伺服器上使用root建立上述目錄
    但是就要打上全部的路徑,例如
    mkdir -p /mnt/tank/home/netserver/.config/transmission-daemon
    mkdir -p /mnt/tank/home/netserver/var/db/minidlna
    然後再使用chown指令變更這些目錄的權限給netserver與www群組
    不然會沒法寫入,再次感謝鳥哥的網站,這指令差點忘光了呢

之後別忘了進入管理用網頁
把剛剛設定的download、music等目錄設為windows分享目錄
這樣才能自由地存取下載或上傳的資料


再來統一使用root的帳號,將兩個服務的指令檔copy到對應的地方
cp /usr/local/etc/transmission/home/settings.json /mnt/tank/home/netserver/.config/transmission-daemon
cp /usr/local/etc/minidlna.conf /mnt/tank/home/netserver
使用chown變更這兩個檔案的權限給netserver

原本的文章是使用sed來進行這兩個檔案的變更啦
不過我覺得不好用,就直接用edit來修改想要的地方啦,用vi也行啦
edit minidlna.conf
然後將指定目錄的地方,分別對應上自己設定的分享目錄

settings.json不用管它,我們要使用rc.conf來重設

接下來是重點中的重點
建議一次改完,不要再重工打二次
先講minidlna
使用以下指令
mount -wu /
然後直接修改/conf/base/etc/rc.conf這個檔案
找到minidlna_enable="NO"
        minidlna_flags="/mnt/tank/home/myuser"
改成minidlna_enable="YES"
        minidlna_flags="/mnt/tank/home/netserver"

 
transmission的部分就比較複雜
找到transmission_enable="NO"
        transmission_watch_dir=""
        transmission_donwload_dir=""
        transmission_user="myuser"
原本是,將NO改成YES,myuser改成netserver(目前使用者)
可是我執行的結果會沒辦法啟動服務
依網路上另外找到的資料,改成這樣
        transmission_enable="YES"
        transmission_conf_dir="/mnt/tank/home/netserver/.config/transmission-daemon"
        transmission_watch_dir=""
        transmission_donwload_dir="/mnt/tank/home/netserver/download"
        transmission_user="netserver"
        transmission_flags="-a 127.0.0.1,192.168.*.*"

然後重新開機(Reboot)後
服務應該就正常啟動了
可以使用dlna的電視或播放機(PS3、Xbox360)看有沒有連上線
至於transmission的部分,請使用port:9091連入網頁
應該就可以使用了

上述transmission的狀況是這樣的
單純使用教學文章的設定,會無法執行服務,但是可以以使用者netserver登入後
執行以下指令來啟動
transmission-daemon -f
可是我們需要的是啟動服務,而非使用者登入後,再執行
所以我們使用指定設定的作法
但是當指定設定的資料夾(transmission_conf_dir)後
會自動產生settings.json,只針對它修改根本行不通
此時,要指定下載資料夾必需使用transmission_download_dir
同時,要允許其它的IP位址登入transmission的網頁,則需要在transmission_flags裡
加上"-a 127.0.0.0,192.168.*.*"來增加連線許可與其它設定
這邊增加了192.168.*.*的位址允許操作
如果想要建立允許進入RPC服務的帳號與密碼
請加上"-t -u username -v password" username就是自定帳號,後面當然是自定密碼
其它的參數,請使用下列指令來觀看
transmission-daemon -help|more

沒有留言: