「俺はお仕着せのISOイメージは嫌だ。 普段使い慣れた環境をLiveCD化して使いたい」~ という方のための作成マニュアル **必要なもの [#e6164fdc] - A) LiveCD作成作業用のOpenBSD 3.8動作環境 -- カーネルがコンパイルできること(コンパイラ、ソースツリーなどがあること)。 -- vnodeデバイスによるファイルイメージがマウントできること。 -- ports/packagesからcdrtoolsがインストールされ、cdrecordが使用可能であること。 - B) [[作成ツール>http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/old/tools-3.8beta.tar.gz]]((3.8beta用だが、リリース版のOpenBSD 3.8に対しても使用可)) - C) LiveCDの元となるOpenBSD 3.8動作環境 **作成手順 [#qd0a3c92] 上記の必要なものをそろえる。作業は前項Aの環境を動作させ、 その上で作業を行なう。~ 作業は root 権限で行う。 ***ツールの展開 [#gea31d91] 起動したLiveCD作成作業用のOpenBSD上で作業用ディレクトリを作成し、 その中で作成ツール (tools-3.8beta.tar.gz) を展開する。 tar xvzf tools-3.8beta.tar.gz このツールは3.8beta用だが、リリース版のOpenBSD 3.8に対しても 使用可。~ 展開されたツールは以下のファイルツリー構成となっている; tools-3.8 +-Makefile +-bsd +-bsd.orig +-cdroot/ | +-->[LiveCDの元となる環境(前項のC)] +-lib/ | +-RDROOT | +-cdboot | +-cdbr | +-elfrdsetroot.c +-rdroot/ | +-->[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, (device files) | +-etc@ -> boottmp | +-mfs | +-mnt | +-sbin@ -> boottmp | +-tmp +-rdsetroot ***カーネルを作る [#ya67bbbb] 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なので、 これを参考にする。 あとは、通常のカーネルの生成と同様、 自分の用途に合せて構成ファイルの内容を編集する。 出来たカーネルをbsd.origにコピーする。 ***環境の作成 [#a05b0132] LiveCDの元となるOpenBSD 3.8動作環境をcdroot以下にコピーする。 他のマシンからコピーする場合 cd cdroot && ssh root@orig-host 'tar cpf - /' | tar xvpf - このままでも動作には差し支えないはずだが、不要なファイルもあるので、 それらを消去する。 - /tmp/* に残っているゴミ - /home 以下の個人的なファイル - /var/log, /var/cron/log などのログファイル - /var/run 以下のPIDファイルなど - ... etc 用途によっては、その他ユーザの個人情報を特定されるファイルが残っていないかどうかにも注意。 ***ISOイメージの作成 [#kd6c1c87] 以下の何れかのコマンドを実行する。 make livecd.iso ... ISOイメージを livecd.iso という名前で実行 又は make cdrburn ... CD-Rを作成する(焼きこみ) 又は make cdrburn ... CD-RWを作成する(CD-RWの初期化+焼きこみ) **(参考) Makefileターゲット [#sb13cc7b] Makeファイルには以下のターゲットが存在する; :vnon|rdroot.imgをvnodeデバイス経由でrdrootにマウントする :vnoff|rdrootをアンマウントし、vnodeデバイスを解放する :bsd.rdcd|CD-ROM用のカーネルを作成する。~ (カーネルにルートファイルイメージを書込んだあとgzipで圧縮する) :tree|CD-ROM内のファイルツリーをセットアップする~ (カーネルやブートローダの追加などを行う) :livecd.iso|ISOイメージを作成する :cdburn|cdrecordを起動し、CD-R/CD-RWへの書込みを行う :cdrclean|cdrecordを起動し、CD-RWの初期化を行う :cdrburn|cdrecordを起動し、CD-RW初期化後、書込みを行う