====== 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