■FreeBSD10.1-RC4でqjail3.6をインストールしてみた。
$ uname -r
10.1-RC4-p1
$ pkg search qjail
qjail-3.6
qjail2-2.2
$ su root -c 'pkg install -y qjail-3.6'
■10.1-RELEASEは今のところ無いので、ftpホストを指定する方法は使えない。
$ w3m -dump "ftp://ftp2.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/"
FTP Directory: ftp://ftp2.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/
[DIRUP] Parent Directory
[DIR] 10.0-RELEASE . . . . . . . . . . Jan 17 2014
[LINK] 8.3-RELEASE. . . . . . . . . . . Mar 22 2013 [VIEW] [DOWNLOAD] -> ../8.3-RELEASE
[LINK] 8.4-RELEASE. . . . . . . . . . . Oct 03 2013 [VIEW] [DOWNLOAD] -> ../8.4-RELEASE
[DIR] 9.1-RELEASE. . . . . . . . . . . Jul 06 13:21
[DIR] 9.2-RELEASE. . . . . . . . . . . Sep 27 2013
[DIR] 9.3-BETA3. . . . . . . . . . . . Jun 13 17:19
[DIR] 9.3-RC3. . . . . . . . . . . . . Jul 09 01:48
[DIR] ISO-IMAGES . . . . . . . . . . . Jul 02 16:25
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
$ w3m -dump "ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/"
FTP Directory: ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/
[DIRUP] Parent Directory
[DIR] 10.0-RELEASE . . . . . . . . . . Jan 17 2014
[DIR] 10.1-RC3 . . . . . . . . . . . . Oct 23 00:40
[DIR] 10.1-RC4 . . . . . . . . . . . . Nov 1 07:10
[LINK] 8.4-RELEASE. . . . . . . . . . . Oct 3 2013 [VIEW] [DOWNLOAD] -> ../8.4-RELEASE
[DIR] 9.1-RELEASE. . . . . . . . . . . Jul 6 22:21
[DIR] 9.2-RELEASE. . . . . . . . . . . Sep 28 2013
[DIR] 9.3-RELEASE. . . . . . . . . . . Jul 12 05:36
[DIR] ISO-IMAGES . . . . . . . . . . . Sep 13 22:50
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■インストールに使用したメディアからscpで持ってくる。
※w3mでそのままダウンロードしてもよい。
$ ls vmware/SharedVMs/iso_system/FreeBSD-10.1-RC4-amd64-dvd1.iso
vmware/SharedVMs/iso_system/FreeBSD-10.1-RC4-amd64-dvd1.iso
$ scp vmware/SharedVMs/iso_system/FreeBSD-10.1-RC4-amd64-dvd1.iso bsd10:~/
■ISOイメージのマウント
デバイスに変換することと、mountタイプを指定することが必要。
$ sudo mdconfig -a -t vnode -f FreeBSD-10.1-RC4-amd64-dvd1.iso
md0
$ sudo mdconfig -l
md0
$ ls -l /dev/md0
crw-r----- 1 root operator 0x5f Nov 22 18:09 /dev/md0
$ sudo mount -o ro /dev/md0 /media
mount: /dev/md0: Invalid argument
$ sudo mount -t cd9660 -o ro /dev/md0 /media/
■ファイル指定でqjailのベース環境を指定する。
$ sudo find /media/ -type f -name "base.txz"
/media/usr/freebsd-dist/base.txz
$ sudo qjail install -f /media/usr/freebsd-dist/
The RELEASE distribution files are populating template.
Est LT 1 minute elapse time for this to complete.
sharedfs is being populated.
Est LT 1 minute elapse time for this to complete.
Successfully installed qjail system.
■ISOイメージのアンマウント
$ sudo umount /media
$ sudo mdconfig -d -u 0
$ sudo mdconfig -l
■ディレクトリ構成
「archive」は「qmail archive」コマンドの保存先。
「flavors」はコンソールとsshのログインのための設定。
「sharedfs」はjailの共有ディレクトリ。
「template」が雛形。
$ ls /usr/jails/*
/usr/jails/archive:
/usr/jails/flavors:
default ssh-default
/usr/jails/sharedfs:
bin lib libexec sbin sys usr
/usr/jails/template:
COPYRIGHT home mnt sharedfs var
bin lib proc sys
dev libexec root tmp
etc media sbin usr
■jail環境を作る前の確認。
空の状態のリスト。
NIC、IP、Jailnameを指定すればとりあえず動きそう。
$ sudo qjail list
STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
■Jail環境を作ってみる。
$ sudo qjail create -n em0 -4 192.168.100.1 qjail001
Successfully created qjail001
■確認
$ sudo qjail list
STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
DS N/A em0 192.168.100.1 qjail001
$ ls /usr/local/etc/qjail.*
/usr/local/etc/qjail.portsnap.conf
/usr/local/etc/qjail.fstab:
qjail001
/usr/local/etc/qjail.global:
qjail001
/usr/local/etc/qjail.local:
qjail001
/usr/local/etc/qjail.vnet:
■qjail001の起動と停止
$ sudo qjail start qjail001
Jail successfully started qjail001
$ sudo qjail stop qjail001
Jail successfully stopped qjail001
■起動してコンソールログイン、「exit」でjail環境から抜ける。
$ sudo qjail start qjail001;sudo qjail console qjail001
Jail successfully started qjail001
FreeBSD 10.1-RC4-p1 (GENERIC)
Welcome to your FreeBSD jail.
qjail001 /root >exit
logout
■qjail環境の停止とアーカイブ
$ sudo qjail stop qjail001 && sudo qjail archive qjail001
Jail successfully stopped qjail001
Successfully archived qjail001
$ ls /usr/jails/archive/
qjail001@201411221834.28.tar
$ sudo qjail list
STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
DS N/A em0 192.168.100.1 qjail001
■qjail環境の削除とリストア
稼働中のqjail環境が壊れた想定で、アーカイブからリストア
$ sudo qjail delete qjail001
Successfully deleted qjail001
$ sudo qjail list
STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
$ sudo qjail restore qjail001
Successfully restored qjail001
$ sudo qjail list
STA JID NIC IP Jailname
--- ---- --- --------------- --------------------------------------------------
DS N/A em0 192.168.100.1 qjail001