「俺はお仕着せの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初期化後、書込みを行う


Front page   New Page list Search Recent changes   Help   RSS of recent changes