FreeNAS 自2011年被ix systems 買走產(chǎn)品名后,就出現(xiàn)了二種版本的分岐,原作者把程式碼捐出后,NAS4Free 反而是繼承原來(lái)FreeNAS 7 的風(fēng)格。
兩種將比較呢,F(xiàn)reeNAS 的plugin 變成使用pbi 安裝, NAS4Free 就必須還是土法練鋼在terminal 下鍵入。
但經(jīng)過(guò)一番研究后,如果想安裝pyLoad, Jdownloader, Air Video Server, PS3 Media Server, 反而NAS4Free 的文章比較多;
所以這篇教學(xué)就以NAS4Free 9.0 作為基準(zhǔn)。雖然9.1 出了,但是FreeBSD 的port repository 上9.1 軟體還不完整.
原文出處:http://wiki.nas4free.org/doku.php?id=documentation:howto:jails
什么是 jail and ports?
FreeBSD Jail: 簡(jiǎn)單來(lái)說(shuō),是chroot 的完整方案??梢越⒁粋€(gè)子系統(tǒng)。類似主作業(yè)系統(tǒng)下的虛擬環(huán)境,一些套件在jai??l 上跑就有獨(dú)立而不影響主要作業(yè)系統(tǒng)的疑慮。
Ports: FreeBSD 的軟體套件。用來(lái)快速安裝和部署已經(jīng)包裝好的軟體。很方便。請(qǐng)參考 Ports.鏈接: http://www.freebsd.org/doc/handbook/ports.html
事前準(zhǔn)備:
像原文所言,安裝Jails 是屬于進(jìn)階功能而且是被官方禁用的。其實(shí)功能已經(jīng)足夠,但更讓機(jī)器完全發(fā)揮嘛,如DLNA (FreeNAS 支持), pyLoad, Air Video Server, 就要靠Jails 完成.
系統(tǒng)內(nèi)容:
主機(jī)名 nas4free.local IPv4 192.168.1.74 版本 注*1 9.0.0.1 – Sandstorm version 249 Full Installation (不是用 embedded 的) 平臺(tái) 注*2 Windows 2012 Standard Server Hyper-V (虛擬機(jī)) BIOS Boot from CD Memory 1024 MB Processor 1 Virtual processor DE Controller 0 1 x nas4free9.vhd (OS 系統(tǒng)盤 – 40G, 4G USB ), 1 x N4FZFS.vhd (ZFS 掛在盤 – 40G) IDE DVD Drive Controller 0 Network Legacy Network Adapter DHCP (新的版本不止,建議用老版本) * 注1:下載Live CD 的ISO 檔,再按9安裝選3 Full Installation. * 注2:Hyper-V 的設(shè)置不在本篇的范圍內(nèi),硬體或VMWare 上安裝應(yīng)該是大同小異。

此時(shí) Web GUI 管理界面已經(jīng)可以使用了,打開(kāi)瀏覽器,輸入你的NAS的IP就可以了。

NAS4Free Web UI默認(rèn)的賬號(hào)密碼
User ID: admin Password: nas4free
安裝步驟:
先按6 進(jìn)入Shell 吧. 如果想遠(yuǎn)端用Terminal or Putty 進(jìn)入的,記得去Web GUI 上的Services 內(nèi)把SSH 打開(kāi). 還要勾取Permit root login, 就可以用root 登入,預(yù)設(shè)密碼是nas4free
建立目錄和掛載點(diǎn)
mkdir /jail mkdir /mnt/data mkdir /mnt/data/jail mkdir /mnt/data/jail/{work,proto,conf} mount_nullfs /mnt/data/jail /jail
說(shuō)明:
/JAIL/WORK 用來(lái)儲(chǔ)存下載的臨時(shí)檔案
/JAIL/PROTO 用來(lái)建立新Jail雛形的目錄
/JAIL/CONF 用來(lái)存放設(shè)定檔和起動(dòng)檔的目錄
下載 FreeBSD 主要系統(tǒng)
cd /jail/work fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/`uname -m`/`uname -m`/`uname -r | cut -d- -f1-2`/base.txz fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/`uname -m`/`uname -m`/`uname -r | cut -d- -f1-2`/lib32.txz
* 注:原文把版本名直取用uname 取出了,方便很多. uname -m = amd64, uname -r = 9.0-RELEASE-p4
解開(kāi)到/jail/proto 目錄作為建??立其它jail 的雛形
tar xvf /jail/work/base.txz -C /jail/proto/ tar xvf /jail/work/lib32.txz -C /jail/proto/
安裝 jail 檔
先建立 jail 所需的目錄結(jié)構(gòu)
# cd /jail mkdir -p conf/root/{etc/rc.d/,usr/bin,usr/sbin}
再copy 必須的rc-script (開(kāi)機(jī)會(huì)自動(dòng)執(zhí)行的程式). 從剛才下載的基本雛形目錄下copy 過(guò)來(lái)。
cp proto/etc/rc.d/jail conf/root/etc/rc.d/ cp proto/usr/sbin/{jail,jexec,jls} conf/root/usr/sbin/ cp proto/usr/bin/mktemp conf/root/usr/bin/
根據(jù)原著的介紹,作者在此先停止解釋了結(jié)構(gòu),可以參考原文的Pit Stop 部份。我不放在此是因?yàn)樽髡咭f(shuō)明樹狀目錄的構(gòu)造,我是懶人copy & paste 教學(xué)。故跳過(guò).
設(shè)定雛形 jail
從NAS4Free 的主機(jī)先copy 設(shè)定檔,以下是DNS resolve.conf
cp /etc/resolv.conf /jail/proto/etc/
設(shè)定時(shí)區(qū)
當(dāng)然就依照自已的時(shí)區(qū)做更改了,我是美西時(shí)間,就如以下.
cp /jail/proto/usr/share/zoneinfo/America/Los_Angeles /jail/proto/etc/localtime
如果是在大陸,那就是
cp /jail/proto/usr/share/zoneinfo/Asia/shanghai /jail/proto/etc/localtime
建立 fstab 檔來(lái)掛載用
我們剛才在系統(tǒng)需求中有第2個(gè)40G的ZFS 硬碟,在Web GUI 中可以把第2個(gè)硬碟設(shè)定成ZFS 格式,里頭的檔案就可以掛給jail 用。
但我們就先建立一個(gè)空白的檔,以后再來(lái)談掛載自動(dòng)起動(dòng)的部份。
touch /jail/conf/fstab.proto
建立 rc.conf.local 設(shè)定文件
touch /jail/conf/rc.conf.local nano /jail/conf/rc.conf.local
復(fù)制以下的程式碼
在 copy 之前,有幾個(gè)地方要注意的.
1.jail_proto_hostname= 改成自已想要的名字
2.jail_proto_ip=改成合適的IP (要在同一個(gè)subnet 下. 如255.255.255.0)
3.jail_proto_interface=”de0″ (請(qǐng)參考圖一或自已的Console畫面來(lái)判斷)
### EXAMPLE - MODIFY TO FIT YOUR NEEDS ### jail_enable="YES" # enable jails YES|NO jail_list="proto" # name of the jails to start "proto www..." jail_proto_rootdir="/jail/proto" # path to our jail jail_proto_hostname="proto.nas4free.local" # hostname jail_proto_ip="192.168.1.51" # ip of the jail jail_proto_interface="de0" # Network Interface to use, replace on your NAS interface name jail_proto_devfs_enable="YES" # use devfs jail_proto_mount_enable="YES" # mount YES|NO jail_proto_fstab="/jail/conf/fstab.proto" # File with Filesystems to mount
按 Ctrl + x 再按 Y 保存離開(kāi).
結(jié)束設(shè)定和起動(dòng) jail
首先, 先建立一個(gè)啟動(dòng)檔
nano /jail/conf/jail_start
再加入以下的內(nèi)容
#!/bin/tcsh -x #mounting to /jail mkdir /jail mount_nullfs /mnt/data/jail /jail # copy jail binaries to /usr cp -r /jail/conf/root/ / # link config files to /etc ln -s /jail/conf/rc.conf.local /etc #start all jails /etc/rc.d/jail start
按Ctrl + x 再按Y 儲(chǔ)存離開(kāi).
保存后, 改變啟動(dòng)檔的權(quán)限屬性.
chmod 755 /jail/conf/jail_start
讓啟動(dòng)檔在開(kāi)機(jī)時(shí)自動(dòng)執(zhí)行
當(dāng)然也有CLI 的做法,但也可以簡(jiǎn)單的在Web GUI 上做. 打開(kāi)瀏覽器打入IP 位置,本例是192.168.1.74
去System > Advanced > Command 按+號(hào)后, 加入以下內(nèi)容 Command: /mnt/data/jai??l/conf/jail_start Type: PostInit
按Add后,就重新開(kāi)機(jī)吧. 但是如果你是使用Hyper-V 的人,會(huì)遇到一個(gè)小問(wèn)題. 就是重開(kāi)NAS4Free 后,網(wǎng)卡的設(shè)置會(huì)不見(jiàn).
還有,預(yù)設(shè)的jail 的IP也無(wú)法溝通, 解決方法如下.
解決Hyper-V 上NAS4Free 無(wú)法抓到網(wǎng)址和jail 網(wǎng)址
1.在黑黑的Console setup 畫面, 先按2重新抓IP 位址. 我跳過(guò)IPv6 的部份只抓IPv4. 正常來(lái)說(shuō)就會(huì)抓到了.
2.按6 進(jìn)入Shell, 先打jls 看到以下的結(jié)果代表jail安裝成功了.
nas4free:~# jls JID IP Address Hostname Path 1 192.168.1.51 proto.nas4free.local /jail/proto
但是呢,你去ping 192.168.1.51 是沒(méi)有回應(yīng)的. 所以我們接下來(lái)就是重新啟動(dòng)jail
/etc/rc.d/jail restart
之后再打jls 后, 就看到以下的新jail ID.
Welcome to NAS4Free!nas4free:~# jls JID IP Address Hostname Path 2 192.168.1.51 proto.nas4free.local /jail/proto
重新啟動(dòng)的 jail 也可以ping 到了。同時(shí)也可以跟同一個(gè)子網(wǎng)路下的電腦溝通了。
最后再打入下面的指令就可以進(jìn)入到j(luò)ail 了。
jexec 2 csh
到現(xiàn)在為止,jail 已經(jīng)可以說(shuō)是完全安裝好了,接下來(lái)就是進(jìn)階的安裝FreeBSD port 上的軟件。