namedをchrootで動かしているのだが、どうもFreeBSD 8.0-R からはdevice管理が変わったようで、ここにメモ書き。
FreeBSD 8.0-R から、デバイス管理はdevfs(8)というやつに移動して、mount_dev はなくなりました(少なくとも手元の箱では)
このdevfs(8)は、ルールを書いてデバイスファイルを作って行くという品物で、linuxのudevとはまたざっと見た感じ*1違うようで。
devfsの設定ファイル
主にユーザレベルでは、「/etc/devfs.rules」に記述します。
devfs.rules は、rule_setという仕組みがあります。基本的な文法は他の設定と同じで、空白行と「#」以降の行は無視されます。
ルールセットの開始は、ブラケット([ ])内に名前を定義して、以下にルールを書いていきます。
以下ルールのコマンド。
- add [spec]
- デバイスを追加するコマンド
- specs
- path
- マッチパターンに合うパスを記述
- 例:add path null
- type
- ディスクタイプなど。ほとんどは、disk,mem,tape,tty のいずれからしい。
- 例:add type disk*2
- include [ ruleset ]
- 他のルールセットを読み込む。
- 注意:add を記述しているrulesetと混同して記入した場合、includeが優先になり、addで記述したデバイスが作成されないみたいです。混同する場合はルールセットごと、切り分けた方がいい。
- path
以下、追加オプション。
例:add path snp* mode 660 group snoopers
-
-
- user uid
- ユーザパーミッションを設定
- group gid
- グループパーミッションを設定
- mode
- 権限の設定。0660などに注意
- hide
- 作成したデバイスファイルを隠した状態で生成
- unhide
- 作成したデバイスファイルを見える状態で生成
- user uid
-
起動の仕組みとシステムの設定
起動時にdevfs(8)コマンドが処理を始める気配。
処理手順では、/etc/defaults/rc.conf をいじくっとらん限り、
- /etc/defaults/devfs.rules
- /etc/devfs.rules
の順番。
システムが使うデバイスファイルと、それ以外(chrootやjail)などで使うが、chrootやjailでの設定方法。rc.confには、下記のように記述するだけのようです。複数ある場合は、スペース区切りで。
devfs_set_rulesets='/var/named/chroot/dev=named_rulesets /var/named/chroot2/dev=named_rulesets'
と言う感じで記述するそうです。
jailの場合、/path/to/jail=devfsrules_jail をdevfs_set_rulesetsに追加するだけでよさげ。Jail用のsetは始めから記述されてます。
*1:see this http://www.gentoo.gr.jp/transdocs/udevrules/udevrules.html
*2:真偽不明