====== Jail on XigmaNAS ======
XigamaNASでjailを立ち上げる場合NAS用に調整されているため通常と若干異なる部分がある
===== 作業用DirとMountPointの作成 =====
# mkdir /jail
# mkdir /mnt/data/jail
# mkdir /mnt/data/jail/{work,proto,conf}
# mount_nullfs /mnt/data/jail /jail
^/jail/work |ダウンロード、temp |
^/jail/proto |今回作成するJail|
^/jail/conf |設定、動作用ファイル |
===== Baseのダウンロードと解凍 =====
==== ダウンロード ====
# 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
※ 32bitシステムの場合はlib32.txzは不要です\\
※ こちらからもダウンロード可能
https://download.freebsd.org/releases/`uname -m`/`uname -m`/`uname -r | cut -d- -f1-2`/
==== 解凍 ====
ダウンロードしたBaseを /jail/proto/ に解凍します
# tar xvf /jail/work/base.txz -C /jail/proto/
# tar xvf /jail/work/lib32.txz -C /jail/proto/
===== 設定 =====
==== Jailに必要な設定ファイル ====
ホスト((XigamaNAS))の /etc/resolve.conf をコピーします
# cp /etc/resolv.conf /jail/proto/etc/
==== タイムゾーン ====
必要なtimezoneファイルをコピーします
# cp /jail/proto/usr/share/zoneinfo/Asia/Tokyo /jail/proto/etc/localtime
==== fstab ====
jailへマウントしたい場合に備えて fstab を作成しておきます
# touch /jail/conf/fstab.proto
例えば、ホスト上の /mnt/data/Video を マウントするケースでは以下のように書けます((細部は自身の環境に合わせて変更してください))
/mnt/data/Video /jail/proto/mnt/Video nullfs ro 0 0
==== rc.conf.localの作成 ====
# cd /jail
# touch conf/rc.conf.local
# nano conf/rc.conf.local
jail_enable="YES" # enable jails YES|NO
jail_list="proto" # name of the jails to start "proto www..."
==== jail.confの作成 ====
今回の例です((細部は自身の環境に合わせて変更してください))
# cd /jail
# touch conf/jail.conf
# nano conf/jail.conf
# common variables
# Network
$nic = "re0";
exec.prestart += "ifconfig ${nic} inet ${ip4.addr} add";
# Start,Stop
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
path = "/jail/$name";
host.hostname = $name;
allow.chflags;
allow.raw_sockets;
## each jail
proto {
ip4.addr = 192.168.111.222;
mount.fstab="/etc/fstab.${name}"
}
==== 起動用Scriptの作成 ====
# nano /jail/conf/jail_start
#!/bin/sh
# mounting to /jail
mkdir /jail
mount_nullfs /mnt/data/jail /jail
# link config file
ln -s /jail/conf/rc.conf.local /etc
ln -s /jail/conf/jail.conf /etc
ln -s /jail/conf/fstab.* /etc
#start all jails
/etc/rc.d/jail start
# chmod 755 /jail/conf/jail_start
===== 起動 =====
WebGUIから起動用Scriptの設定を行います
**システム > 高度な設定 > コマンドスクリプト** から設定します
^Command:|/mnt/data/jail/conf/jail_start|
^Type:|PostInit((初期化後))|
最後に再起動します
==== 確認 ====
sshでホストにログインして以下のように確認します
# jls
JID IP Address Hostname Path
1 192.168.111.222 proto /jail/proto
===== 停止と削除 =====
==== 停止 ====
# service jail stop
==== 削除 ====
/jail/conf/rc.conf.localのjail_listから 削除するjailを消す
jail_list = “proto”
↓
jail_list = “”
最後にjailのdirを削除
# chflags -R noschg /mnt/data/jail/proto
# rm -rf /mnt/data/jail/proto