2011年11月20日日曜日

Debian/kFreeBSDでjailを使う

squeezeリリースの際に話題になったDebian/kFreeBSD。いろいろと主要な 機能がsqueezeリリース時点では足りず残念だったのだが、wheezy(testing) は着々と開発が進んでいるようで、先日遂に wheezyの freebsd-utilsにjailが含まれた。そこで、今回はjailを用いて Debian/kFreeBSDの中にFreeBSDっぽいものを量産してみようと思う。

Debian/kFreeBSD wheezyをインストール

今回必要となるのはwheezy(testing)以降のDebian/kFreeBSDである。wheezyの インストール はdaily build のdebian-installerを用いて直接行うことも可能だが、あまりうまく行っ た試しが無い。そこで一旦squeezeをインストールし、その後wheezyにupgrade する。
root@kfbsd:/# sed -i.squeeze s/squeeze/wheezy/g /etc/apt/sources.list
root@kfbsd:/# aptitude update
root@kfbsd:/# aptitude full-upgrade

Debian/kFreeBSD wheezyをdebootstrap

jail用にwheezyを/var/jail/wheezyに用意する。素のFreeBSDならば/usr/src に入ってうんたらアーカイブを展開してかんたらとかあるのだが、今回は Debianなのでdebootstrapで一発である。
root@kfbsd:/# aptitude install debootstrap
root@kfbsd:/# debootstrap wheezy /var/jail/wheezy http://ftp.jaist.ac.jp/pub/Linux/Debian
もしi386向けのsqueezeを用意したいのならば、以下のようにdebootstrapを実 行する。
root@kfbsd:/# debootstrap --arch kfreebsd-i386 squeeze /var/jail/squeeze_i386 \
> http://ftp.jaist.ac.jp/pub/Linux/Debian

jailに入る

そして作成したjail環境に入る。
root@kfbsd:/# ifconfig em0 alias 10.0.0.3/24
root@kfbsd:/# /usr/sbin/jail -c path=/var/jail/wheezy host.hostname=negi \
> ip4.addr=10.0.0.3 command=/bin/bash
root@negi:/# hostname
negi
root@negi:/# ifconfig | grep inet
        inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
/devが必要な場合は、親からdevfsをmountする。
root@kfbsd:/# mount_devfs devfs /var/jail/wheezy

FreeBSDのjail環境をDebian/kFreeBSD内に作る

カーネルはFreeBSDなので、普通のFreeBSDのユーザーランドを持ってきてjail 環境とすることもできるらしい。今回は2011年11月18日時点で最新の FreeBSD9.0-RC2 amd64のユーザーランドを用意。カーネルとのバージョンの違 いは気にしないことにする(ぁ
root@kfbsd:/# wget http://ftp.jaist.ac.jp/pub/FreeBSD/releases/amd64/amd64/9.0-RC2/base.txz
root@kfbsd:/# mkdir /var/jail/freebsd
root@kfbsd:/# tar xpJf base.txz -C /var/jail/freebsd
root@kfbsd:/# mount_devfs devfs /var/jail/freebsd
root@kfbsd:/# /usr/sbin/jail -c path=/var/jail/freebsd host.hostname=fbsd \
> ip4.addr=10.0.0.3 command=/bin/sh
# uname -a
FreeBSD fbsd 8.2-1-amd64 #0 Mon Oct 17 18:49:25 UTC 2011  amd64
# ps aux
USER   PID  %CPU %MEM    VSZ    RSS  TT  STAT STARTED    TIME COMMAND
root 28266   0.0  0.2  14632   2348  p1  SJ    4:57AM 0:00.01 /bin/sh
root 28268   0.0  0.2  14324   1756  p1  R+J   4:57AM 0:00.00 ps aux
# clang -v
FreeBSD clang version 3.0 (branches/release_30 142614) 20111021
Target: x86_64-unknown-freebsd9.0
Thread model: posix

残念ながらまだjexecやjlsは追加されていないようだが、Debian/kFreeBSDで もjailが使えるということが分かっただけでもよしということにしておこう。

jail以外にも、インストーラがZFSに対応したり、NFS Server/Clientが 追加されていたり、experimentalにkfreebsd-image-10-amd64が出現して いたりと、いつの間にかいろいろ増えていることが多いDebian/kFreeBSD。 wheezyリリース時にはかなりいい感じになるのではないかと、期待が膨らむ。

0 件のコメント:

コメントを投稿