base/ports split: experiment2006年04月08日 08時08分52秒

さて、実験である。

nullfs は GENERIC には書かれていない。恐らく、loader.con に追加する必要があると思われる。 また、 nullfs を起動時に使ったことがないのと、linprocfs などと、被る部分があるので uzip fs を用意し、システムを専用に用意し、試験的に試してみる。試運転には qemu を使う。


# cd /mnt/tmp
# dd if=/dev/zero of=ports.md count=1 seek=2499 bs=1M
# mdconfig -a -t vnode -f ports.md
md1
# newfs -U /dev/md1
# mount /dev/md1 /mnt/ufs
# tar -cvf - -C /usr X11R6 local compat | tar -xvf - -C /mnt/ufs
# tar -cvf - -C /var db/pkg | tar -xvf - -C /mnt/ufs
# umount /mnt/ufs
# cd /mnt/tmp
# mkuzip -s 66536 -o ports.uzip ports.md

これで、ports が uzip の完成。qemu ようのルートシステムファイルを別途用意する。ここでは、7-current 用の物で試してみる。

# mdconfig -a -t vnode -f /usr/local/current/current.md
md2
# mount /dev/md2s1a /mnt/current
# vi /mnt/current/etc/fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1a             /               ufs     rw              1       1
/dev/ad1.uzips1a        /ports          ufs     ro              0       0
/ports/var/db/pkg       /var/db/pkg     nullfs  ro              0       0
/ports/X11R6            /usr/X11R6      nullfs  ro              0       0
/ports/local            /usr/local      nullfs  ro              0       0
/ports/compat           /usr/compat     nullfs  ro              0       0

linprocfs               /compat/linux/proc linprocfs rw         0       0

geom_uzip のデバイスは、元のデバイス名に .uzip が付く。スライスやパーティションの記号は .uzip の後に付くようだ。そのため、ad1.uzips1a になっている。

なお、今回の qemu ルートイメージは FreeBSD のベースシステムのみを素で入れただけなので、以下のようにいくつかのディレクトリとリンクを作る必要があった。マウントポイントがないと、mount に失敗する。


# cd /mnt/current/usr
# mkdir X11R6 local compat
# cd ..
# ln -s usr/compat


% cd /usr/local/current
% qemu current.md -hdb /mnt/tmp/ports.zip

問題なく起動に成功。また、すこし、ports のアプリケーションを使ってみたが、何の支障もなく動いた。nullfs を /boot/loader.conf に追加する必要もなかった様だ。

これにより、base system と ports system の分離が出来た。バックアップの対象が /、/usr、/ports と /export になったのである。利点としては、base と ports が別々になったため、アップグレードに万が一失敗しても、restore は base のみでいい。また、その逆も然りである。そして、もう一つ大事なのがbase と ports が分離したため、複数の Release や Current で同一の ports を維持できる点である。

前回次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/04/08/319672/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。