だいぶ日が空きました。色々と忙しかったのです。
さて、題のとおりです。
jailの「元」の準備
作成
まずはおもむろに
% zfs list
を実行
zroot/jail/base 364M 43.2G 363M /jail/base
あら最初から用意されてた。。このはちゃんはこの辺も気が利いていて大変うれしゅうございます。
ただここの「zroot/jail/base」っていうのは覚えておかないとあとでめんどう。めもらなくてもいいけどね、zfs list実行すればいつでも見れるので。
アップデート
このはちゃんを疑うわけじゃないんだけど、一応、念のためアップデートを。
% freebsd-update -b /jail/base -d /jail/base/var/db/freebsd-update fetch
% freebsd-update -b /jail/base -d /jail/base/var/db/freebsd-update install
スナップショットの作成
写真を撮るわけじゃないけど似たようなもん。
要は「現在の状態を取っておく」ことを「スナップショットを取る」と。
んで何に使うかってーと、バックアップ用途だったりバージョン管理にだって使えちゃうナイスガイ。使い方次第。
まあ今だと「元」にするために必要。よく考えてないけどざっと考えたら用途は3つじゃないかな。
バックアップ、バージョン管理、jailの元。
% zfs snapshot zroot/jail/base@10.0p1
作成完了。
@の後ろはfreebsd-updateした時のOSバージョンとパッチバージョン。
% zfs list -t snapshot
これでスナップショットの一覧が見られる。
jailの「元」はこれで最新のFreeBSDになり、元となるスナップショットも作成した。
jailの設定
設定ファイルの場所
まずは/etc/rc.confをチェック。
んで「jail_conf="/ほげほげ/jail.conf"」という行が見つかれば、設定ファイルはそこにある。記述が見つからなければたぶん「/etc/jail.conf」じゃないかな。わからなかったらfindしてね。
設定ファイルの内容
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
interface = vtnet0;#ここはifconfigの内容により適宜変更
path = "/jail/$name";
host.hostname = $name;
base {ip4.addr = 192.168.0.10; }
こんな感じにしてます。
最後の行がみそ。
base {ip4.addr = 192.168.0.10; }
#jail名 {ip4.addr = 使用したいIPアドレス}
みたいな。
この記述が無いとjailの起動しないから忘れないように。
jail関連のコマンド
起動
% service jail start base
で起動
一覧
% jls
って打てば起動しているjailの一覧が見える。
停止
% service jail stop base
再起動
% service jail restart base
jailに入る
% jexec 1 /bin/csh
% jexec base /bin/csh
どっちか打てばjailに入れる。
jexec 1の「1」はjlsした時の左端「JID」。
jexec baseの「base」はjlsした時の左から3番目「Hostname」。
は~疲れた腰いたい。ドラクエ4でもやるかなー