やまざきです.

みなさんどうもありがとうございます。

06/04/27 に YAMANEKO/Mao<[EMAIL PROTECTED]> さんは書きました:

> 昔は・・FreeBSD5.x までは・・tarでデバイスを固めたり、
> mknodで好きなところに作ることができたのですが・・FreeBSD6になってからは、
> devfs上じゃないと、デバイスとして働かないようになってしまいました。
> (なぜなんでしょうか・・・不便な仕様・・)
>
> なので、devfsを使いたいところにマウントすると、
> とりあえず実現できますが・・・大量にchroot環境があるような場合、
> 本当に大量にmountするのか??という問題も・・・。

これはデバイス(といいますか環境)をchrootごとに用意するというのが
そもそものchrootの目的なので、大量にmountするしかないと思います.

> mkdir -p $CVSCHROOT/dev
> mount -t devfs devfs $CVSCHROOT/dev

これですと/devの下にあるデバイス全部が作られるようなので、
下記のようにしてみたところうまくいきました。

# . /etc/rc.subr             (rc用のヘルパースクリプトのロード)
# devfs_init_rulesets     (デバイスルールの初期化)
# devfs_rulesets_from_file /etc/defaults/devfs.rules    (デバイスルールのロード)
# devfs_domount $CVSCHROOT/dev devfsrules_unhide_basic (デバイスの結びつけ)

4行目のdevfsrules_unhide_basicは/etc/defaults/devfs.rulesで定義されているルールセットで
/dev/null, zero crypto random urandomを作るためのルールのようです.

ただリブート時に自動的にデバイスを作る方法がまだわかりません.
上記のスクリプトをcvsd.shに加えてもいいんですが、いまいち芸がない感じです.

1.  /etc/defaults/devfs.rulesもしくは/etc/devfs.rulesでルールを作る
2. どっか(/etc/devfs.conf?)でディレクトリと結びつける.

という感じみたいなので、もうちょっと調べてみようと思います.

やまざき

メールによる返信