詫間電波工業高等専門学校研究紀要 第 33 号 (2005)

特定応用ソフトウェア用起動可能光メディア製作に関する調査
白石 啓一∗

Survey of Making Bootable Optical Media for Specified Application Software
Kei-ichi Shiraishi

Synopsis
We survey how to make a bootable optical media for specified application software for personal computer(PC). If the media is inserted to the drive and PC is booted, PC-UNIX FreeBSD
starts and you can use the installer or the application softwares.
1

はじめに

PC-UNIX の一種である FreeBSD は、ports ある
いは packages と呼ばれる応用ソフトウェアインス
トール機構を備えており、FreeBSD を使い慣れた者であれば非常に簡単に個人用のソフトウェア開発環境や事務処理環境を構築できる。ports は個々のソフトウェアのインストールには良くできた機構であるが、複数のソフトウェアをインストールした際にお互い干渉してうまく動作しない、依存関係の問題でアップグレードに手間がかかることがある、などの問題がある。また、FreeBSD・応用ソフトウェア共に便利に使うために設定すべき点があるが、使い慣れていない者にとっては多少敷居の高い操作を必要とする。
一方、PC-UNIX の一種である Linux をインストールし、講義や実験に使用している本校の演習室を挙げるまでもなく、オープンソースソフトウェアを組み合わせて講義や実験に使っている学校も増えて来ている。上記のようなソフトウェアのインストールと設定の問題は、演習室のように数十台の PCを対象とした場合、問題を解決する時間ばかりでなく、設定する手間が台数分かかることになり、管理者にとって非常に手間と時間のかかる作業となる。
我々は、「教育用オープンプラットホームの構築に関する研究」1, 2) を進めており、FreeBSD の構築方法やインストーラの動作の調査と、応用ソフトウェ∗ 詫間電波工業高等専門学校 電子制御工学科

アのインストール・設定ツールの開発を進めている。
この研究は、FreeBSD 上にプログラミング言語やオフィスソフトウェアなど教育に使えるオープンソースソフトウェアをインストールし、各種設定を自動的に行うインストーラの開発を目標としている。このインストーラを使用することで、管理者の手間を軽減できる。また、開発成果を公開しているため、インストール時の問題の解決方法を共有でき、問題の解決時間を短縮する可能性がある。
本稿では、FreeBSD 標準のインストール CD-

ROM とライブシステム CD-ROM の作成方法、1, 2)で作成したインストーラ CD-ROM(以下、OPE CDROM)3) 作成のノウハウをまとめる。この方法を応用すると、インストーラの代わりに通常のシェル・応用ソフトウェアを起動するライブシステムを作成することもできる。応用例として、PC があればどこでも同じ環境を作ることのできる個人用事務作業環境や並列計算をするために演習室の PC を利用してディスクレスクラスタを構築するライブシステム
4)が挙げられ、インストーラの他、応用範囲は広い。
な お 、同 様 の 成 果 と し て KNOPPIX5) やFreeSBIE6) が挙げられる。KNOPPIX は Linux をベースとしたもので、本稿の成果とは OS が異なるが、OS 以外はほぼ同様のソフトウェアが動くた
め、その構築技法は参考になる。FreeSBIE は本稿の成果と同様 FreeBSD をベースにしているので、今後 FreeSBIE の利用も検討しなければならない。

85 11

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.33 (2005)

2

FreeBSD 標準インストール CD-ROM の作成領域を持つファイルシステムへのシンボリックリン

IBM-PC 互換機用 FreeBSD 5.3-RELEASE のイ
ンストール CD-ROM とライブシステム CD-ROMの作成方法を述べる。5.3-RELEASE を対象とするが、他のバージョンでも同様の手順で作成できる。
以下、作成環境の構築、CD イメージの作成、CD-Rへの書き込みの順で述べる。

クをあらかじめ作成しておくか、CHROOTDIR に

2.1

作成環境の構築

インストール CD-ROM を作成するには、CD-R
ドライブと十分な空き領域 (7GB 以上) のあるハードディスクドライブ (HDD) を備えた PC を必要とする。この PC には、FreeBSD 5.3-RELEASE をイ

そのファイルシステムのディレクトリを指定する。即ち、/usr/tmp に十分空き領域があると仮定すると、¶³

ln -s /usr/tmp /junkµ
でシンボリックリンクを作成しておくか、¶
CHROOTDIR=/usr/tmp/junk/releaseµを指定する。

´³´“make release” の結果、CD-ROM イメージが表1 の位置に作成される。

ンストールしておく。異なるバージョンで作成する

2.3とトラブルが起こることもあるので、作成対象と作成環境のバージョンを揃えておくことが望ましい。

2.2 節で行う “make release” には FreeBSD のCVS ツリーを必要とするので、ports の cvsupmirror により CVS ツリーを/home/ncvs に置いておく。CVS ツリーを置く場所は/home/ncvs 以外でも良いが、その場合、以後の作業で環境変数やオプションを適切に書き換える必要がある。

CD-ROM イメージの書き込み

FreeBSD で CD-ROM イメージを CD-R へ書き込
むには、burncd や cdrecord を使う。CD-R ドライ
ブが ATAPI 接続ならば burncd を、SCSI 接続ならば cdrecord を使う。ATAPI 接続 CD-R ドライブがacd0 として認識されているとき、最高速度で cd.isoを書き込むには¶³

burncd -f /dev/acd0 -s max data \2.2 CD-ROM イメージの作成
cd.iso fixateµ´
まず、以下の手順で “make buildworld” を行う。
¶³を実行する。SCSI 接続 CD-R ドライブがバス 0 に接続され、SCSI ID 6 に設定されており、論理ユcd /usr
ニット番号が 0 のとき、16 倍速で cd.iso を書き込
cvs -d /home/ncvs co \むには、-rRELENG_5_3_0_RELEASE src¶
³cd src
cdrecord dev=0,6,0 speed=16 \make buildworld-data cd.isoµ´µ´
その結果、/usr/obj 以下に FreeBSD のバイナリがを実行する。
置かれる。ここで、行末の\は改行の無視を示す。
次に、/junk/release(CHROOTDIR 変数に指定す

3

CD-ROM イメージ作成の応用るディレクトリ) に 3.2GB 以上の空き領域を確保した上で、以下の手順で “make release” を行う。
¶

ユーザが変更した FreeBSD のインストール CDROM
イメージの作成方法、ライブシステムの変更³
方法、CD-ROM イメージ作成の高速化について述
べる。

cd /usr/src/release
make -DMAKE_ISOS release \CHROOTDIR=/junk/release \3.1 ユーザが変更した FreeBSD インストール
BUILDNAME=5.3-RELEASE \CD-ROM イメージの作成
CVSROOT=/home/ncvs \FreeBSD 標準インストール CD-ROM の作成とRELEASETAG=RELENG_5_3_0_RELEASEµ´は、2.2 節の “make release” のみ異なる。そこで、本節では “make release” の違いのみ述べる。
なお、必要な空き容量はバージョンによって異なる。
また、もし/junk に十分な空き領域がなければ、空きFreeBSD の “make release” には、ユーザ固有の12 86詫間電波工業高等専門学校研究紀要 第 33 号 (2005)

CD-ROM イメージの種類

位置

インストール/junk/release/R/cdrom/5.3-RELEASE-i386-miniinst.iso

ライブシステム/junk/release/R/cdrom/5.3-RELEASE-i386-disc2.iso
表 1: CD-ROM イメージの位置変更を適用したインストール CD-ROM を作成する

要な応用ソフトウェアをインストールした上で、ために使える 2 種類のオプションがある。一方はCD-ROM イメージを作成すれば、所望のライブシステム CD-ROM イメージを作成できる。作成
する CD-ROM イメージ名を cd.iso、ラベル名をlivesystem とすると、CD-ROM イメージ作成には、¶³

FreeBSD のソースが置かれている/usr/src に対する変更点をパッチファイルとして作成しておき、そのファイル名を LOCAL PATCHES 変数に与える方法である。他方は/usr/src 全体をコピーした上で変更し、そのコピー先のディレクトリを EXTSRCDIR変数に与える方法である。

/usr/src/release/i386/mkisoimages.sh \-b livesystem cd.iso \/junk/release/R/cdrom/disc2
LOCAL PATCHES 変数を使い、パッチファイルµ´が patch file name である場合、¶³を実行する。

cd /usr/src/release
3.3 CD-ROM イメージ作成の高速化
make -DMAKE_ISOS release \“make release” は概ね次に示す作業を行っている。
LOCAL_PATCH=patch_file_name \PATCH_FLAGS=-p0 \1. /junk/release へ FreeBSD をインストール
CHROOTDIR=/junk/release \2. ソースを CVS ツリーからチェックアウト
BUILDNAME=5.3-RELEASE \CVSROOT=/home/ncvs \3. ports を CVS ツリーからチェックアウト
RELEASETAG=RELENG_5_3_0_RELEASEµ´ 4. /junk/release 内で FreeBSD を構築を実行する。
5. ドキュメントを生成
EXTSRCDIR 変数を使い、/usr/new src に変更
6. CD-ROM イメージを作成
後のソースがある場合、¶³以上全ての作業を実行すると、Pentium4(3GHz)、cd /usr/src/release
メモリ 512MB、HDD(SATA150, 7200rpm, 平均転
make -DMAKE_ISOS release \送速度 58MB/s 以上) の PC を用いて、3 時間以上
EXTSRCDIR=/usr/new_src \かかる。これはソースを手直ししながら実行するに
CHROOTDIR=/junk/release \は長過ぎる。本節では、その中でいくつか高速化で
BUILDNAME=5.3-RELEASE \きるポイントを述べる。
CVSROOT=/home/ncvs \まず、ソースと ports の CVS ツリーからのチェッ
RELEASETAG=RELENG_5_3_0_RELEASEµ´クアウトは、数多くのテキストファイルの読み込を実行する。
みと処理が発生するために時間がかかる。これはあらかじめソースと ports を用意し、単なるコピー3.2 ライブシステムの変更で終らせることで時間を節約できる (表 2)。これ“makerelease”
で は 、/junk/release/R/cdrom/disc2 以 下 に CD-ROM
表 2: チェックアウトとコピーの時間 (単位:秒)
起動に必要なファイルを配置したディレクトリツ
チェックアウト コピー
リーを作成し、これを元に CD-ROM イメージをソース
514
145作成している。従って、 “make release” を実行
ports
1153
454
し た 後 、/junk/release/R/cdrom/disc2 以 下 に 必

87 13

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.33 (2005)¶³****************** 357,364 ****
.endifrm -rf ${CHROOTDIR}/usr/ports.if !defined(NOPORTSATALL)
cd ${CHROOTDIR}/usr && ${CVSPREFIX} cvs -R ${CVSARGS} -d ${CVSROOT} co${CVSCMDARGS} ${CVS_PORTSARGS} ${RELEASEPORTSMODULE}.endif.if !defined(NODOC)--- 357,373 ---.endifrm -rf ${CHROOTDIR}/usr/ports.if !defined(NOPORTSATALL)+ .if defined(EXTPORTSDIR)+
cd ${CHROOTDIR}/usr && \+cp -R -H ${EXTPORTSDIR} ports+rm -rf ${CHROOTDIR}/usr/ports/distfiles+ .elsecd ${CHROOTDIR}/usr && ${CVSPREFIX} cvs -R ${CVSARGS} -d ${CVSROOT} co${CVSCMDARGS} ${CVS_PORTSARGS} ${RELEASEPORTSMODULE}.endif.if !defined(NODOC)µ´

図 1: /usr/src/release/Makefile のパッチファイル (一部余分の改行を含む)

14 88

詫間電波工業高等専門学校研究紀要 第 33 号 (2005)

2. 変更点を適切な場所へコピー

は、/usr/src/release/Makefile に図 1 に示すパッチ
ファイルを適用し、“make release” の際、オプション¶³

3. CD-ROM イメージを作成

EXTSRCDIR=$USRDIR/src
EXTPORTSDIR=$USRDIR/portsµを加えることで実現できる。

´という手順で、所望の CD-ROM イメージを作成できる。条件 2 が必要なのは、手順 1 にてコピーする
次に、ドキュメントは配布用 CD-ROM には必要
際ハードリンク情報が失われるためである。従って、であるが、開発中は必要ない。ドキュメントの生成
ライブシステム CD-ROM を本方法で作成するためを省くことで約 80 分短縮できる。これは、 “makeには、なんらかの方法でハードリンクを復元しなくrelease” の際、オプションてはならない。
¶³
本方法で作成した場合、変更点を全てコピーする
DOC_LANG=en_US.ISO8859-1
必要があり、非常に手間がかかるという欠点となる。
-DNODOC
実際の OPE CD-ROM の場合、変更点を全てコピー-DNOPORTREADMESµ´するのは非常に手間がかかるためにあきらめており、を加えることで実現できる。
その根幹をなす変更点のみコピーしている。そのた
最後に、make を使ってコンパイルをはじめとすめ、141 秒と非常に短時間で CD-ROM イメージをる処理を行う際に共通の手法であるが、通常 I/O は作成できるようになった。
CPU よりも非常に遅いため数多くのジョブを投入
また、3.1 節で示した方法では応用ソフトウェアしておくことで、I/O 待ちの際に他のプロセスへ効群をインストール CD-ROM イメージ内に置くため率良く CPU を割り当てることができる。同時に 4にさらなる作業を必要とするが、本方法では条件個のジョブを投入するなら、 “make release” の際、1 の CD-ROM イメージとして、応用ソフトウェアオプション¶³群を持つものを用意できれば作業なしに作成できる。これは、OPE CD-ROM のようなインストール-j4µ´CD-ROM にとって大きな利点である。
を加えることで実現できる。
以上の高速化を適用することで、3 時間以上かかる処理を 78 分で終えることができた。

3.4

限定条件下での高速化

OPE CD-ROM のようにある限定条件の下では、CD-ROM イメージ作成をさらに高速化できる。その条件とは以下の通りである。
1. FreeBSD 標準インストール CD-ROM などの、所望の CD-ROM イメージとほぼ同じ内容のCD-ROM イメージを入手できる。
2. 条件 1 の CD-ROM イメージにハードリンク情報がない。

4

おわりにFreeBSD をベースとした、起動可能な CD-ROMの作成方法を述べた。まず、FreeBSD 標準のインス
トール CD-ROM・ライブシステム CD-ROM について述べ、その後、ユーザが変更した FreeBSD のイ
ンストール CD-ROM・ライブシステム CD-ROM、そしてそれらの作業を行う上で有用な高速化を述べた。これらを応用し、OPE CD-ROM を作成した。
なお、OPE CD-ROM を作成するために必要な全てのファイルは、CVS により入手できる。その方法
は 7) の「CVS」にある。
CD-R では 700MB の容量しかないので、数多くの応用ソフトウェア、あるいは大規模な応用ソフト

3. 変更点のみを用意できる。(OPE CD-ROM の場合、インストーラのみ構築できる。)
以上の条件を満たす場合、条件 1 の CD-ROM イ
メージと条件 3 の変更点を用意した上で、

1. 条件 1 の CD-ROM イメージをコピー

ウェアをインストールするには容量不足が考えられる。これを解決するために、DVD-R の利用が考えられる。また、FreeSBIE の利用の検討と、実際に個人用事務作業環境やディスクレスクラスタのための CD-ROM イメージ作成することも今後の課題である。

89 15

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.33 (2005)

参考文献

1) 原 元司, 山本 喜一, 白石 啓一, 白濱 成希, 本間 啓道, 桐山和彦, 岡田 正: 教育用オープン
プラットホーム環境の構築−その目的と課題について−, 情報処理学会第 66 回全国大会講演論文集, 4, 385–386 (2004)
2) 原 元司, 山本 喜一, 白石 啓一, 白濱 成希, 本間 啓道, 桐山和彦, 岡田 正: 教育用オープン
プラットホーム (OPE) 開発プロジェクト−プロジェクト発足の経緯と現状について−, 情報処理教育研究発表会論文集第 24 号, 121–123(2004)
3) OPE プロジェクト:OPE(5.3-RELEASE)CD-ROM イメージ,
ftp://ftp.openedu.org/pub/OPE/releases/
i386/5.3-RELEASE/images/
5.3R-OPE-i386-disc1.iso4) 長岡 史郎, 福永 哲也, 白石 啓一: PC クラスタによる並列計算システムの構築と応用に関する研究, 詫間電波工業高等専門学校プロ
ジェクト研究報告会 2002 講演論文集, 17–18(2003)
5) 産業技術総合研究所:
KNOPPIX Japanese edition,
http://unit.aist.go.jp/itri/knoppix/
6) Gruppo Utenti FreeBSD Italia:
FreeSBIE - Free System Burned In Economy, http://www.freesbie.org/
7) OPE プロジェクト: OPE プロジェクトホームページ, http://www.openedu.org/ja/OPE/

16 90