FreeBSD を CD-ROM から起動する

情報

お、FreeSBIEなんてプロジェクトもあるのですね。 こちらで代用できるかも知れないので、試してみよう。(2004/03/22)

概要

FreeBSD/NetBSD が起動するブータブル CD-ROM の作成(CDBSD)での技術を参考に、 固有のハードディスクなどが不要で、簡単に make できる環境を提供する

問題点

CDBSD では、独自のハードディスクが必要だったり、 既存のフロッピーバイナリをいじる必要があるなど、 多少、環境構築が面倒だった。

解決

CDBSD のさまざまな有用なスクリプトはいただいて、 さらにフロッピーイメージ起動のアイデアもいただくけれども、 フロッピーイメージは新たに Makefile ターゲットを書き下すことでソースから全てコンパイルすることにして、 全体を src/release/Makefile へのパッチとして実装した。 環境設定は chroot(2) で行う。

準備

  1. src/release にパッチを当てる
    # cd /usr/src
    # patch -p0 < パッチファイル名
    
  2. /R に 1GB 程度の空きを準備する (symlink でも可)
  3. src/ において、make buildworld を行っておく
  4. ports/sysutils/mkisofs をインストールする
  5. src/sys/i386/conf/CDBSD に CD 起動用のカーネル config を用意する (特に特殊なことが必要なければ、GENERIC をコピーしてよい)
  6. make cdbsd-prepare で CD-ROM 起動用のツリーを準備する。 環境構築のため、最終的な CD-ROM には入らない ports のツリーも含まれる。
    # cd /usr/src/release
    # make cdbsd-prepare
    ...(しばらくコンパイル時間が必要)...
    
  7. make cdbsd-configure は、chroot(8) を用いて、 CD-ROM ツリーの環境設定を行う。 root のシェルが開くので、そこから CD-ROM に焼き混む設定を行う。 /etc などの設定を行ったり、ports のインストールをすることが可能。 ただし、CDBSD のスクリプトを利用しているので、 /etc の内容などはフロッピーで上書き可能。 終了したらシェルを exit する。
    # make cdbsd-configure
    Chroot to cdbsd directory.  Type 'exit' to finish the configuration.
    Setting root password with 'passwd root' is strongly recommended.
    Unique parameters of host OS (e.g.: hostname, etc.) cannot be changed.
    If you need to change such parameters in chrooted environment, please
    create alias IPaddr and use cdbsd-configure-jail target instead.
    # (←このプロンプトから設定開始)
    ...(略)...
    
  8. make cdbsd-image で、 CD-ROM 用の ISO-9660 with RockRidge/Joliet ext. のイメージを生成する。 イメージファイルは /R/stage/cdroms/cdbsd.iso に生成されるのでこれを CD-R に焼けば良い。

ファイル

関連リンク


インデックスに戻る

細川達己 <hosokawa@FromTo.Cc>