jail 内で net/samba416 を動かす

一ヶ月ほど前に samba416 が ports に入ったが、以前のバージョンにはなかった注意点がある。

fdescfs を(デフォルトでは) /var/run/samba4/fd にマウントして使うようになったらしく*1、マウントしていない場合に起動スクリプトでマウントするようになっている。しかし、jail 内では mount コマンドが使えないので、そのまま jail 内で動かそうとするとエラーになる。というわけで、jail 起動前に上記の path に fdescfs をマウントする必要がある。

jail.conf に

mount.fstab = fstab."${name}"

としていたら(おすすめ)、 /etc/fstab.jailname に

fdescfs  /usr/jails/jailname/var/run/samba4/fd  fdescfs  rw,nodup  0  0

と記述する。 /usr/jails/jailname は、host 側での jail の root にあたる path に置き換えること。つまり、host 側で mount し、それが jail 内で /var/run/samba4/fd と見えるようにする。 なお、/var/run/samba4 の部分を変えたい場合、(jail の)rc.conf に

samba_server_piddir="/some/where/in/the/jail"

とか書く。詳しくは /usr/local/etc/rc.d/samba_server を参照のこと。

*1:たぶんなんかの Linuxism