「俺はお仕着せのISOイメージは嫌だ。 普段使い慣れた環境をLiveCD化して使いたい」
という方のための作成マニュアル

要なもの

作成手順

上記の必要なものをそろえる。作業は前項Aの環境を動作させ、 その上で作業を行なう。
作業は root 権限で行う。

ツールの展開

起動した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

カーネルを作る

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にコピーする。

環境の作成

LiveCDの元となるOpenBSD 3.8動作環境をcdroot以下にコピーする。 他のマシンからコピーする場合

cd cdroot && ssh root@orig-host 'tar cpf - /' | tar xvpf -

このままでも動作には差し支えないはずだが、不要なファイルもあるので、 それらを消去する。

ISOイメージの作成

以下の何れかのコマンドを実行する。

make livecd.iso  ... ISOイメージを livecd.iso という名前で実行

又は

make cdrburn     ... CD-Rを作成する(焼きこみ)

又は

make cdrburn     ... CD-RWを作成する(CD-RWの初期化+焼きこみ)

(参考) Makefileターゲット

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初期化後、書込みを行う

*1 3.8beta用だが、リリース版のOpenBSD 3.8に対しても使用可

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