FreeBSD6.2Rでjail環境構築中その3(nullfsでhostとportsツリーを共有する場合) - ezjail
http://d.hatena.ne.jp/m-bird/20080118/1200647446からのつづき。
portsツリー導入しようぜ - 始めに
portsツリーを導入するのに、jail環境毎に構築してたら、HDDがもったいない。
ということで、nullfsとかでマウントしちゃえば無駄にならないじゃん、というのが今回のお話。
# ls -all /usr/jails/JAILNAME
total 29 drwxr-xr-x 12 root wheel 512 Jan 18 03:22 . drwxr-xr-x 6 root wheel 512 Jan 18 02:32 .. -r--r--r-- 1 root wheel 6196 Jan 18 02:32 COPYRIGHT drwxr-xr-x 9 root wheel 512 Jan 17 22:17 basejail lrwxrwxrwx 1 root wheel 13 Jan 18 02:32 bin -> /basejail/bin lrwxrwxrwx 1 root wheel 14 Jan 18 02:32 boot -> /basejail/boot dr-xr-xr-x 4 root wheel 512 Jan 18 03:28 dev drwxr-xr-x 18 root wheel 2048 Jan 18 17:24 etc lrwxrwxrwx 1 root wheel 13 Jan 18 02:32 lib -> /basejail/lib lrwxrwxrwx 1 root wheel 17 Jan 18 02:32 libexec -> /basejail/libexec drwxr-xr-x 2 root wheel 512 Jan 18 02:32 media drwxr-xr-x 2 root wheel 512 Jan 18 02:32 mnt dr-xr-xr-x 1 root wheel 0 Jan 18 17:24 proc lrwxrwxrwx 1 root wheel 16 Jan 18 02:32 rescue -> /basejail/rescue drwxr-xr-x 2 root wheel 512 Jan 18 03:19 root lrwxrwxrwx 1 root wheel 14 Jan 18 02:32 sbin -> /basejail/sbin lrwxrwxrwx 1 root wheel 11 Jan 18 02:32 sys -> usr/src/sys drwxrwxrwt 6 root wheel 512 Jan 18 03:28 tmp drwxr-xr-x 4 root wheel 512 Jan 18 02:32 usr drwxr-xr-x 23 root wheel 512 Jan 18 03:28 var
なんか、/basejailにリンクが。
/usrも見てみると。
# ls -all /usr/jails/JAILNAME/usr
total 8 drwxr-xr-x 4 root wheel 512 Jan 18 02:32 . drwxr-xr-x 12 root wheel 512 Jan 18 03:22 .. lrwxrwxrwx 1 root wheel 17 Jan 18 02:32 bin -> /basejail/usr/bin lrwxrwxrwx 1 root wheel 19 Jan 18 02:32 games -> /basejail/usr/games lrwxrwxrwx 1 root wheel 21 Jan 18 02:32 include -> /basejail/usr/include lrwxrwxrwx 1 root wheel 17 Jan 18 02:32 lib -> /basejail/usr/lib lrwxrwxrwx 1 root wheel 19 Jan 18 02:32 lib32 -> /basejail/usr/lib32 lrwxrwxrwx 1 root wheel 21 Jan 18 02:32 libdata -> /basejail/usr/libdata lrwxrwxrwx 1 root wheel 21 Jan 18 02:32 libexec -> /basejail/usr/libexec drwxr-xr-x 3 root wheel 512 Jan 18 02:32 local drwxr-xr-x 2 root wheel 512 Jan 18 02:32 obj lrwxrwxrwx 1 root wheel 19 Jan 18 02:32 ports -> /basejail/usr/ports lrwxrwxrwx 1 root wheel 18 Jan 18 02:32 sbin -> /basejail/usr/sbin lrwxrwxrwx 1 root wheel 19 Jan 18 02:32 share -> /basejail/usr/share lrwxrwxrwx 1 root wheel 17 Jan 18 02:32 src -> /basejail/usr/src
portsも/basejail/usr/portsに。
ってことで、/basejail/usr/portsにportsツリーを構築しまっす。
jail環境にportsツリーを導入する。
マウントポイントの設定
とりあえず、
/usr/jails/basejail/usr/ports /usr/jails/basejail/usr/src
この二つのディレクトリがあるかどうか確認(私はここで詰まりましたorz)。
無かったらmkdir。
nullfsでHOST環境のportsツリーをリードオンリーでマウント。
以下を編集(HOST)
# vim /etc/fstab
以下を追記。
/usr/ports /usr/jails/JAILNAME/basejail/usr/ports nullfs ro,noauto 0 0 /usr/src /usr/jails/JAILNAME/basejail/usr/src nullfs ro,noauto 0 0
jail環境のportsを整備
portsでインストールする場合は、作業用ディレクトリとソース保存ディレクトリが必要になるので、make.confで以下の指定が必要です。
jail環境の/etc/make.confに以下の記述があるかどうか、確認して下さい(デフォルトで記述されているはず)。
WRKDIRPREFIX= /var/ports DISTDIR= /var/ports/distfiles PACKAGES= /var/ports/packages
以上の設定でよければ、これらのディレクトリを作成してあげます。jexecでjail環境に入って、以下の通りディレクトリを作成して下さい。
JAILNAME# mkdir /var/ports JAILNAME# mkdir /var/ports/distfiles JAILNAME# mkdir /var/ports/packages
2007/2/10追記
遅れましたが、以下にportsツリーを分ける場合の手順を追記しました。
それに合わせ、全ての記事を大幅修正しました。
http://d.hatena.ne.jp/m-bird/20080118/1202583191