[ Top | Memo | Diary | Aerial ]

Gentoo 簡単 LiveCD 作成ガイド


Gentoo の大きな特徴は「ユーザに選択肢を与える」「自分好みにカスタマイズできる」という点です。その究極のものとしては、インストーラを自分用にカスタマイズすることでしょう。Gentoo が作成している Catalyst というツールでは、まさにその究極のことができます。このガイドでは、Catalyst を使ってインストール用 LiveCD を簡単に作成する方法を解説します。

Catalyst でできること

Catalyst はもともとインストール用の LiveCD を作成するツールとして開発が始まりました。しかしながら、その過程において、インストール用 LiveCD 作成に必要な機能をはじめ、さまざまな機能が追加されていった結果、現在のところ

  1. Portage ツリーのスナップショットの作成
  2. カスタマイズ版 stage1, stage2, stage3 の tarball の作成
  3. カスタマイズ版 LiveCD の作成
  4. カスタマイズ版 GRP (バイナリパッケージ) の作成
  5. カスタマイズ版パッケージ CD の作成

ができるツールになりました。本稿では LiveCD の作成まで解説しますが、興味のある人は末尾のリファレンスマニュアルを参考にしてパッケージ CD も作成するとカスタマイズインストールが楽になります。

Catalyst のインストール

Catalyst はすでに Portage ツリーに入っているのでインストールは簡単です。

# emerge dev-util/catalyst

ただし、インストールに当たっては簡単な設定例が入っていたほうがなにかと便利なので、doc USE フラグをオンにしてからインストールすることをお薦めします。また、現在 stable となっている catalyst に同梱されている設定例は古いので、1.0.9 以上を使ったほうがいいでしょう。

# mkdir /etc/portage
# echo "dev-util/catalyst" >> /etc/portage/package.keywords
    (~x86 など unstable 環境で使っている人は不要です)
# echo "dev-util/catalyst doc" >> /etc/portage/package.use
    (doc USE フラグがすでに有効になっていれば不要です)
# emerge catalyst

Catalyst の設定

Catalyst の設定は /etc/catalyst/catalyst.conf で行ないます。ほとんどの場合変更する必要はありませんが、distcc を使ってコンパイルを速くしたい場合は options に distcc を追加しますし、ファイヤウォールの中にいてプロキシを設定しなければならないときは、プロキシの設定を envscript を使って行ないます。

Catalyst の使い方

Catalyst はコマンドラインから実行するツールで、オプションを引数として渡すこともできますが、オプションはファイルに全部書いてそれを Catalyst に渡して実行するのがもっとも楽でしょう。サンプルファイルは /usr/share/doc/catalyst-[バージョン]/examples ディレクトリにあります。

LiveCD や stage3 など、Catalyst を用いて作成する ISO イメージや tarball のことを、ターゲットと呼びます。あるターゲットを作成するために必要なターゲットがあり、Catalyst を使うためにはそのターゲットのファイルを事前に用意する必要があります。LiveCD 作成に最低限必要なターゲットを下に掲げます(これに加えて Portage ツリーのスナップショットも必要です)。

作成するターゲット 必要なターゲット
livecd-stage2 livecd-stage1
livecd-stage1 stage3

LiveCD の作成には livecd-stage1 が必要で、livecd-stage1 の作成には stage3 が必要だということが分かります。stage3 は Catalyst で作成するのであれば stage2 を用意しなければなりませんが、幸い stage3 の tarball はインストールに使うファイルの一つとして Gentoo のミラーサイトで配布されているので、新たに用意しなくてもかまいません。Gentoo のミラーサイトなど適当なところからダウンロードしてくればよいのです。

さて、x86 に関しては Gentoo のミラーサイトから stage3 を持ってくればよいだけなので、ここでは Gentoo/ppc を例にとって話を進めましょう。Gentoo/ppc は開発者不足のため 2004.2 をリリースすることができず、Gentoo/ppc 開発者チームの中の一人である pvdabeel が 2004.2 相当のファイルを http://metadistribution.org/gentoo/2004.2/ に置いています。今後 Gentoo/ppc のサポート体制に不安がありますが、stage3-ppc-20040714.tar.bz2 というファイルを取得して、/var/tmp/catalyst/builds というディレクトリに置いてください。

# mkdir /var/tmp/catalyst/builds
# wget http://metadistribution.org/gentoo/2004.2/stage3-ppc-20040714.tar.bz2
# mv stage3-ppc-20040714.tar.bz2 /var/tmp/catalyst/builds

次に Portage ツリーのスナップショットを作成します。Catalyst で Portage ツリーのスナップショットを作るには、snapshot というターゲットを使用します。ホームディレクトリに catalyst という名前のディレクトリを作って、そこにこれから作成するターゲットごとの設定ファイル(spec ファイルと呼びます)を置きましょう。

% mkdir ~/catalyst
% cd ~/catalyst
% cp /usr/share/doc/catalyst-1.0.9/examples/snapshot_template.spec snapshot-20040905.spec
    (ファイル名はなんでもいいのですが、分かりやすいので
    スナップショットを作成した日付にしましょう)

あとはこのファイルを開いて version_stamp: の右に、たとえば 20040905 といった日付を入れます。本当はこれだけでよいのですが、1.0.9 についてくるサンプルは target: の部分が snapshot ではなく snaphost になっている(誤字)ので、snapshot に直してください。次のバージョンでは直っていることでしょう。target: にせよ version_stamp: にせよ、コロン(:)の直後にはスペースが必要です。スペースを忘れるとエラーになりますので、十分注意してください。

上記2箇所に手を入れたらあとは実行するだけです。(root 権限が必要です)

# catalyst -f snapshot-20040905.spec

これで Portage ツリーのスナップショットが /var/tmp/catalyst/snapshots/portage-20040905.tar.bz2 に作成されます。 面倒な人はこれも Gentoo ミラーサイトの snapshots というディレクトリ にあるので、最新だと思われる tarball を取得して上記のディレクトリに入れてください。

次に必要なのは livecd-stage1 です。livecd-stage1 も設定例が用意されているので、コピーして編集しましょう。

% cp /usr/share/doc/catalyst-1.0.9/examples/livecd-stage1_template.spec.txt livecd-stage1-20040905.spec

あとは必要な項目をコメントを見ながら追加します。x86 でも ppc でも必要な項目は同じですが、ppc の場合いくつかコンパイルに失敗するパッケージがあるので、それも発見したら(必要ないパッケージであれば)とりあえずはコメントアウトするとよいでしょう。

## livecd-stage1 template for Gentoo Linux release bootable LiveCDs
## John Davis 

subarch: ppc
    (x86 の場合は x86 です。この例では ppc にします。)
version_stamp: 20040905
    (livecd-stage1 を作成する日付を入れましょう。)
target: livecd-stage1
    (ターゲット名は livecd-stage1 です。)
rel_type: default
    (default から変更の必要はありません。)
profile: default-ppc-2004.2
    (使うプロファイル名を入れます。stackable プロファイルは
    まだうまく動かないようです。)
snapshot: 20040905
    (Portage ツリーのスナップショットと同じ日付を入れます。
    Gentoo ミラーから取得した場合も、それに対応した日付にします。)
source_subpath: default/stage3-ppc-20040714
    (使う stage3 のバージョンを入れます。x86 を使う場合で、
    2004.2 の stage3 であれば、default/stage3-x86-2004.2 となります。)
livecd/use:
	-X
	-gtk
	-svga
	ipv6
	socks5
	livecd
	fbcon
	ssl
	
livecd/packages:
	baselayout
	livecd-tools
	genkernel
	ucl
	kudzu-knoppix
	module-init-tools
	hotplug
	irssi
	aumix
	metalog
	pciutils
	parted
	mt-st
	links
	star
	strace
	raidtools
	nfs-utils
	jfsutils
	usbutils
	speedtouch
	xfsprogs
	xfsdump
	e2fsprogs
	reiserfsprogs
	hdparm
	nano
	less
	openssh
	dhcpcd
	mingetty
	pwgen
	popt
	dialog
	rp-pppoe
	gpm
	screen
	mirrorselect
	penggy
	iputils
	hwdata-knoppix
	hwsetup
	bootsplash
	device-mapper
	lvm2
	evms
	vim
	gpart
	pwgen
	pptpclient
	mdadm
	tcptraceroute
	netcat
	ethtool
	wireless-tools

上記のようなファイルを用意して、

# catalyst -f livecd-stage1-20040905.spec

として実行すると livecd-stage1 が作成されます。現在のところ ppc ではいくつかのパッケージ(module-init-tools, speedtouch, penggy, bootsplash, gpart)でエラーが出て stage1 の作成が終了しません。解決策はあるのですが、根本的には stage3 を用意し直さないとだめなようです。

(上の部分新しい stage3 が用意されるまでに暇があったら加筆します)

これで livecd-stage2 を作成するための準備が整ったわけですが、現在の Catalyst 1.0.8.1 と 1.0.9 には、livecd-stage2 をビルドする最中に正しく make.profile のリンクを作成しないというバグがあり、livecd-stage2 を実行することができません。すでにバグ報告はしているので、次のバージョンまでに修正されることでしょう。

(以下まともに動くようになったら追記します)

livecd-stage2 も同様にコピーして編集し、

# catalyst -f livecd-stage2-20040905.spec

とすれば、livecd/iso: で指定した場所に ISO イメージファイルが作成されます。

Catalyst リソース

日本語で書かれた情報はほとんどありません。英語のリソースを参照してください。Catalyst HOWTO とリファレンスマニュアルについては途中まで訳したものがありますが、公開していません。引き続き訳してくださる方いらしたら連絡ください。

[ Top | Memo | Diary | Aerial ]


小町守 (奈良先端科学技術大学院大学), mamoru dot komachi at gmail dot
com
Mamoru KOMACHI (Nara Institute of Science and Technology)
Last modified: ÌÚÍËÆü, 21- 9-2006 20:28:40 JST