EBUGの原稿
OpenBSDでLive CDをつくる†
Why OpenBSD?, Why Live CD?†
- Other BSD / Linux では?
- Linuxでも昔1FDとかいじっていた ... 1FD Linux 作成キット*1
- 一番慣れたBSD → make releaseが昂じてやってみたくなった
- OpenBSDには定番がない
- Linux ... FrozenTech's LiveCD List によると295種類
- FreeBSD ... FreeSBIE
- NetBSD ... pkgsrc - sysutils/mklivecd
- 以前 OpenBSD を使った 1CD snortがあったがobsolete
Boot手順の概要†
- 実環境をなるべく弄らないで載せることにより;
- 常用環境を持ち歩きたい
- 実環境のバックアップシステムとして使用可能か
- H/Wの検証用などのテスト環境
アプローチ1†
- CD-ROMを直接マウントする。
- kernel config
config bsd root on cd0c
- 書き込み可能な領域の確保 ... union FSを使ってCDにmfsを被せる。
- CDの作成手順
- vnデバイス上にターゲットシステムのFile Tree作成
dd if=/dev/zero of=./cdroot.img bs=1024k count=700
mkdir ./cdroot
vnconfig svnd0 ./cdroot.img
newfs /dev/rsvnd0a
mount /dev/svnd0a ./cdroot
- ISOイメージ作成
mkhybrid -R -o ISO-IMAGE -b BOOT-RECORD -c BOOT-CATALOG TREE-DIR
- CD-ROM書込
cdrecord dev=/dev/rcd0c ISO-IMAGE
- 欠点
- 「実環境をなるべくいじらない」にちょっと反する;
- mfs + union mount の準備のため、ターゲットシステムでの/etc/rcの改造が必要
- Union FSが不安定 (OpenBSD 3.8 でレイヤー系のファイルシステムは削除されてしまった)
アプローチ2†
- rd*2 (RAM Disk)デバイスをrootとしてマウント ... インストーラが使っている方法 ... あらかじめ内容を作り込んでおける。
- rdは大容量 or 動的なサイズ確保が苦手 → mfsも併用する。
- 欠点
- Read Onlyのサブディレクトリ以下を一部分書き込み可能にするのが繁雑
- 一部書き込み可でないと動かない部分があった ... /usr/X11R6/X11/lib/xdm/authdir/*
- mfs+nullfs ... UnionFSよりは若干安定
- lndirによる方法 ... symlink NGなものもあり ... /usr/lib/exec/auth/*
- セキュリティに注意
- ホスト固有の情報を入れると紛失した場合危険 ... 端末的使用が無難
- mfs上の情報は消えると復帰できないので、端末やFW, RT的使用が無難
- 遅い
- CD上のファイルが圧縮されていればスループットが上がるのに。
参考文献等†
- ソースコード
- src/distrib/i386/common/Makefile.inc, src/distrib/i386/cdfs/Makefile, src/distrib/i386/cdfs-emu/Makefileあたり
- manpage of section 8
- boot, biosboot, boot_i386, cdboot, installboot, release
- 書籍
- rd, md関連: BSD Magazine No.4, 6, 10, 16
- ブート関連: Unix Magazine 1998.12 Linuxでリラックス / 1999.8 CD-Rで作るブータブル・リカバリーCD
- Links
作成したISOイメージは、以下に置いてあります;†
http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/