「俺はお仕着せのISOイメージは嫌だ。
普段使い慣れた環境をLiveCD化して使いたい」
という方のためのLiveCD作成マニュアル
pseudo-device vnd 4 # paging to filesを指定して作成したカーネルを使っていること*1。
上記の必要なものをそろえる。作業は前項Aの環境を動作させ、
その上で作業を行なう。
作業は root 権限で行う。
起動したLiveCD作成作業用のOpenBSD上で作業用ディレクトリを作成し、 その中で作成ツール (tools-3.9.tar.gz) を展開する。
tar xvzf tools-3.9.tar.gz
展開されたツールは以下のファイルツリー構成となっている;
tools-3.9 +-Makefile +-bsd +-bsd.orig +-cdroot.dist/ | +-->[LiveCDの元となる環境(前項のC)] +-lib/ | +-RDROOT | +-cdboot | +-cdbr | +-elfrdsetroot.c | +-rdsetroot +-rdroot.dist/ | +-->[rdroot.imgのマウント・ポイント] +-rdroot.img [rdrootの実体] +-rdroot.orig/ [カーネルに組み込むルートイメージ] +-bin@ -> boottmp +-boottmp/ | +-init* ksh* ln* login.conf | mount* mount_cd9660* mount_ffs* mount_mfs* | rc* sh* sysctl* | +-cdrom/ +-dev/ | +-MAKEDEV, (各種デバイスファイル) +-etc@ -> boottmp +-mfs/ +-mnt/ +-sbin@ -> boottmp +-tmp/
LiveCD上で動作させるカーネルを作成する。 生成時に使用するカーネル構成ファイルは、RAM Diskデバイスをマウントできるよう、 以下の記述を加える。
#config bsd swap generic ←この行はコメントアウト option RAMDISK_HOOKS option MINIROOTSIZE=3800 ←rootファイルシステムのサイズ config bsd root on rd0a (512バイト/ブロック)
~略~
pseudo-device rd 1 # ramdisk
標準のカーネル構成ファイルGENERICにこの変更を加えたものがlib/RDROOTなので、 これを参考にする。
あとは、通常のカーネルの生成と同様、 自分の用途に合せて構成ファイルの内容を編集し、カーネルを生成。 この構成ファイルをMYRDとすると、以下のように操作;
cd /usr/src/sys/arch/i386/conf vi MYRD config MYRD cd ../compile/MYRD make clean && make depend && make
出来たカーネルをbsd.origにコピーする。
LiveCDの元となるOpenBSD 3.9動作環境をcdroot以下にコピーする。 他のマシンからコピーする場合
cd cdroot && ssh root@orig-host 'tar cpf - /' | tar xvpf -
このままでも動作には差し支えないはずだが、不要なファイルもあるので、 それらを消去する。
用途によっては、その他ユーザの個人情報を特定されるファイルが残っていないかどうかにも注意が必要。
以下の何れかのコマンドを実行する。
make livecd.iso ... ISOイメージを livecd.iso という名前で作成 (CDへの書き込みは行なわない)
又は
make cdburn ... CD-Rを作成する(焼きこみ)
又は
make cdrburn ... CD-RWを作成する(CD-RWの初期化+焼きこみ)
make cdburn / make cdrburn で実際にCDを作成した場合は、 当り前だが、そのCDでbootして動作を確かめる。
エミュレータを使用して、CDに焼かずにISOイメージを直接確認する方法もある。
portsなどから、QEMUをインストールし、以下のようにエミュレータを起動する。
qemu -localtime -m 128 -boot d -cdrom livecd.iso
動作PCの内部時計がUTCの場合は、-localtimeは不要。また、-mオプションでは 使用メモリをメガバイト単位で指定する。 実ハードウェアの検証などが不要な場合(起動スクリプトの動作確認など)は、 この方法が便利。
Makeファイルには以下のターゲットが存在する;
FrontPageへ戻る