NAS4Free和FreeNAS是什么关系?DLNA (FreeNAS 支持), pyLoad, Ai freenas vs nas4free
两种将比较呢,FreeNAS 的plugin 变成使用pbi 安装, NAS4Free 就必须还是土法练钢在terminal 下键入。
但经过一番研究后,如果想安装pyLoad, Jdownloader, Air Video Server, PS3 Media Server, 反而NAS4Free 的文章比较多;
所以这篇教学就以NAS4Free 9.0 作为基准。虽然9.1 出了,但是FreeBSD 的port repository 上9.1 软体还不完整.
原文出处:http://wiki.nas4free.org/doku.php?id=documentation:howto:jails
什么是 jail and ports?
FreeBSD Jail: 简单来说,是chroot 的完整方案。可以建立一个子系统。类似主作业系统下的虚拟环境,一些套件在jai??l 上跑就有独立而不影响主要作业系统的疑虑。
Ports: FreeBSD 的软体套件。用来快速安装和部署已经包装好的软体。很方便。请参考 Ports.链接: http://www.freebsd.org/doc/handbook/ports.html
事前准备:
像原文所言,安装Jails 是属于进阶功能而且是被官方禁用的。其实功能已经足够,但更让机器完全发挥嘛,如DLNA (FreeNAS 支持), pyLoad, Air Video Server, 就要靠Jails 完成.
系统内容:
主机名nas4free.localIPv4192.168.1.74版本注*1 9.0.0.1 – Sandstorm version 249 Full Installation (不是用 embedded 的)平台注*2 Windows 2012 Standard Server Hyper-V (虚拟机)BIOSBoot from CDMemory1024 MBProcessor1 Virtual processorDE Controller 01 x nas4free9.vhd (OS 系统盘 – 40G, 4G USB ), 1 x N4FZFS.vhd (ZFS 挂在盘 – 40G)IDE DVD DriveController 0NetworkLegacy Network Adapter DHCP (新的版本不止,建议用老版本)* 注1:下载Live CD 的ISO 档,再按9安装选3 Full Installation.* 注2:Hyper-V 的设置不在本篇的范围内,硬体或VMWare 上安装应该是大同小异。
此时 Web GUI 管理界面已经可以使用了,打开浏览器,输入你的NAS的IP就可以了。
NAS4Free Web UI默认的帐号密码
User ID: adminPassword: nas4free
安装步骤:
先按6 进入Shell 吧. 如果想远端用Terminal or Putty 进入的,记得去Web GUI 上的Services 内把SSH 打开. 还要勾取Permit root login, 就可以用root 登入,预设密码是nas4free
建立目录和挂载点
mkdir /jailmkdir /mnt/datamkdir /mnt/data/jailmkdir /mnt/data/jail/{work,proto,conf}mount_nullfs /mnt/data/jail /jail
说明:
/JAIL/WORK 用来储存下载的临时档案
/JAIL/PROTO 用来建立新Jail雏形的目录
/JAIL/CONF 用来存放设定档和起动档的目录
下载 FreeBSD 主要系统
cd /jail/workfetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/`uname -m`/`uname -m`/`uname -r | cut -d- -f1-2`/base.txzfetch 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
解开到/jail/proto 目录作为建??立其它jail 的雏形
tar xvf /jail/work/base.txz -C /jail/proto/tar xvf /jail/work/lib32.txz -C /jail/proto/
安装 jail 档
先建立 jail 所需的目录结构
# cd /jailmkdir -p conf/root/{etc/rc.d/,usr/bin,usr/sbin}
再copy 必须的rc-script (开机会自动执行的程式). 从刚才下载的基本雏形目录下copy 过来。
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/
根据原著的介绍,作者在此先停止解释了结构,可以参考原文的Pit Stop 部份。我不放在此是因为作者要说明树状目录的构造,我是懒人copy & paste 教学。故跳过.
设定雏形 jail
从NAS4Free 的主机先copy 设定档,以下是DNS resolve.conf
cp /etc/resolv.conf /jail/proto/etc/
设定时区
当然就依照自已的时区做更改了,我是美西时间,就如以下.
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 档来挂载用
我们刚才在系统需求中有第2个40G的ZFS 硬碟,在Web GUI 中可以把第2个硬碟设定成ZFS 格式,里头的档案就可以挂给jail 用。
但我们就先建立一个空白的档,以后再来谈挂载自动起动的部份。
touch /jail/conf/fstab.proto
建立 rc.conf.local 设定文件
touch /jail/conf/rc.conf.localnano /jail/conf/rc.conf.local
复制以下的程式码
在 copy 之前,有几个地方要注意的.
1.jail_proto_hostname= 改成自已想要的名字
2.jail_proto_ip=改成合适的IP (要在同一个subnet 下. 如255.255.255.0)
3.jail_proto_interface=”de0″ (请参考图一或自已的Console画面来判断)
### EXAMPLE - MODIFY TO FIT YOUR NEEDS ###jail_enable="YES"# enable jails YES|NOjail_list="proto"# name of the jails to start "proto www..."jail_proto_rootdir="/jail/proto"# path to our jailjail_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 namejail_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 保存离开.
结束设定和起动 jail
首先, 先建立一个启动档
nano /jail/conf/jail_start
再加入以下的內容
#!/bin/tcsh -x#mounting to /jailmkdir /jailmount_nullfs /mnt/data/jail /jail# copy jail binaries to /usrcp -r /jail/conf/root/ /# link config files to /etcln -s /jail/conf/rc.conf.local /etc#start all jails/etc/rc.d/jail start
按Ctrl + x 再按Y 储存离开.
保存后, 改变启动档的权限属性.
chmod 755 /jail/conf/jail_start
让启动档在开机时自动执行
当然也有CLI 的做法,但也可以简单的在Web GUI 上做. 打开浏览器打入IP 位置,本例是192.168.1.74
去System > Advanced > Command 按+号后, 加入以下内容Command: /mnt/data/jai??l/conf/jail_startType: PostInit
按Add后,就重新开机吧. 但是如果你是使用Hyper-V 的人,会遇到一个小问题. 就是重开NAS4Free 后,网卡的设置会不见.
还有,预设的jail 的IP也无法沟通, 解决方法如下.
解决Hyper-V 上NAS4Free 无法抓到网址和jail 网址
1.在黑黑的Console setup 画面, 先按2重新抓IP 位址. 我跳过IPv6 的部份只抓IPv4. 正常来说就会抓到了.
2.按6 进入Shell, 先打jls 看到以下的结果代表jail安装成功了.
nas4free:~# jls JID IP Address Hostname Path 1 192.168.1.51 proto.nas4free.local /jail/proto
但是呢,你去ping 192.168.1.51 是没有回应的. 所以我们接下来就是重新启动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
重新启动的 jail 也可以ping 到了。同时也可以跟同一个子网路下的电脑沟通了。
最后再打入下面的指令就可以进入到jail 了。
jexec 2 csh
到现在为止,jail 已经可以说是完全安装好了,接下来就是进阶的安装FreeBSD port 上的软件。
Hello
May 24
上周,由 Ansonyi 重新编辑
接上文
————————
进阶安装部份
原文里有介绍说帮 jail 减肥。如果你打算把NAS4Free塞进小小的USB Drive 或着是CF卡里,或许有必要,我是跳过。因为把所有CVS(Concurrent Versions System) 都下载完约占了约1.3G的容量。如果再用buildworld 后,4G的USB是装不下的,但现在随随便便一个USB Drive 就是32G。我就懒的不瘦身了。如果你的USB Drive 只有4G, 我建议瘦一下身吧。
接下来的部份都是在jail 里完成的,所以请用jls 指令查出现在jail 的ID. 我的是2。键入以下指令就可以进入了。
jlsJID IP Address Hostname Path2 192.168.1.51 proto.nas4free.local /jail/protojexec 2 cshproto#
指向 FreeBSD 的原始码
先把 source-supfile 复制过来 jail 里。再按ee去编辑,如果你习惯用nano, 也可以打pkg_add -r nano 安装。
proto#cp /usr/share/examples/cvsup/standard-supfile /etc/source-supfileee /etc/source-supfile
到第49行找以下的设定来做更改。
把*default host=CHANGE_THIS.FreeBSD.org
改成*default host=cvsup.US.FreeBSD.org
*注:用csup 指令来抓取放在FreeBSD伺服器上的原始码,但要先改CVS 的位址。在很多国家都有伺服器,所以2码的ISO 国家码请自行更改。我的例子就是US, 台湾是TW, 大陆就是CN啰。以此类推。
如果是用ee ,按Enter + Esc 跳出,记得选save 结束。
最后再更新原始码的内容,打以下指令:
csup -z /etc/source-supfile
这步骤要花费很长的时间。我的VM 上要超过1小时,所以可以先去喝杯咖啡吧。
buildworld
原文写到:The process of recompiling the complete system from source is called buildworld. 很有意思的程序。所以proto 就是我们的原生雏型,用它来编译其它新的jail.
但基于安全理由,系统是不充许更改旗标(flag)的。所以我们要先去Web GUI 更改Sysctl,步骤如下。
先在 Browser 打 http://192.168.1.74登入后去 System - Advanced - sysctl.sonf在最下面按+号。
出現輸入格後,就參照以下的內容複製。
Name: security.jail.chflags_allowed Value: 1 Comment: Allow chflags inside jails
在jail 里,就可以开始建立新世界了。这个也是会跑很久。我在VM和Pentium D 的机器上都要跑2小时以上。 (没有瘦身的结果,可以参考原文来改/etc/src.conf 档)建议先去休息一下再回来看结果。
proto# cd /usr/srcproto# make -j1 buildworld
*驻:-j4 是指可以同时执行的程序数,原作者是建议一个CPU核一个,我是用VM, 保守一点选1.我也有选过2,只是在build 的时候会出现错误,只好乖乖的选1。我的Hyper-V Server 只有双核,所以我只开1线来跑。
等看到下面的画面,就大功告成啰。
Build 结束后,最后一步就是安装。
make installworld
安装步骤也满耗时间的,刚才已经喝过咖啡和休息过了,那就去玩个iPad 小游戏吧。
建立一个新的 jail
当world 建立完后,表示我们之前辛苦建的proto 雏形已经完成,接下来可以简单的建立其它新的jail 了。原作者介绍了一个直接建立Apache + PHP + MySQL 的网站。我们来试试看。
当然你也可以直接复制设定档开始,但我们使用FreeBSD 的方法。首先在还没进入 jail 前:
mkdir /jail/www
挂载 www 目录到 proto 的挂载点下面
mount_nullfs /jail/www /jail/proto/mnt/
进去 proto 的 jail 中。
jexec 2 cshproto#
安装world 在刚才把www 挂在proto 的挂载点上。 DESTDIR 就是目标目录. installworld 只会安装基本软件。
cd /usr/srcmake installworld DESTDIR=/mnt
这个步骤也是满耗时间的。就先放到一边暂等吧。完成后就要再用make distribution 来安装预设的设定档.
make distribution DESTDIR=/mnt
待完成后,就可以退出 jail 了。
exit
也可以把挂载点却下了。回到 nas4free# 下
nas4free#umount /jail/www
接下来要重覆之前6.6 章里设定时区的部份来帮新的www jail 设定基本资讯。时间和DNS是很重要的。
cp /etc/resolv.conf /jail/www/etc/cp /jail/proto/usr/share/zoneinfo/America/Los_Angeles /jail/www/etc/localtime
最后就是帮新的www jail 在开机时自动建立磁碟载点和自动执行设定.
touch /jail/conf/fstab.wwwnano /jail/conf/rc.conf.local
先找第3行
jail_list="proto" 修改成jail_list="proto www" (中间以空格键间隔)
再来在下面空白的地方贴上下面其它的设定
jail_www_rootdir="/jail/www"jail_www_hostname="www.nas4free.local"jail_www_ip="192.168.1.52" # change to a new IPjail_www_interface="de0" # match your interface namejail_www_devfs_enable="YES"jail_www_mount_enable="YES"jail_www_fstab="/jail/conf/fstab.www"
*注:跟刚才6.8 章一样,jail_www_ip 要跟刚才不一样的,还有jail_www_interface=”de0″ 也要跟你的网卡名符合
Ctrl + x 和y 储存离开后,就来个重开机吧。当然,在hyper-v 上每次开机都要重新抓IP 和重启jail. 请参照6.12 的解说。
之后打jls 看到2个同时执行的jail 就大工告成啦。
nas4free:~# jls JID IP Address Hostname Path 3 192.168.1.51 proto.nas4free.local /jail/proto 4 192.168.1.52 www.nas4free.local /jail/www
在新 www jail 上安装 ports
FreeBSD ports 就是把软体都打包好方便下载安装。我们先拿取一份在server上的镜像来同步. 但要先进入新建的jail 里。刚才看给www 的新JID 是4,那就要打4进去
jexec 4 cshwww#portsnap fetch extract
由于我们要抓取一分现在ports 的所有树状结构镜像再解开,这过程少说也要1个小时。我先去吃个饭吧。基本上整个在nas4free 安装基本jail 就差不多,安装新的Apahce + MySQL + PHP 我再另辟新文来写好了。
更多阅读
————蒜苗、蒜黄、蒜薹和大蒜之间是什么关系? 蒜薹 蒜苗
科学实践活动————蒜苗、蒜黄、蒜薹和大蒜之间是什么关系?四年级三班李傲嘉平时在市场上、餐桌上经常可以见到蒜苗、蒜黄、蒜薹,它们都源自大蒜,可它们之间到底有什么不同呢?
色和空是什么含义? 太空银是什么颜色
色空是佛家的一个根本,色会影响、干扰人的五识,甚至八识。色是什么呢?色就是空,空就是色,大家都会说。色就是大自然三原色相互滋生的赤橙黄绿青蓝紫,就是五颜六色、五光十色,就是指大自然的颜色。什么是大自然的颜色?就是大自然的多种多样
NAS4Free和FreeNAS是什么关系?DLNA (FreeNAS 支持), pyLoad, Ai freenas vs nas4free
FreeNAS 自2011年被ix systems 买走产品名后,就出现了二种版本的分岐,原作者把程式码捐出后,NAS4Free 反而是继承原来FreeNAS 7 的风格。两种将比较呢,FreeNAS 的plugin 变成使用pbi 安装, NAS4Free 就必须还是土法练钢在terminal 下键入
贾宝玉和通灵宝玉到底是啥关系? 贾宝玉的通灵玉命根子
《红楼笔记》之四百七十四风之子原创前面啰啰嗦嗦不得要领地说了那么多,归根结蒂一句话,这通灵宝玉和贾宝玉究竟是什么关系?第八回,有关于通灵宝玉的详细描写,其中,重点对通灵宝玉上面所镌刻的字进行了介绍:通灵宝
人与自然究竟是什么关系 人与自然的三种关系是
人与自然究竟是什么关系?——从冰岛的做法说起邓伟志编者按:邓伟志教授在《人与自然究竟是什么关系?》一文中纵横驰骋,提出了若干同现在流行的看法相左的观点。对这些观点我们有的赞成,有的也不太同意。只因为邓教授这种敢于向流行挑战的