[FreeBSD-users-jp 89466] Re: chroot 環境での /dev/null の作り方 Subject: [FreeBSD-users-jp 89466] Re: chroot 環境での /dev/null の作り方 やまざきです. みなさんどうもありがとうございます。 06/04/27 に YAMANEKO/Mao さんは書きました: > 昔は・・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?)でディレクトリと結びつける. という感じみたいなので、もうちょっと調べてみようと思います. やまざき