免責事項 : このドキュメントはすでに正しくなく、メンテナンスされていません。

Gentoo Linux 1.4 インストール手引書

Daniel Robbins  Chief Architect
Chris Houser  Author
Jerry Alexandratos  Author
Grant Goodyear  Ghost, Reviewer
John P. Davis  Editor
Pierre-Henri Jondot  Editor
Eric Stockbridge  Editor
Rajiv Manglani  Editor
Jungmin Seo  Editor
Stoyan Zhekov  Editor
Jared Hudson  Editor
Colin Morey  Editor
Jorge Paulo  Editor
Carl Anderson  Editor
Sven Vermeulen  Editor, Reviewer
Jon Portnoy  Editor
Zack Gilburd  Editor
Erwin  Editor
Gerald J. Normandin Jr.  Reviewer
Donnie Berkholz  Reviewer
Ken Nowack  Reviewer
Benny Chuang  Editor, Reviewer
yamakura  翻訳

更新日 December 18, 2003
この翻訳のオリジナルバージョンはすでにメンテナンスされていません。

1.  インストールについて

序文

Gentoo Linux へようこそ! Gentoo Linuxはいろいろな方法でインストールすることができます。 手早くインストールしたいなら、コンパイル済みパッケージを使う方法があります。 とことん自分の好みに合わせてカスタマイズしたい人は、 Gentoo Linux全体をソースコードからコンパイルすることもできます。 どのようにインストールするかはあなた次第です。

正式に1.4がリリースされたことに伴なう重要な変更点は、 2枚組のCDによるインストールセットが提供されることです。 このCDはGentoo Linux Storeで購入することができますし、 ミラーサイト からダウンロードすることもできます。 この2枚組CDのインストールセットはx86(486かそれ以降)、i686(Pentium Pro, Pentium II, Athlon/Duronかそれ以降)、 Pentium III、Pentium 4、Athlon XP向けが用意されています。 どのセットを選べばよいのかを知るには、Gentoo Linux Storeでそれぞれの商品の説明を読んでください。 このお店の説明にはCPUの互換性について詳しく書いてあります。

LiveCDのISOイメージはGentoo Linuxのミラーサイトからダウンロードすることができます。 x86アーキテクチャ用のLiveCDはreleases/x86/1.4/livecd/というディレクトリにあります。

インストール用CD

2枚組CDについて、それぞれ説明します。 最初のCD("CD 1")は"インストール用 LiveCD"と呼ばれ、起動可能なCD-ROMです。 つまり"CD 1"をドライブに入れれば、Gentoo LinuxをCDから直接走らせることができます。 この、CDバージョンのGentoo Linuxを使って、Gentoo Linux 1.4をハードディスクにインストールすることができます。 この"CD 1"には、Gentoo Linux環境の他に、Gentoo Linuxを手早くインストールするために必要なものが全て含まれており、 インターネット接続環境が無くてもインストール可能です。 さらに、"CD 1"にはXFree86 Xサーバなど、いくつかのコンパイル済みパッケージも含まれています。 "CD 1"のISOイメージは-cd1を含むファイル名になります。

2番目のCD("CD 2")はブートはできませんが、数多くのコンパイル済みパッケージを含んでいます。 たとえば、KDE、GNOME、OpenOffice、Mozilla、Evolutionといったものがあります。 "CD 2"は、使うかどうかは任意であり、 Gentoo Linuxをできるだけ速くインストールしたい人の利便を図るものです。 この"CD 2"に含まれるパッケージをソースからコンパイルするしたら、 標準的なシングルプロセッサのシステムでは36時間程度掛かります。 "CD 2"のISOイメージは-cd2を含むファイル名になります。

注意: Gentoo Linuxの2枚組CDセットは、GNOME、KDE、Mozilla、OpenOfficeを含むコンパイル済みGentoo LinuxシステムGentoo Reference Platformを含んでいます。 Gentoo Reference Platform("GRP")は、パッケージを短時間でインストールする機能を実現するために用意されました。 Gentoo Linuxの基本である、「ソースからのコンパイル」は常に選択肢として用意されます。 GRPの目的は、Gentooの強力な「ソースからのコンパイル」によるインストールに影響をあたえることなく、 Gentoo Linuxをより手軽なものにすることです。

2枚組CDセットの他に、とても小さい"basic" LiveCDも用意しており、こちらを使ってシステムをブートすることができます。 ブートしたあとは、インターネットへの接続などを設定したのち、ネットワーク経由でダウンロードしながらインストールできます。 このCDの特長はその小ささで、ISOイメージのダウンロード時間が節約できます。 あなたが慣れたユーザで、Gentoo Linuxの最新バージョンの利用したいと考えており、 良好なネットワーク接続環境を持っているなら、このCDは良い選択となるでしょう。 "basic" LiveCDのISOイメージは-basicを含むファイル名になります。

必須環境

CDを使うどのインストール方法を選んだとしても、 インストールを行なうには486以上のCPUおよび少なくとも64Mバイトのメモリが必要となります (Gentoo Linuxは64Mバイトのメモリと64Mバイトのスワップでビルドに成功していますが、 このような環境下では、とても時間がかかります)。

インストール方法の決定

LiveCDを使ってブートしたあとにも、さらに選択肢が用意されています。 Gentoo Linuxは3つある"ステージ"の圧縮ファイルのうち、どれかひとつを使ってインストールすることができます。 どれを使うかは、システムのどの程度を自分でコンパイルして用意するかによって決まります。 ステージ1圧縮ファイルは、ブートストラップしてシステム全体を一から組み立てるときに使います。 ステージ2圧縮ファイルは、既にブートストラップが済んだ状態からシステムを構築する場合に使います。 ステージ3圧縮ファイルは、標準的な設定で構築されたGentoo Linuxシステムを含んでいます。 "GRP"を使ってインストールすることを考えているのなら、ステージ3を選択しなければなりません。

GRPを使わずにインストールするとしたら、どのステージの圧縮ファイルを選んだらよいのでしょうか?

ここで、その手助けとなるように少し説明をします。

ステージ1を使うと、インストール直後のシステムに対して、 最適化オプションやコンパイル時に組込まれる機能を完全にコントロールすることができます。 自分のしていることをきちんと把握しているパワーユーザには、ステージ1が良いでしょう。 また、Gentoo Linuxの内部について知りたい人にとっても良い選択となります。

ステージ2を使うと、ブートストラップを省略することができます。 用意されたステージ2圧縮ファイルの最適化に不満がないならこれを使ってください。

ステージ3を使うことでインストール時間がもっとも短くなりますが、 最適化を自分でコントロールすることはできません。 しかしGentoo Linuxのメジャーリリースでは、 ポピュラーなプロセッサに対してそれぞれ最適化されたステージ3圧縮ファイルを用意しますので、 どのプロセッサに対してもステージ3は、素早いインストールと充分に最適化されたシステムという最高の環境を提供します。

Gentoo Linuxをインストールするのが初めてなら、ステージ3圧縮ファイルによるインストール、もしくはステージ3とGRPの組合せを選択すると良いでしょう。

注意: 上級者向け:ステージ3を使ってインストールする場合は、 /etc/make.confのCHOST設定を変えてはいけません。 変更する必要があるならば、ステージ1圧縮ファイルを使って、 希望するCHOST設定のシステムを構築してください。 標準的なCHOSTは次のように設定されています: i686-pc-linux-gnu

重要: インストールの途中で見つけたバグをレポートする時は、 原則としてhttp://bugs.gentoo.orgを使ってください。 バグがそのソフトウェアそのものに起因するような場合、 Gentoo Linuxの開発チームがそれを判断してソフトウェアの開発チーム (例えばKDE開発チームなど)に報告します。

注意: LiveCDに収められているインストール手引書は、 我々のウェブサイトにあるインストール手引書(日本語訳)とは違い、 必ずしも最新とは限りません。

インストール手順

それではインストールの手順を簡単に見てみましょう。 まずLiveCDイメージをダウンロードし、CDを作成します。 LiveCDでブートしてプロンプトが出たら、まずパーティションを、 続いてファイルシステムを作成し、ステージ1、ステージ2、ステージ3圧縮ファイルのどれかを展開します。 ステージ1かステージ2の圧縮ファイルを使用する場合、ステージ3に進むために適切な手順を踏む必要があります。 ステージ3に進みシステムに対して各種の設定(設定ファイルの調整、 ブートローダーのインストールなど)を行ない、再起動すればGentoo Linuxの完成です。 基本的なGentoo Linuxシステムを動作させたら、2枚組CDセットの"CD 2"を使って KDE、GNOME、OpenOffice、Mozilla他のコンパイル済みパッケージをインストールすることができます。

以下に、スタートするステージ別にどのような手順が必要なのかを示します。

圧縮ファイル インターネットアクセス メディア 手順
1 必須 basic または CD 1 パーティションとファイルシステムの作成、emerge sync、ブートストラップ、emerge system、最終調整
2 必須 basic または CD 1 パーティションとファイルシステムの作成、emerge sync、emerge system、最終調整
3 CD 1を使うなら不要 basic または CD 1 パーティションとファイルシステムの作成、emerge sync(CD 1を使うなら不要)、 最終調整
3+GRP 不要 CD 1と、必要に応じてCD 2を使用 パーティションとファイルシステムの作成、最終調整、"CD 1"のコンパイル済パッケージのインストール(任意)、 再起動、KDEやGNOMEなどのパッケージのインストール("CD 2"を使う場合)

注意: ハードウェアATA RAIDのユーザは、次に進む前にこの文書の最後にあるセクションを読んでください。

2.  ブート

警告: 先に進む前に、このセクション全体、特にブートオプションの部分をよく読んでください。 無視して先に進むと、キーボードの設定が間違っていたり、pcmciaサービスを起動していなかったりすることがあります。

選択したLiveCDでブートするところから始めましょう。 Gentoo Linuxロゴとともにブートスクリーンが表示されるはずです。 この画面ではそのままブートプロセスを進めるためにEnterを押すか、 自分のマシンに合ったカーネルとブートオプションを入力してからEnterを押してブートすることができます。 例えば、gentoo nousb nohotplugなどと入力します。 Gentoo Linuxを複数のプロセッサを搭載したシステム("SMP")で使うなら、gentooの代わりに、smpと入力してください。 そうすることで、LiveCDが1つのプロセッサだけでなく、全てのプロセッサを使えるようになります。

利用できるカーネルとオプションについては、以下の表かF2やF3キーを押すと表示されるヘルプを見てください。

利用できるカーネル 概要
gentoo 標準的なgentooカーネル (デフォルト)
nofb フレームバッファ無効化
smp smpカーネルでフレームバッファ無効化
acpi acpi=on有効かつinit中にacpiモジュールをロード
memtest メモリテストプログラムを起動
利用できるブートオプション 概要
doataraid initrdでIDE-RAIDモジュールを読み込む
dofirewire initrdでfirewireモジュールを読み込む(firewireのCD-ROMドライブ等利用者向け)
dokeymap 非USキーボード配列向けのキーマップ選択を有効にする
dopcmcia pcmciaサービスを開始する
doscsi SCSIデバイスをスキャンする(これにより動かなくなるイーサネットカードが存在する)
noapm APMモジュールの読み込みを無効にする
nodetect hwsetup/kudzuとhotplugによる検出をしない
nodhcp ネットワークカードが検出されてもDHCPを実行しない
nohotplug hotplugサービスの読み込みを無効にする
noraid evmsモジュールの読み込みを無効にする
nousb initrdでのUSBモジュールの読み込みとhotplugを無効にする
ide=nodma DMAモードでうまく動かないIDEデバイスがある場合に、強制的にDMAを無効にする
cdcache CDの中身をメモリにキャッシュする。メモリを40MB程度余分に使うが、 umount /mnt/cdromし別のCDをマウントすることができる

Enterを押すと、ちょっとしゃれたブートスクリーンとプログレスバーが表示されます。

警告: ブートスクリーンが表示されず、画面が真っ暗なままになってしまったときは、 nofbカーネルを試してみてください。 おそらくLiveCDのカーネルではあなたのグラフィックアダプタでフレームバッファが利用できないのが原因でしょう。

ブートプロセスが完了すると、自動的に"スーパーユーザ"である"root"として"Live" Gentoo Linuxにログインします。 コンソールにはrootのプロンプト ("#") が表示されるはずです。 ここでALT-F2、ALT-F3、ALT-F4を押すと別のコンソールに切り替えることができます。 最初のコンソールに戻るにはALT-F1を押します。

注意: 上級者向け:LiveCDがブートすると、LiveCD上のrootのパスワードは ランダムな文字列に設定されます。 sshdを動かしてLiveCDにリモートからログインすることを考えているなら、 ここでpasswdコマンドを使ってrootのパスワードを変更してください。 そうしないと、ネットワーク経由でログインするための正しいパスワードを知ることができません。

既にお気づきかと思いますが、#プロンプトの上には、ネットワークの設定方法やGentoo Linuxの各ステージ圧縮ファイル、 パッケージのありかなどの説明が書かれたヘルプテキストが表示されています。

3.  補足的なハードウェア設定

LiveCDは、起動すると全てのハードウェアを検出し、適切なカーネルモジュールを読み込もうとします。 大抵の場合、これはうまく動作します。 しかし、時には必要なモジュールが読み込まれないことがあります。 ハードウェアの自動検知がうまくいかなかったら、適切なカーネルモジュールを手動でロードしなければなりません。 利用可能なネットワークカードモジュールの一覧を見るには、 ls /lib/modules/`uname -r`/kernel/drivers/net/*とタイプしてください。 モジュールをロードするには、次のようにタイプします。

コード表示 3.1: PCIモジュール設定

(pcnet32を使っているNIC用のモジュール名に変えてください)
# modprobe pcnet32

同じように、PCI自動検知で検出されなかったSCSIデバイスにアクセスできるようにするには、 もういちどmodprobeを利用して/lib/modulesから適切なモジュールをロードします。

コード表示 3.2: SCSIモジュールの読み込み

(aic7xxxを使っているSCSIアダプタ用のモジュール名に変えてください)
# modprobe aic7xxx
(sd_modはSCSIディスクサポートのためのモジュール)
# modprobe sd_mod

注意: SCSI CD-ROMとハードディスクのサポートはカーネルに組み込まれています。

注意: 上級者向け:Gentoo LiveCDはディスクドライブのDMAを有効にするのでディスクの転送レートは最も速い状態になりますが、 もしこれが有効にならなかったときはhdparmを使ってドライブにDMAを設定できます。

コード表示 3.3: DMA設定

(hdXを自分のシステムのディスクデバイス名に変えてください)
(DMAを有効に)
# hdparm -d 1 /dev/hdX 
(DMAと、性能を上げる安全なオプションを有効に)
# hdparm -d1 -A1 -m16 -u1 -a64 /dev/hdX
(Ultra-DMAを有効に -- 危険! -- ドライブが壊れる恐れあり)
# hdparm -X66 /dev/hdX

4.  補足的なネットワーク設定

もう動いているかも?

あなたのシステムがイーサネットによってネットワークに接続されているならば、 既にネットワークの設定が自動的に行なわれていることでしょう。 その場合は、LiveCDに含まれる多くのネットワーク関連のコマンド、 sshscppingirssiwgetlinksなどを利用できます。

ネットワーク接続できるようになっているなら、/sbin/ifconfigコマンドでloと一緒にeth0などのネットワークインタフェースが表示されるはずです。

コード表示 4.1: /sbin/ifconfigでネットワークカードが動作しているか確認する

eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1984 txqueuelen:100
          RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
          Interrupt:11 Base address:0xe800 

ISPのDNSサーバ(/etc/resolv.confにアドレスが書かれているはずです)や、 適当なWebサーバに対してpingを打ってみることで、パケットがネットワークに届くこと、 DNSによる名前の解決がうまく機能していることなどを確かめることができます。

コード表示 4.2: ネットワークの確認

# ping -c 3 www.yahoo.com

ネットワークが使えるようになっていますか? それならば、残りは飛ばして次のセクションに進んでください。

PPPoE設定

インターネットへ接続するためにPPPoEが必要な場合、 どのバージョンのLiveCDにも含まれているrp-pppoeを使うのが簡単です。 adsl-setupスクリプトを使って接続の設定をしてください。 adslモデムに接続しているイーサネットデバイスとユーザ名、パスワード、 DNSサーバのIPアドレス、ファイアウォールが必要かどうか、を入力してください。

コード表示 4.3: PPPoE設定

#  adsl-setup 
#  adsl-start 

うまくいかないようなら、ユーザ名とパスワードを間違いなく入力しているかどうか、 /etc/ppp/pap-secrets/etc/ppp/chap-secretsを見てよく確認してください。 また正しいイーサネットデバイスを指定しているかどうかも確認してください。

ネットワークの自動設定

自動的にネットワークが設定されなかった場合、いちばん簡単な設定方法は、net-setupスクリプトを実行することです。

コード表示 4.4: net-setupスクリプト

# net-setup eth0

もちろん、お好みであれば手動で設定することもできます。その方法は次で説明します。

手動でDHCPを使う

DHCPの設定は簡単です。ご利用のISPがDHCPをサポートしていない場合は、固定IPの設定まで進んでください。

コード表示 4.5: DHCPを使ったネットワーク設定

# dhcpcd eth0

注意: ISPによっては、ホスト名の入力が必要になります。 その場合はdhcpcdコマンドの後に-h myhostnameと書き加えてください。

もしdhcpConfig警告を受け取ったとしても、慌てないでください。 このエラーは重大なものではありません。ネットワークのテストまで進んでください。

手動で固定アドレスを設定する

システムの構築に必要なソースファイルをダウンロードすることができるようにネットワークを設定しなければなりません。 そのために必要な情報は以下の表に示されているものです。

項目 説明
IPアドレス ネットワークカードに割り当てたいIPアドレス 192.168.1.2
ブロードキャストアドレス ローカルネットワークの全てのホストにパケットをブロードキャストするためのアドレス 192.168.1.255
ネットワークマスク IPアドレスと一緒に使われ、アドレスのうちネットワークを識別する範囲とホストを識別する範囲を表現するために使われるマスク値 255.255.255.0
ゲートウェイ ローカルネットワーク以外のアドレス(インターネット接続している場合など)にパケットを転送するためのコンピュータのアドレス 192.168.1.1

システムの構築に必要なソースをダウンロードするために、ネットワークに対して適切な設定を行なう必要があります。 下記のコマンドを入力してください。その際、$IFACEを使用するネットワークインターフェイス (たいていの場合eth0)に、$IPNUMを使用するIPアドレスに、 $BCASTをブロードキャストアドレスに、$NMASKをネットワークマスクにそれぞれ置き換えてください。 routeコマンドでは、$GTWAYをデフォルトゲートウェイに置き換えてください。

コード表示 4.6: 固定IPネットワーク設定

# ifconfig $IFACE $IPNUM broadcast $BCAST netmask $NMASK
# route add -net default gw $GTWAY netmask 0.0.0.0 metric 1 $IFACE

ここで、/etc/resolv.confを作成し、 名前解決(Webサイトや FTPサイトのIPアドレスを直接指定するのではなく名前で指定)できるようにします。 nano -w /etc/resolv.confとして、/etc/resolv.conを作成できます。 nanoは小さくて操作の簡単なエディタです。

以下に、/etc/resolv.conf作成の参考になるようにテンプレートを示します。

コード表示 4.7: /etc/resolv.conf テンプレート

domain mydomain.com
nameserver 10.0.0.1
nameserver 10.0.0.2

10.0.0.110.0.0.2 をそれぞれプライマリDNSサーバとセカンダリDNSサーバのアドレスに書き換えてください。

プロクシ設定

プロクシを利用している場合は先に進む前にプロクシを利用する設定をしなければなりません。 次のように環境変数を設定してください。

コード表示 4.8: プロキシ設定

(プロキシがHTTPでの通信を制限している場合:)
# export http_proxy="http://machine.company.com:1234"
(プロキシがFTPでの通信を制限している場合:)
# export ftp_proxy="ftp://machine.company.com"
(プロキシがRSYNCでの通信を制限している場合:)
# export RSYNC_PROXY="rsync://machine.company.com"

注意: プロクシを利用するために認証しなければならない場合は、 http://username:password@machine.company.com のようにしてください。 ("username:password@"が追加されています)

ネットワークの用意ができました!

これで、ネットワークの設定が終わって利用可能になったと思います。 sshscplynxirssiwgetコマンドを使って、LAN上のマシンやインターネットに接続することが可能です。

5.  システムの日付と時刻を合わせる

ここで、システムの日付と時刻を合わせてください。 dateコマンドを使います。

コード表示 5.1: システム日付の調整

# date
Thu Feb 27 09:04:42 CST 2003
(時刻が合っていなかったら、次のようにして合わせる)
# date 022709042003
(date MMDDhhmmCCYY)

6.  ファイルシステム、パーティション、そしてブロックデバイス

ブロックデバイスとは

このセクションでは、Gentoo LinuxまたはLinux全般における、Linuxファイルシステム、 パーティション、ブロックデバイスなど、ディスクに関する事項を説明します。 ディスクに関する知識を得たところで、その後、 Gentoo Linuxのインストールをするためにパーティションおよびファイルシステムの作成手順を解説します。

まず初めに、"ブロックデバイス"を紹介します。 最も馴染みのあるブロックデバイスはおそらく1番目のIDEドライブとしてLinuxに認識されているものでしょう。

コード表示 6.1: /dev/hdaはプライマリマスタIDEドライブを表すブロックデバイス

/dev/hda

もしSCSIドライブを使っているなら、1番目のハードディスクは次のようになるかも知れません。

コード表示 6.2: /dev/sdaは1番目の論理SCSIドライブを表すブロックデバイス

/dev/sda

上で見たようなブロックデバイスはディスクに対する抽象的なインタフェースを表します。 ユーザプログラムは、それがIDEなのかSCSIなのかといったことを気にすることなく、これらのデバイスを使うことができます。 プログラムは、多数の連続した、ランダムアクセス可能な512バイトブロックに単純にアドレッシングできます。

パーティションとfdiskコマンド

Linuxでは、mkfs (または mke2fsmkreiserfsなど) にコマンドラインでブロックデバイスを指定して実行することで、ファイルシステムを作成します。

理論的には、"whole disk"ブロックデバイス(ディスク全体を表すもの)である、 /dev/hda/dev/sdaを使ってひとつのファイルシステムを格納することもできますが、 実際にはほとんどそのようにされることはありません。 ディスク全体を使うかわりに、もっと扱いやすい"パーティション"と呼ばれるブロックデバイスに分割します。 パーティションはfdiskと呼ばれる、パーティションテーブルを編集しそれぞれのディスクに書きこむツールを使って作成します。 パーティションテーブルはディスク全体がどのように分割されるのかを定義します。

fdiskを使って、ディスクのパーティションテーブルを見てみます。ディスク全体を表すデバイスを指定してください:

注意: パーティションテーブルを編集するには、他にcfdiskpartedpartimageなどがあります。 最も機能豊富でUnix/Linuxの世界で良く知られているfdiskの利用をお勧めします。

コード表示 6.3: fdiskを起動する

# fdisk /dev/hda

または

コード表示 6.4: /dev/sdaのパーティションテーブルを確認するために、fdiskを起動する

# fdisk /dev/sda

重要: ディスク内に使用中あるいは重要なデータを含んだパーティションがある場合は、 パーティションテーブルを保存したり変更したりしないように注意してください。 このような操作でディスク内のデータが失われる恐れがあります。

fdiskを実行すると、次のようなプロンプトが表示されます。

コード表示 6.5: fdiskのプロンプト

Command (m for help): 

ディスクの現在のパーティションテーブルを表示するにはpコマンドを使います。

コード表示 6.6: パーティション設定の一例

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help): 

この例では、7つのLinuxファイルシステム("Linux"と表示)とスワップパーティション("Linux swap"と表示)が設定されています。

ここで、左側に表示されているそれぞれのパーティションの名前が、 /dev/hda1から始まって/dev/hda9まであることに注目してください。 かつては、パーティション作成ソフトウェアは最大4つのパーティション ("プライマリ"パーティションと呼ばれる)しか扱えませんでした。 これは厳しすぎる制限であったため、拡張パーティションと呼ばれるものが導入されました。 この拡張パーティションはプライマリパーティションとよく似ていて、同じく4つまでのパーティションを持つことができます。 しかし、拡張パーティションの中に、 論理パーティションとよばれるパーティションをいくつでも作成することができますので、 結局最大4つまでという制限を回避することができます。

/dev/hda5以降の全てのパーティションは論理パーティションです。 1から4まではプライマリまたは拡張パーティションのために予約されています。

つまり、この例では/dev/hda1から/dev/hda3はプライマリパーティションです。 /dev/hda4は拡張パーティションで、/dev/hda5から/dev/hda9を内包します。 /dev/hda4を直接使ってファイルシステムを作成することはできません。 /dev/hda5から/dev/hda9の入れ物となります。

それぞれのパーティションが"Id"、または"パーティションタイプ"と呼ばれるものを持っていることに気付いたでしょうか。 パーティションを作成したときには、パーティションタイプを正しく設定しているか確認してください。 '83'がLinuxファイルシステムのためのパーティションタイプです。'82'はLinuxスワップパーティションのためのパーティションタイプです。 'fd'はソフトウェアRAIDパーティションを作成するときの推奨パーティションタイプです。 fdiskコマンドではtコマンドでパーティションタイプを設定することができます。 Linuxカーネルは、起動時にパーティションタイプの設定を使って、ファイルシステムとスワップデバイスを自動的に識別します。

fdiskを使ってパーティションを作成する

ここまで、Linuxでのパーティション作成について説明しました。 それでは自分でGentoo Linuxをインストールするためのパーティションを作成してください。 パーティションの作成が終わると、次のような表示になるでしょう。

コード表示 6.7: 以下の手順を行なうと、次のようにパーティションテーブルが作成されます

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1        14    105808+  83  Linux
/dev/hda2            15        81    506520   82  Linux swap
/dev/hda3            82      3876  28690200   83  Linux

Command (m for help):

"初心者"におすすめのパーティション設定は、3つのパーティションから成ります。 最初のパーティション(/dev/hda1)はディスクの先頭に作成された小さなパーティションで、ブートパーティションと呼ばれます。 ブートパーティションはブートに関係する重要なデータ、たとえばGRUBブートローダの設定やLinuxカーネルなどを保持するための領域です。 ブートパーティションはLinuxをブートさせるために必要なもの全てを安全に格納できます。 日常的な利用のときは、ブートパーティションをマウントしていない状態にしておくことで安全性を確保します。 もしSCSIを利用したシステムを使っているなら、このパーティションは/dev/sda1となるでしょう。

ブートパーティションは、ディスクの先頭の領域に作成することが推奨されています。 今となっては過去の制約でしかありませんが、 かつてliloブートローダがディスクの1024番目のシリンダ以降の領域にあるカーネルを読みこむことができなかった時代から続く伝統です。

2番目のパーティション(/dev/hda2)はスワップパーティションとして利用する領域です。 カーネルは物理メモリの空き容量が少なくなったとき、スワップスペースを仮想的なメモリとして使います。 このパーティションは他の領域と比較してとても大きいということはありませんが、標準的には512MB前後の大きさで作成されます。 もしSCSIを利用したシステムを使っているなら、このパーティションは/dev/sda2となるでしょう。

3番目のパーティション(/dev/hda3)は非常に大きく、ディスクの残りの領域すべてを使って作成されます。 このパーティションは"ルート"パーティションと呼ばれ、Gentoo Linuxそのものを格納するファイルシステムが入ります。 もしSCSIを利用したシステムを使っているなら、このパーティションは/dev/sda3となるでしょう。

パーティション作成を始める前に、Gentoo Linuxをインストールする時に推奨されている、 パーティションとファイルシステムの設定についてまとめておきます。

パーティション サイズ タイプ 例でのデバイス
ブートパーティション(カーネルとブートのために必要な情報を保持) 32メガバイト Ext2/3を強く推奨(最も容易なため)。ReiserFSを使うのであれば、-o notailを付けてマウントすること。 ext3/ReiserFSを使うときは、ジャーナルのためのサイズも考慮すること。この場合は、64メガバイトが推奨となる。 /dev/hda1
スワップパーティション(128MBの制限はなくなり2GBまで可能) 一般的に、システムに搭載している物理メモリの1〜2倍のサイズとする。 Linux swap /dev/hda2
ルートパーティション(/usr、/homeなど、主たるファイルシステム) >=1.5ギガバイト ReiserFS/ext3を推奨。ext2でも良い。 /dev/hda3

それでは、先程の例と上に示した表に従ってパーティションを作成しましょう。 まず、fdisk /dev/hda(IDE)またはfdisk /dev/sda(SCSI)と入力して、fdiskを起動します。 現在のパーティション設定を確認するため、pと入力します。 保存しておかなければならないものがこのディスクにありませんか? もしあれば、先に進まないでください。 このままこの手順に従ってすすめると、ディスク上の全てのデータが消去されることになります。

重要: 以下で説明する手順では、ディスク上の全てのデータが削除されます! もしディスクにデータが入っているなら、失ってもかまわないものであることをよく確認してください。 また、うっかり違うドライブのデータを消してしまうことがないように、正しいドライブを選択しているかよく確認してください。

では、すでにあるパーティションを削除します。dと入力してエンターキーを押してください。 すると何番のパーティションを削除するのか聞いてきます。/dev/hda1を削除するなら、次のようになります。

コード表示 6.8: パーティションの削除

Command (m for help): d
Partition number (1-4): 1

パーティション削除が予定されました。 これによってpではそのパーティションは表示されなくなりますが、パーティションテーブルを保存するまでは実際には削除されていません。 もし操作を間違ってしまい、変更を取り消したいときは、すぐにqと入力してエンターキーを押してください。

ディスクの全てのパーティションを削除する場合は、pでパーティションを確認して、 dで番号を指定してパーティションを削除することを繰り返してください。 最後には、全てのパーティションが削除されて、次のような表示になるでしょう。

コード表示 6.9: 空のパーティションテーブル

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

これでメモリ上のパーティションテーブルは空の状態になり、ブートパーティションを作成する準備が整いました。 nで新しいパーティションを作成し、pでプライマリパーティションを指定してください。 さらに1と入力して1番目のプライマリパーティションを作成します。 先頭のシリンダ番号を聞かれたら、そのままエンターキーを押します。 最終のシリンダ番号を聞かれたら、+32Mと入力し、32MBのパーティションを作成します。 この手順では、次のように表示されたはずです。

注意: ジャーナルを使うファイルシステムではジャーナル保持のためのスペースを必要とします。標準の設定では約33MBが必要です。 そのため、ジャーナルを使うファイルを/bootとして使う場合は、+64Mと入力してください。

コード表示 6.10: ブートパーティションを作成する手順

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Hit Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

pと入力してパーティションテーブルを表示してみてください。

コード表示 6.11: 最初のパーティションが作成されました

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

次にスワップパーティションを作成します。 nで新しいパーティションを作成し、pでプライマリパーティションを指定してください。 さらに2と入力して2番目のプライマリパーティションを作成します。 この場合は/dev/hda2となります。 先頭のシリンダ番号を聞かれたら、そのままエンターキーを押します。 最終のシリンダ番号を聞かれたら、+512Mと入力し、512MBのパーティションを作成します。 さらに、パーティションタイプを設定するためにtと入力し、 今作ったばかりの2番目のパーティションの2と入力し、 "Linux Swap"パーティションタイプの82を入力してください。 その後、pでパーティションテーブルを見ると次のようになるでしょう。

コード表示 6.12: スワップパーティションが作成されました

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap

最後にルートパーティションを作成します。 nで新しいパーティションを作成し、pでプライマリパーティションを指定してください。 さらに3と入力して3番目のプライマリパーティションを作成します。 この場合は/dev/hda3となります。 先頭のシリンダ番号を聞かれたら、そのままエンターキーを押します。 最終のシリンダ番号を聞かれたら、そのままエンターキーを押すことでディスクの最後を指定します。 その後、pでパーティションテーブルを見ると次のようになるでしょう。

コード表示 6.13: ルートパーティションが作成されました

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux

最後に、ブートパーティションに"ブート可能"フラグを設定し、これまで設定してきたパーティションテーブルをディスクに書きこみます。 /dev/hda1を"ブート可能"にするには、aと入力した後、ルートパーティションのパーティション番号1を入力します。 ここでpでパーティションテーブルを確認すると、/dev/hda1パーティションの"Boot"フィールドに*がついていることがわかるでしょう。 さて、いよいよディスクにパーティションテーブルを書き込みます。 そのためには、wと入力し、エンターキーを押します。 これで、Gentoo Linuxをインストールするための正しいパーティション設定ができました。

注意: fdiskcfdiskから指示があったら、新しいパーティションを認識できるようにするため、コンピュータを再起動してください。

ファイルシステムの作成

パーティションを作りましたので、次にブートパーティションとルートパーティションにファイルシステムを作成し、 マウントしたりデータを保存したりできるようにします。 また、スワップパーティションを作成し、スワップ領域が使えるようにします。

Gentoo Linuxはいくつかのファイルシステムをサポートしています。 これらはそれぞれ、強み、弱みを持っており、性能にも特徴があります。 作成できるのは、ext2、ext3、XFS、JFSおよびReiserFSファイルシステムです。

ext2は枯れたLinuxファイルシステムですが、メタデータジャーナリングがありません。 そのため、システム起動時のファイルシステムチェックに長い時間がかかることがあります。 実はジャーナリングを備えた、より新しいファイルシステムが存在し、 それは素早く整合性を確認できるので、ジャーナリングを備えていないext2より好まれているようです。 ジャーナリングファイルシステムではシステム起動時にファイルシステムに不整合が見つかっても、 待たされることがありません。

ext3はジャーナリングを備えたext2ファイルシステムで、メタデータジャーナリングによって、 素早い復旧だけでなく拡張ジャーナリングモードでfull dataとordered dataジャーナリングが可能です。 ext3は安定した信頼できるファイルシステムです。多くの場合、まずまずの性能を発揮します。 内部構造において"ツリー"のような仕組みを持たないため、条件によって性能が落ちることがあります。 大きなファイルシステムを作成するときや、大きなファイルを取り扱うとき、 またあるディレクトリに大量のファイルを格納するような場合には理想的な選択とは言えません。 しかし、極端な条件でなければ、ext3は優れたファイルシステムと言えます。

ReiserFSはB*-ツリーを基礎として作られたファイルシステムで、非常に良い性能を持っています。 小さなファイル(だいたい4kバイト未満)を扱うときは、ext2やext3よりも非常に高い性能を発揮し、 時には、10〜15倍にも達します。ReiserFSは大きなファイルシステムなどでも性能を発揮します。 メタデータジャーナリングも備えています。カーネル2.4.18以降、ReiserFSは非常に安定しており、 一般的な目的のファイルシステムはもちろん、大きなファイルや大量の小さなファイルを扱うような極端なケースにおいても推奨されます。 ReiserFSはブートパーティション以外ならいつでもお勧めします。

XFSはメタデータジャーナリングを備えたファイルシステムで、 Gentoo Linuxではxfs-sourcesカーネルで完全にサポートされています。 堅牢な特徴を持ち、スケーラビリティを持つように最適化されています。 このファイルシステムはハイエンドのSCSI/fibreチャネルストレージと無停電電源装置を備えたシステムでのみ推奨します。 XFSは積極的に処理中のデータをメモリにキャッシュするため、間違った設計のプログラム (ファイルをディスクに書き込むときに適切な予防措置を講じていない; そのようなプログラムが数多くあります)を走らせたときに、 不意のダウンによってデータが失われてしまう恐れがあります。

JFSはIBMのハイパフォーマンスジャーナリングファイルシステムです。 最近になって商利用に耐えるものになりましたが、充分な資料がないため、 その一般的な安定性については良いとも悪いともコメントできません。

もし、頑丈なジャーナリングファイルシステムが希望なら、ext3を選んでください。 汎用の高性能ファイルシステムがよければ、ReiserFSを選んでください。 ext3とReiserFSはどちらも成熟し洗練されていますのでお勧めです。

さきほど見た例に従うと、パーティションを初期化するコマンドは次のようになります。

コード表示 6.14: パーティションの初期化(参考例)

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mkreiserfs /dev/hda3

ブートパーティションの/dev/hda1はext2を選択しました。 堅牢なファイルシステムであるとともに、メジャーなブートローダがサポートしているからです。 スワップパーティションの/dev/hda2を初期化するにはmkswapを使います。 これは明白ですね。 そして、メインのルートパーティションである/dev/hda3にはReiserFSを選びました。 頑丈なファイルシステムであり、素晴らしいパフォーマンスをもたらします。 それではパーティションを初期化しましょう。

参考までに、インストール中に利用可能なmkfsコマンドの仲間を紹介します。

mkswapはスワップパーティションを初期化するコマンドです:

コード表示 6.15: スワップの初期化

# mkswap /dev/hda2

mke2fsはext2ファイルシステムを作成します:

コード表示 6.16: ext2ファイルシステムの作成

# mke2fs /dev/hda1

ext3ファイルシステムを使うのなら、mke2fs -jコマンドを使います:

コード表示 6.17: ext3ファイルシステムの作成

# mke2fs -j /dev/hda3

注意: Linux2.4でext3を使用する場合は以下のURLが参考になるでしょう。 http://www.zip.com.au/~akpm/linux/ext3/ext3-usage.html

ReiserFSファイルシステムの作成にはmkreiserfsを使います:

コード表示 6.18: ReiserFSファイルシステムの作成

# mkreiserfs /dev/hda3

XFSファイルシステムにはmkfs.xfsを使います:

コード表示 6.19: XFSファイルシステムの作成

# mkfs.xfs /dev/hda3

注意: mkfs.xfsコマンドに対し、-d agcount=3 -l size=32mオプションを付加することができます。 -d agcount=3オプションはアロケーショングループの数を減らします。 XFSは4Gバイトごとに少なくともひとつのアロケーショングループを必要とします。 つまり、20Gバイトのパーティションがあった場合、最低でも5つのアロケーショングループが必要になります。 -l size=32mオプションはジャーナルサイズを32Mバイトに増加させ、パフォーマンスを良くします。

JFSファイルシステムの作成にはmkfs.jfsを使います:

コード表示 6.20: JFSファイルシステムの作成

# mkfs.jfs /dev/hda3

7.  パーティションをマウントする

初期化が済んだスワップボリュームを有効にし、後で仮想メモリが必要になったときに使えるようにしておきます。

コード表示 7.1: スワップを有効にする

# swapon /dev/hda2

次に、/mnt/gentoo/bootというマウントポイントを作成し、そこにさきほどのファイルシステムをマウントします。 ブートファイルシステムとルートファイルシステムをマウントした後は、/mnt/gentooの中に作成されたファイルはすべてそれらのファイルシステム内に格納されます。 もし/usr/varなどのファイルシステムを別々に作成している場合は、それぞれ、/mnt/gentoo/usr/mnt/gentoo/varとしてマウントしてください。

重要: /bootパーティション(カーネルを保持しているパーティション) がReiserFSである場合、GRUBが正常にインストールされるように-o notailオプションを使ってマウントしてください。 さらに/etc/fstabのbootパーティションにnotailオプションを追加してください。 これについてはまたあとで説明します。もしReiserFSでLILOを使う場合は、-o notailオプションは必要ありません。 どんな場合でも-o notailオプションは安全です。

コード表示 7.2: マウントポイントの作成

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

重要: もしext2のbootパーティションをマウントするときに問題が発生したら、mount /dev/hXX /mnt/gentoo/boot -t ext2 を試してみてください。

8.  ステージ圧縮ファイルとchroot

ステージ圧縮ファイルの選択

もしまだなら、ここでどのステージ圧縮ファイルを使うか決めなければなりません。 ステージ圧縮ファイルはCDの/mnt/cdrom/stages/にあります。 ls /mnt/cdrom/stages/とすれば、何が利用可能か確認できます。

GRPユーザstage3-xx-yy.tar.bz2を使ってください。

もしCD上に無い圧縮ファイルを使うのならば("basic" LiveCDを使う場合などがそうです)、以下の手順に従ってダウンロードをしなければなりません。 もし圧縮ファイルを既に持っていてダウンロードの必要がなければ(ほとんどの人がそうでしょう)、"ステージ圧縮ファイルの展開"に進んでください。

注意: プロクシを使うときは(例として proxy.server.tld:8080 を使う場合)、 -http-proxy proxy.server.tld:8080linksコマンドのオプションに指定してください。

コード表示 8.1: 必要なステージの圧縮ファイルのダウンロード

# cd /mnt/gentoo
lynxを使って、圧縮ファイルのURLを確認してください。
# links http://gentoo.oregonstate.edu/releases/x86/1.4/
矢印キーの(あるいはタブキー)を使って希望する圧縮ファイルのあるディレクトリに移動してください。
カーソルをダウンロードしたいステージファイルに合わせ、dを押すとダウンロードが始まります。
ファイルに保存してブラウザを終了してください。

あるいはコマンドラインでwgetを使ってダウンロードすることもできます。
# wget (ここに必要な圧縮ファイルのURLを指定してください。)

ステージ圧縮ファイルの展開

ここで、選択した圧縮ファイルを/mnt/gentooに展開します。 展開するのはステージ1、ステージ2、ステージ3のいずれかひとつだけです。 つまり、ステージ3からインストールするのであれば、ステージ3圧縮ファイルを展開してください。

重要: tarする時は必ずpオプションを使用してください。 これを怠ると、いくつかのファイルに誤ったパーミッションを与えてしまいます。

コード表示 8.2: 圧縮ファイルの展開

# cd /mnt/gentoo
選択した圧縮ファイルに合わせて、"stage3"を"stage2"や"stage1"に変えてください。
ダウンロードした圧縮ファイルを使うときは、パスの先頭が"/mnt/cdrom/stages/"ではなく"/mnt/gentoo/"になります。
# tar -xvjpf /mnt/cdrom/stages/stage3-*.tar.bz2

/mnt/gentooにダウンロードされた圧縮ファイルは、展開したあとで次のように入力して削除することができます: rm /mnt/gentoo/stage*.tar.bz2

GRPパッケージ/スナップショットの展開

重要: 以下の手順はGRPユーザ用です。GRPを使わないなら、「ミラーサイトの選択(任意)」に進んでください。

GRPユーザ: LiveCDにはPortageのスナップショットが入っています。 これを使うことで、後でこの文書で出てくるemerge sync(ネットワーク接続が必要)のステップを飛ばすことができます。以下のようにして展開してください。

コード表示 8.3: Portageスナップショットの展開

yyyymmddには日付が入ります。
# tar -xvjf /mnt/cdrom/snapshots/portage-yyyymmdd.tar.bz2 -C /mnt/gentoo/usr

これで、Portageツリーのスナップショットを展開することができます。 emerge syncのためにネットワークに接続する必要はありません。 次に、distfilesとpackagesをLiveCDからコピーします。

コード表示 8.4: GRPファイルのコピー

# cp -R /mnt/cdrom/distfiles /mnt/gentoo/usr/portage/distfiles
# cp -a /mnt/cdrom/packages /mnt/gentoo/usr/portage/packages

GRPに必要なファイルをすべて所定の位置にコピーできました。 これでネットワーク接続なしでGentoo Linuxのインストールために必要なものが揃いました。

ミラーサイトの選択(任意)

mirrorselectは自動的に一番速いミラーサイトを選び出したり、 リストの中から手動でサイトを選んだりするためのツールです。 残念なことに、mirrorselectはうまく動かないこともあります。

コード表示 8.5: mirrorselectを使う

(ミラーサイトを自動選択)
# mirrorselect -a -s4 -o >> /mnt/gentoo/etc/make.conf
(ミラーサイトを手動選択)
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf

何らかの理由でmirrorselectがうまく動かなくても、何の変更もなくこの後の手順を進めることができます。 失敗する原因の一つとしてmirrorselectが存在しないことが挙げられます。 全てのインストールメディアにmirrorselectが含まれているわけではありません。

chrootの実行

次にGentoo Linuxのインストールを進めていくために、chrootを使ってGentoo Linuxシステムに「入り」ます。

注意: env-updateを実行したときに/etc/make.profile/make.defaultsが利用できないというメッセージが表示されますが、無視してください。 あとでemerge syncを実行しますが、それによってこの問題は解消します。

コード表示 8.6: 下準備してchroot環境に入る

# mount -t proc proc /mnt/gentoo/proc
# cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
# chroot /mnt/gentoo /bin/bash
# env-update
Regenerating /etc/ld.so.cache...
# source /etc/profile
(上のコマンドはシェルに新しい検索パスを設定し更新されたバイナリが使えるようにする)

このコマンドを実行すれば/mnt/gentooに作成されたGentoo Linux環境の「中」に入ることができます。 以下の手順はこのchroot環境内で進めます。

9.  最新のPortage ツリーを取得する

重要: GRPインストールをする場合は、以下のemerge syncに関するセクションは飛ばしてください。

ここで、emerge syncを実行してください。これにより、 インターネットを通じて最新のPortageツリーを取得できます。 もしPortageツリーをCD 1のスナップショットから展開しているなら、このステップを飛ばして次に進んでください。 Portageツリーには、Gentoo Linuxでパッケージを構築するための全てのスクリプト(ebuildと呼びます)が収められています。 現在、4000パッケージ近くのebuildスクリプトがあります。 emerge syncが完了すると、/usr/portage以下に完全なPortageツリーが格納されます。

コード表示 9.1: syncを使って更新する

# emerge sync

Portageの新しいバージョンが利用可能だという警告が表示されても、 無視してかまいません。インストールの途中で自動的にアップデートされます。

10.  Gentooシステムの最適化オプションを設定する(make.conf)

Portageツリーをコピーできたので、次に最適化とパッケージ構築の設定をします。 Portageはどんなプログラムをコンパイルするときでもこの設定を使います。 設定するには/etc/make.confファイルを編集します。 このファイルでは、パッケージに組み込みたい機能を指定するUSE変数やをセットしてください。 一般的にはデフォルト(空かセットなし)でいいでしょう。 USEフラグに関しては、Gentoo Guide to USE flags(日本語訳))に詳しい説明があります。 利用可能なUSEフラグの完全リストがGentoo Linux Use Variable Descriptionsという文書にあります。

ステージ1の圧縮ファイルを使って始めた方は、お使いのハードウェアに合わせて、CHOST、CFLAGS、CXXFLAGS変数もそれぞれセットしてください (ファイルの下の方に設定例が載っています)。

警告: ステージ2または3を使って始めた方は、 これらの設定は既に済んでいます。CHOSTの値を変更してはいけません。

警告: 上級者向け: ACCEPT_KEYWORDS="~x86" のGentooシステムをインストールしようとしている場合でも、 ブートストラップ(ステージ1)が完了するまではACCEPT_KEYWORDSに値を設定しないでください。

重要: 上級者向け: CFLAGSとCXXFLAGSの設定は、 CとC++コンパイラが生成するコードの最適化などを指定するオプションとして使われます。 例えば、Athlon XPプロセッサを使っているユーザはCFLAGSとCXXFLAGSに"-march=athlon-xp"を設定するのが一般的です。 これによって、そのCPUに適した命令セットを使って最適化されたパッケージを構築できます。 /etc/make.confには、正しくCFLAGSとCXXFLAGSを設定するための一般的な解説が書かれています。

ファイアウォールが設置されている場合はここでプロクシ情報をセットできます。 /etc/make.confを編集するには、nanoというシンプルなスクリーンエディタが使えます。

コード表示 10.1: make.confを編集する

# nano -w /etc/make.conf

注意: 上級者向け: ビルドプロセスに手を加えたいときは、/etc/make.globalsを参照してください。 このファイルは、Gentooで使われるデフォルト値を保持しており、書き換えないようにすべきです。 デフォルトで不十分な場合は、新しい値を/etc/make.confに書き込んでください。 make.confで指定された値は、make.globalsの設定を上書きします。 ここで見つけたUSE設定を無効にしたいときは、適切なUSE="-foo"(fooを無効にしたい場合)を/etc/make.confに追加してください。

警告: ステージ1が終了するまでは、'static'をUSEに加えないでください。

11.  ステージ1から始める場合

注意: ステージ1から始める人以外は、このセクションを飛ばしてください。

ステージ1圧縮ファイルを使うと徹底的にカスタマイズと最適化をすることができます。 この圧縮ファイルを選択したのは、最適化された最新のシステムを求めているからだと思います。 お楽しみください。 ステージ1からのインストールには長い時間がかかりますが、その見返りとして特定のマシンとニーズに合わせ隅々まで最適化されたシステムを手に入れることができます。

「ブートストラップ」プロセスを開始します。 AMD Athlon 1200Mhzで約2時間かかります。 このプロセスでは、残りのシステムをコンパイルするために、展開されたビルドイメージが準備されます。 GNUコンパイラ一式とGNU Cライブラリが構築されます。 これらは時間がかかる処理で、ブートストラッププロセスの大半が構成されます。 以下のようにしてブートストラップを始めてください。

コード表示 11.1: ブートストラッピング

# cd /usr/portage
# scripts/bootstrap.sh

これで「ブートストラップ」プロセスが始まります。

注意: bootstrap.sh--fetchonlyオプションが追加されました。 ダイアルアップ回線を使っている人などに便利な機能です。 ブートストラップに関係するファイルを一度にまとめてダウンロードしてから、コンパイルを始めることができます。 bootstrap.sh -hでヘルプが表示されます。

注意: デフォルトのPortageはパッケージのビルド中に一時的に/var/tmpを数百Mバイト使用する時があります。 一時ファイルの場所を変更している場合は、ブートストラッププロセスを始める前にPORTAGE_TMPDIR変数を変更してください。

コード表示 11.2: Portageの作業ディレクトリの設定

# export PORTAGE_TMPDIR="/otherdir/tmp"

bootstrap.shbinutilsgccgettextglibcを構築し、glibcが構築された後、gettextを再構築します。 言うまでもなく、このプロセスには時間がかかりますので、昼寝でもしていてください。 このプロセスが終了すると"ステージ2"から始めたシステムと同じ状態になります。次に進んでください。

12.  ステージ2から始める場合、あるいはステージ1からの続き

注意: このセクションはステージ1かステージ2から始めた人が対象ですので、ステージ3から始める人は次のセクションに進んでください。

警告: ステージ2から始める場合は、 /etc/make.conf内のCHOSTの値を変えないでください。 変えてしまうと、おかしな状態になったり、コンパイルに失敗したりします。

ステージ2の圧縮ファイルを使うと、既にブートストラップが済んだ状態から始めることができます。 残りのシステムのインストールを始めましょう。

注意: ステージ2から始めた場合は、ここでコンパイラ一式が最新の状態になるようにできます。 以下のコマンド(emerge)に-uオプションを付けてください。 これがどういう意味か判らないなら、この注釈は無視して構いません。

コード表示 12.1: 残りのシステムをインストールする

# emerge -p system
(インストールされるパッケージが一覧表示される)
# emerge system

ベースシステム全体を構築するにはまとまった時間が必要です。 そのかわりシステムは徹底的に最適化されます。 もちろん暇つぶしの方法を見いださなければなりませんが。 作者はプレイステーション2用ソフト「Star Wars - Super Bombad Racing」をおすすめします。

システムの構築は終了しました。"タイムゾーン設定'に進んでください。

13.  ステージ3から始める場合

注意: このセクションはステージ3から始める人に向けたものですので、それ以外の人は次のセクションに進んでください。GRPを使ってインストールする人も次のセクションに進んでください。

警告: /etc/make.conf内のCHOSTの値を変えないでください。 変えてしまうと、おかしな状態になったり、コンパイルに失敗したりします。

ステージ3の圧縮ファイルは完全に機能する基本的なGentoo Linuxシステムを含んでいますので、構築の手順は不要です。

注意: 上級者向け: ただし、ステージ3圧縮ファイルはあらかじめコンパイルされたものですので、もう最新ではなくなっているかも知れません。 もし気になるようなら、 自動的に現在のステージ3システムを最新バージョンのパッケージで置き換えることができます。 /etc/make.confのバックアップを作成し、 export CONFIG_PROTECT="-*" emerge -u system (この処理を行なうにはネットワーク接続が必要になります)を実行して、 最後に/etc/make.confを書き戻してください。 ステージ3圧縮ファイルが古い場合、この処理には長い時間がかかるかもしれません。 そうでなければ、一般的には短時間で最新バージョンへのアップデートやバグフィクスされたパッケージが得られます。 なお、これらの手順を踏まずに次のセクションに進んだとしても、なんの問題もありません。

14.  タイムゾーン設定

ここではタイムゾーンの設定を行ないます。

/usr/share/zoneinfoのなかからタイムゾーン(グリニッジ標準時を使用するならGMT)を選んでシンボリックリンクを作成してください。

コード表示 14.1: タイムゾーンを設定するためにシンボリックリンクを作成する

# ln -sf /usr/share/zoneinfo/path/to/timezonefile /etc/localtime

15.  /etc/fstabを書き換える

重要: このファイルを編集するときは、nano -w "filename"とすることを(-wオプションを付けることを)忘れないでください。

ここまでの作業でGentoo Linuxシステムはほぼ完成しました。 あとは重要なシステムファイルを作成し、GRUBブートローダーをインストールします。 まず、/etc/fstabファイルを編集します。 ReiserFSファイルシステムを使用する場合はnotailオプションをbootパーティションに付加するのを忘れないでください。 ext2ext3reiserfsなどのファイルシステムのタイプも指定してください。

警告: 下に示したように/etc/fstabを更新してください。 ただし、"BOOT"、"ROOT"、"SWAP"はそれぞれ実際に利用されるブロックデバイスの名前に(例えばhda1)、 "ext2"、"ext3"などは実際のファイルシステムの名前にします。

コード表示 15.1: fstabの編集


# /etc/fstab: 静的なファイルシステム設定.
#
# noatime はパフォーマンスを向上させます (atimeは通常は必要ありません)
# (訳注: atime はファイルにアクセスした時刻のこと)
# notail は ReiserFS のパフォーマンスを向上させます (ディスク効率が犠牲になります)
# noatimeを削っても安全です。また、notailとtailは自由に切り替えられます。

# <fs>           <mount point>   <type>   <opts>          <dump/pass>

# NOTE: もしBOOTパーティションがReiserFSなら、notailオプションを加えてください。

/dev/BOOT           /boot       ext2        noauto,noatime  1 2
/dev/ROOT           /           reiserfs    noatime         0 1
/dev/SWAP           none        swap        sw              0 0
/dev/cdroms/cdrom0  /mnt/cdrom  iso9660     noauto,ro,user  0 0
none                /proc       proc        defaults        0 0

警告: /bootがブート時にマウントされないことに気づいたでしょうか。 これは/bootが破壊されることを防ぐためです。 /bootにアクセスする必要があるときは、マウントしてください。

16.  カーネルとシステムロガーのインストール

カーネルの選択

カーネルのインストールには2通りのやり方があります。 自分でカーネルの設定をすることもできますし、genkernelユーティリティを使って設定とコンパイルを自動的に実行することもできます。

手動であれ、genkernelであれ、まずお好みのLinuxカーネルソースをemergeしなければなりません。 Gentooはカーネルのebuildを何種類か用意しています。 その一覧がGentoo Linuxカーネルガイド(日本語訳))で確認できます。 どのカーネルソースを選べばよいかわからなければ、gentoo-sourcesにするのがお勧めです。 XFSサポートが必要なら、xfs-sourcesgs-sourcesを選んでください。 ちなみに、GentooのLiveCDはxfs-sourcesgs-sourcesを使っています。 他に、ゲームをする人に適したgaming-sourcesがあり、"Preemptible kernel"オプションが有効になっていれば素晴らしい応答性が得られます。

カーネルを選択し、次のようにしてemergeしてください。

コード表示 16.1: カーネルソースをemergeする

# emerge -k gentoo-sources

/usr/src/linuxシンボリックリンクは 新しくインストールされたソースツリーを指しています。 Portageは/usr/src/linuxシンボリックリンクを特別な意味を持つファイルとして扱います。 カーネルモジュールをインストールするようなebuildは /usr/src/linuxシンボリックリンクで示されたカーネルソースツリーを使って設定されます。 Portageは初めてカーネルソースをインストールするとき/usr/src/linux を作成しますが、既にこのシンボリックリンクが作成されているときは何もしません。

genkernelを使ってカーネルを構築する

カーネルソースツリーがインストールされました。続いてカーネルをコンパイルします。 これには2種類の方法があります。一つは新しく用意されたgenkernelスクリプトを使って自動的にカーネルを構築する方法です。 genkernelはLiveCDのカーネルとほぼ同じようにカーネルを設定して構築します。 つまり、genkernelを使ってカーネルを構築すると、ブート時にはLiveCDと同じようにハードウェアを検出してくれます。 genkernelは全自動なので、カーネルの設定に不慣れな人などにとって、最もよい解決法となるでしょう。

では、genkernelの使いかたを説明します。まずは、genkernelをemergeします。

コード表示 16.2: genkernelをemergeする

# emerge -k genkernel

次に、genkernelと入力して、カーネルの構築を始めてください。

注意: 上級者向け: genkernel --config と入力すると、 カーネルの構築を始める前にデフォルトの設定をいじることができます。

コード表示 16.3: genkernelの実行

genkernel 1.2(1.4-20030803 x86/i686 GRPセットに入っているもの)を使っているなら、次のようにカーネルを指定してください。
# genkernel gentoo-sources
genkernel 1.4かそれより新しいバージョンを使っているなら、次のようにします。
# genkernel
Gentoo Linux genkernel, version 1.4
Copyright 2003 Gentoo Technologies, Inc., Bob Johnson, Daniel Robbins
Distributed under the GNU General Public License version 2

Settings:
compile optimization: 1 processor(s)
source tree: /usr/src/linux-2.4.20-gaming-r3
config: gentoo (customized)
config loc: /etc/kernels/config-2.4.20-gaming-r3
initrd config: (default) /etc/kernels/settings

* Running "make oldconfig"...                                                                     [ ok ]
* Logging to /var/log/genkernel.log...                                                            [ ok ]
* Starting 2.4.20-gaming-r3 build...                                                              [ ok ]
* Running "make dep"...                                                                           [ ok ]
* Running "make bzImage"...                                                                       [ ok ]
* Running "make modules"...                                                                       [ ok ]
* Running "make modules_install"...                                                               [ ok ]
* Moving bzImage to /boot/kernel-2.4.20-gaming-r3...                                              [ ok ]
* Building busybox...                                                                             [ ok ]
* Creating initrd...                                                                              [ ok ]

* Build completed successfully!

* Please specify /boot/kernel-2.4.20-gaming-r3 and /boot/initrd-2.4.20-gaming-r3
* when customizing your boot loader configuration files.

genkernelが終了すると、カーネル、モジュール一式、initial root disk (initrd)ができあがります。カーネルとinitrdは後でブートローダに登録します。 そのとき必要となるので、ここでカーネルとinitrdのファイル名を控えておいてください。 initrdは"実際"のシステムが起動する前の、ブート開始直後ににハードウェアを検出するために使われます(LiveCDと同じです)。

では、さらにLiveCDの動作に近づけるために、更に手順を進めましょう。hotplugのemergeです。 initrdはブートするために必要なハードウェアを検出するものですが、hotplugはその他あらゆるものを検出します。 hotplugをemergeするには、次のように入力してください。

コード表示 16.4: hotplugをemergeし有効にする

# emerge -k hotplug
# rc-update add hotplug default

genkernelを使った人は、次の"手動でのカーネル設定"は飛ばしてください。

手動でのカーネル設定

genkernelによるカーネルの構築を選ばなかった方には、 このセクションでカーネルを手動で設定して構築するための手順を解説します。 /usr/src/linuxがemergeされたカーネルソースへのシンボリックリンクになってることに注意してください。 これはPortageによって自動的に作成されます。 もし複数のカーネルソースをemergeしているなら、適切なカーネルソースへのリンクになっているかどうかを確認する必要があります。

警告: 自分でカーネルを設定して使う場合は、grsecurityオプションに注意してください。 セキュリティの設定をきつくしすぎると、いくつかのプログラム(たとえばX Windowなど)が正常に動作しなくなる恐れがあります。 必要かどうかわからない場合は、無効にしておきましょう。

注意: カーネルの設定をLiveCDと同じにしたい、あるいはLiveCDの設定を元にしたい場合は、次のようにしてください: cd /usr/src/linux && cat /proc/config > .config && make oldconfig 。 なお、xfs-sources以外のカーネルを使っている場合は、 選んだカーネルとxfs-sourcesとで異なる部分に関して、いくつか質問に答える必要があるかもしれません。

コード表示 16.5: Linuxカーネルの設定

# cd /usr/src/linux
# make menuconfig

警告: カーネルを正常に機能させるために必要なオプションが正しくカーネルに組み込まれているかどうかを確認してください。 つまり、これらは有効でかつモジュールではない状態でコンパイルされねばなりません。 ReiserFSファイルシステムを使用している場合は ReiserFSオプションを有効にします。"Ext3"も同様です。 XFSファイルシステムを使用している場合は"SGI XFS filesystem support"オプションを有効にします。 どのような場合でも"Ext2"オプションを有効にしておくと良いでしょう。

以下に必要となるであろう、一般的なオプションの一覧を示します。

コード表示 16.6: 重要なカーネルオプション

Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers"
(下に示したオプションのうち、いくつかはこれを有効にしないと現れない)
...

File systems --->
<*> Reiserfs support
(ReiserFSを使うときに必要)
... 
<*> Ext3 journalling file system support
(ext3を使うときに必要)
...
[*] Virtual memory file system support (former shm fs)
(Gentoo Linuxでは必須)
...
<*> JFS filesystem support
(JFSを使うときに必要)
...
[*] /proc file system support
(Gentoo Linuxでは必須)
[*] /dev file system support (EXPERIMENTAL)
[*]   Automatically mount at boot          
(Gentoo Linuxでは必須)
[ ] /dev/pts file system for Unix98 PTYs
(カーネル2.6を使っているのでなければ不要なのでチェックを外す)
...
<*> Second extended fs support
(ext2を使うときに必要)
...
<*> XFS filesystem support
(XFSを使うときに必要)

インターネット接続にPPPoEを使っているなら、以下のオプションを選択してください(ビルトインか、できればモジュール)。 "PPP (point-to-point protocol) support"、 "PPP support for async serial ports"、"PPP support for sync tty ports"。 これらの2つの圧縮に関するオプションは組込まれても害はありませんが不要です。 "PPP over Ethernet"オプションも、rp-pppoeがカーネルモードPPPoEをで動作するときに利用されるだけです。

もし、IDE CD-Rを使うならば、SCSIエミュレーションを利用できるようにしてください。 "ATA/IDE/MFM/RLL support" ---> "IDE, ATA and ATAPI Block devices" ---> "SCSI emulation support"をチェックしてください(筆者はいつもモジュールとしてインストールします)。 そして"SCSI support"の"SCSI support"、"SCSI CD-ROM support"と"SCSI generic support"をチェックしてください(これも筆者はいつもモジュールとしてインストールします)。 モジュールとしてインストールしたならば、echo -e "ide-scsi\nsg\nsr_mod" >> /etc/modules.autoload.d/kernel-2.4として、ブート時に読み込まれるようにしてください。

忘れずに、必要なイーサネットカードのサポートをカーネルに組込んでください。

注意: 2.2カーネルベースのGentoo Linuxをインストールすることもできます。 安定性と引き換えに 2.4カーネルの素晴らしい特徴(XFSファイルシステムとtmpfsファイルシステムやiptablesなど)が使えなくなります。 ただし、 ReiserFSファイルシステムやdevfsはパッチを当てることで使えるようにできます。 Gentoo LinuxのブートスクリプトはtmpfsかRAMディスクのどちらかを必要としますので、2.2カーネルを使用する際にはRAMディスクサポートを組み込んでください(モジュールではなく)。 必ず/boot/grub/grub.confファイルにgentoo=notmpfsと記述して、RAMディスクをtmpfsのかわりにブートスクリプトにマウントしてください。 devfsを使わないならばgentoo=notmpfs,nodevfsと記述してください。

コード表示 16.7: カーネルのコンパイルとインストール

# make dep && make clean bzImage modules modules_install
# cp /usr/src/linux/arch/i386/boot/bzImage /boot

各種ハードウェア用ebuildの追加インストール

最後に、あなたのシステム上のハードウェアに必要なパッケージをemergeしてください。 カーネルに関係するebuildを一覧にして示します。

Ebuild 用途 コマンド
nvidia-kernel XFree86用NVIDIAグラフィック高速化モジュール emerge -k nvidia-kernel
nforce-net NVIDIA nForce(2)マザーボード上のオンボード・イーサネットコントローラ用 emerge nforce-net
nforce-audio NVIDIA nForce(2)マザーボード上のオンボード・オーディオ用 emerge nforce-audio
e100 Intel e100 Fast Ethernet Adapter用 emerge e100
e1000 Intel e1000 Gigabit Ethernet Adapter用 emerge e1000
emu10k1 Creative Sound Blaster Live!/Audigyのサポート emerge emu10k1
ati-drivers XFree86用ATI RADEON 8500+/FireGLグラフィック高速化モジュール emerge ati-drivers
xfree-drm XFree86用にATI RADEON 9200以降、RAGE128、 Matrox、Voodooなどのカードを高速化するモジュール VIDEO_CARDS="yourcard" emerge xfree-drm

nvidia-kernelati-driversxfree-drmパッケージは有効にするために更に設定が必要です。 他のebuildはhotplugによってブート時に自動検出されます。 hotplugを使っていない場合は、忘れずに適切なモジュールを/etc/modules.autoload.d/kernel-2.4に 書き加えてください。

xfree-drmに関する情報はDirect Rendering Guideにあります。

システムロガーのインストール

これでカスタマイズされたカーネル(とモジュール)がインストールされました。 続いて、インストールしたいシステムロガーを選んでください。 伝統的なシステムロギングデーモンのsysklogdが利用できます。 またmsyslog、syslog-ng、metalogも選択できます。 どれにするか迷っているなら、自由度が高く機能も豊富な syslog-ng を選ぶとよいでしょう。 次の4つのロガーからひとつを選んだら、次のようにしてemergeしてください。

コード表示 16.8: システムロガーを選択しemergeする

# emerge -k sysklogd
# rc-update add sysklogd default
または
# emerge -k syslog-ng
# rc-update add syslog-ng default
または
# emerge -k metalog
# rc-update add metalog default
または
# emerge -k msyslog
# rc-update add msyslog default

重要: metalogを使う時は、バッファリングに関して書かれたChapter 6, Section 3 of the Gentoo Linux FAQを読んでください。

次にdcron、fcron、vixie-cronの中から好みのcronを選んでください。 どれを選べば分からない時はvixie-cronをお勧めします。 次のようにインストールしてください。

注意: コンパイル済みのパッケージ(GRP)を使ってインストールしている場合、 vixie-cronを指定してエラーになったら代わりにvcronを使ってください。

コード表示 16.9: cronデーモンを選択する

# emerge -k dcron
# rc-update add dcron default
# crontab /etc/crontab
または
# emerge -k fcron
# rc-update add fcron default
# crontab /etc/crontab
または
# emerge -k vixie-cron
# rc-update add vixie-cron default
vixie-cronを使う場合は、crontab /etc/crontabする必要はありません。

起動時に実行されるプログラムやデーモンに関しては、Gentoo Linux Init System Guide(日本語訳)を参照してください。

17.  必要なパッケージのインストール

もしネット接続にrp-pppoeが必要なら、まだインストールされていませんので、ここでインストールしてください。

コード表示 17.1: rp-pppoeのインストール

# USE="-X" emerge rp-pppoe
(GRPを使うユーザは以下のように入力してください:)
# emerge -K rp-pppoe

注意: USE="-X"はpppoeのXインタフェースがインストールされるのを防ぎます。 これによって、XやXが依存するパッケージまでもがemergeされてしまうことを避けることができます。 Xサポートが必要なら、後でrp-pppoeをemergeしなおすことができます。 GRPで提供されるrp-pppoeはXインタフェースが利用できるように作られています。 GRPを使わないなら前者のようにしてコンパイルしてください。

注意: rp-pppoeはインストールされましたが、まだ設定されていません。 はじめにGentooシステムをブートしたとき、もう一度 adsl-setup を実行してください。

もしXFSやReiserFS、LVMといったオプション機能を使うのなら、 Portageツリーの他の追加パッケージも必要となります。 もしXFSを使うのなら、xfsprogsをemergeしてください。

コード表示 17.2: ファイルシステムツールのemerge

# emerge -k xfsprogs
ReiserFSを使うときはReiserFS toolsをemergeしてください
# emerge -k reiserfsprogs
JFSを使うときはJFS toolsをemergeしてください
# emerge -k jfsutils
LVMを使うときは、lvm-userパッケージをemergeしてください
# emerge -k lvm-user

もしラップトップを使っていて、rebootしたあともPCMCIAスロットを使いたいのなら、pcmcia-csパッケージをインストールしてください。

コード表示 17.3: PCMCIA-csのemerge

# emerge -k pcmcia-cs

18.  ユーザ管理

rootパスワードの設定

忘れないうちに、rootのパスワードを設定しましょう。

コード表示 18.1: rootパスワード設定

# passwd

日常的に使うユーザの登録

Unix/Linuxシステム上で、rootとして作業をするのは危険なので、なるべく避けるべきです。 そのため、日常的に使うユーザを追加することを強く推奨します。

コード表示 18.2: ユーザの追加

# useradd your_user -m -G users,wheel,audio -s /bin/bash
# passwd your_user

your_userを実際のユーザ名に置き換えてください。

rootだけが実行できるような処理を行なう場合にも、su -を使ってroot権限を得るか、 あるいはsudoパッケージを試してみてください。

19.  ホスト名を設定する

/etc/hostnameを編集して、ホスト名だけを1行目に書き込んでください。

コード表示 19.1: ホスト名の設定

# echo mymachine > /etc/hostname

次に/etc/dnsdomainnameを編集して、DNSドメイン名を書き込んでください。

コード表示 19.2: ドメイン名の設定

# echo mydomain.com > /etc/dnsdomainname

NISドメインを使っているなら、/etc/nisdomainnameを編集してください。

コード表示 19.3: NISドメイン名の設定

# echo nis.mydomain.com > /etc/nisdomainname

defaultランレベルにdomainnameスクリプトを追加します。

コード表示 19.4: defaultランレベルにdomainnameを追加する

# rc-update add domainname default

20.  /etc/hostsを書き換える

このファイルにホストネームとIPアドレスを書き込んでください。 ネームサーバに無いホストネームとIPアドレスの解決に使用されます。 以下にこのファイルのテンプレートを示します。

コード表示 20.1: Hosts テンプレート

127.0.0.1      localhost
# 次の行にはローカルLANのIPとマシン名を記述します
192.168.1.1    mymachine.mydomain.com	mymachine

注意: DHCPサーバを使ったネットワークにいるなら、あなたのマシンの名前をlocalhostの後に記述するとよいでしょう。 GNOMEやその他の多くのプログラムが名前解決するときの助けとなります。

21.  ネットワークの設定

カーネルモジュールの読み込み

/etc/modules.autoload.d/kernel-2.4ファイルにシステムに必要なモジュールを書き込んでください(その他のオプションがあれば、ここに書き込んでください)。 Gentoo Linuxがブートする時、これらのモジュールが自動的に読み込まれます。 特に重要なものがモジュールとしてコンパイルした場合のイーサネットカードモジュールです。

コード表示 21.1: /etc/modules.autoload.d/kernel-2.4

ここでは3comのカードを使っていると仮定しています。
/lib/modules/<カーネルバージョン>/kernel/drivers/net を見て、自分のカードに合ったモジュールを探してください。
3c59x

ネットワークインタフェースの設定

ブート時にネットワークの設定を読み込ませるために/etc/conf.d/netスクリプトを編集してください。

コード表示 21.2: ブート時のネットワーク設定

# nano -w /etc/conf.d/net

eth0に自動的にIPアドレスを割当てさせるには、iface_eth0dhcpを指定します。 そうでなければ、IPアドレス、ブロードキャストアドレス、ネットマスクを指定してください。 インタフェースが複数ある場合は、iface_eth1iface_eth2などにそれぞれ設定してください。

PCMCIAネットワークカード以外なら、net.eth0初期化スクリプトをdefaultランレベルに登録します。

コード表示 21.3: ブート時に自動的にネットワークインタフェースを開始させる

# rc-update add net.eth0 default

もし、複数のネットワークカードもしくはトークンリングインタフェースを使用しているなら、 それぞれにnet.ethxもしくはnet.trxx=1,2,…)という名前のスクリプトファイルを作成してください。

コード表示 21.4: 複数のネットワークインタフェース

# cd /etc/init.d
# ln -s net.eth0 net.ethx

それぞれの初期化スクリプトを作成したら、それがPCMCIAネットワークカード以外のときだけdefaultランレベルに登録してください。

コード表示 21.5: Adding net.ethx to the default runlevel

# rc-update add net.ethx default

PCMCIAユーザ用の設定

PCMCIAカードをインストールしている場合は、/etc/conf.d/pcmciaの中を見て問題ないか確認し、 次のように入力してください。

コード表示 21.6: Have PCMCIA services start automatically

# rc-update add pcmcia boot

ネットワーク設定が読み込まれる際、自動的にPCMCIAドライバが読み込まれます。 適切な/etc/init.d/net.eth*のサービスがpcmciaサービスによって自動的に開始されます。

22.  最終ステップ: 基本設定を行う(キーマップの設定など)

コード表示 22.1: 基本設定

# nano -w /etc/rc.conf

基本設定を行うには、ファイル内の指示に従ってください。 CLOCKが望みどおりに設定されているか確認しましょう。 またKEYMAP変数が合っているか見てください。 設定できるキーマップを見つけるには/usr/share/keymapsの中を探してください。

23.  ブートローダを組み込む

注意事項

ブートローダも、Gentooらしく複数の中から利用するものを選択することができます。 今のところバーチャルパッケージシステムを使うことによって、GRUBとLILOのどちらかを選べます。

気をつけて欲しいのは、両方をインストールする必要などないということです。 むしろトラブルの原因となりますので、どちらか一方を選択するようにしてください。

さらに、カーネルの構築にgenkernelを使ったか手動で行なったかによって、 ブートローダの設定が変ってきます。重要な違いはメモしておいてください。

GRUBを設定する

GRUBを理解するのにもっとも重要なことは、GRUBがどうやってハードディスクとパーティションを参照するかということです。 /dev/hda1パーティションはGRUBでは(hd0,0)と呼ばれます。 hd0,0をカッコでくくる点に注意してください。 ハードディスクはaからではなく0から数えます。パーティションは1からではなく0から数えます。 注意しなければならないのは、数えられるのはハードディスクだけ、という点です。 CD-ROMプレイヤーやライターといったATAPI-IDEデバイスは数えられません。 これはSCSIでも同じです(通常、SCSIはIDEより大きな番号が割り当てられます。 ただし、BIOSでSCSIからブートするようになっている場合を除きます)。 たとえば、ハードディスクが /dev/hda、CD-ROMドライブが /dev/hdb、CD-Rが /dev/hdc、二つ目のハードディスクが /dev/hddだとすると、/dev/hdd7は変換されて(hd1,6)となります。 これはトリッキーに見えますし、実際にトリッキーなのですが、grubはtabキーによる補完の機能をもっているので、ハードディスクやパーティションがたくさんあってもgrubの番号付けで混乱することは少ないでしょう。 感じが掴めたら、GRUBをインストールしましょう。

GRUBをインストールするもっとも簡単な方法は、chrootからgrubとタイプすることです。

コード表示 23.1: GRUBのインストール

# emerge -k grub
# grub

grub>というgrubのコマンドラインプロンプトが表示されているでしょうか。 ここではハードディスクにGRUBブートローダをインストールするために正しくコマンドを入力してください。 設定例では、GRUBブートローダをハードディスクのMBR(マスターブートレコード)にインストールするので、コンピュータを起動したとき最初に目にするものが GRUBプロンプトになります。 この場合は、次のように入力します。

コード表示 23.2: GRUBをMBRにセットアップする

grub> root (hd0,0) (ブートパーティション)
grub> setup (hd0) (ブートレコードがインストールされている場所。この例ではMBR。)

コード表示 23.3: MBR以外にセットアップする

MBRではないところにブートローダをインストールする場合
grub> root (hd0,0) (ブートパーティション)
grub> setup (hd0,4) (ブートレコードがインストールされている場所。この例では/dev/hda5。)
grub> quit

このふたつのコマンドの意味を説明します。 root ( )はGURBにブートパーティション(上の例で言えばGURBの(hd0,0)つまり/dev/hda1)の位置を教えます。 setup ( )はGRUBにroot ( )で指定したブートパーティションを探すためのブートレコードをどこにインストールするのかを教えます。 上の例では、ブートレコードをハードディスクのMBRにインストールするので、単純に/dev/hda(GRUBでは(hd0)です)と指定します。 もしほかのブートローダを使用していて、GRUBをセカンダリ・ブートローダとしたいのであれば、GRUB を特定のパーティションにインストールすることができます。 その場合はディスク全体ではなく、特定のパーティションを指定します。 GRUBのインストールに成功したら、quitとタイプしてGRUBを終了してください。

注意: GRUBのTAB補完はGRUB内で使えます。 root (と書いてからTABを押すと利用可能なデバイスの一覧(ハードディスクだけではありません)が表示されます。 root (hdを入力してからTABを押すと利用可能なハードディスクを一覧表示します。 root (hd0,と書いてからTABを押すと最初のハードディスクのパーティションが一覧表示されます。 補完機能を使いながら、構文のチェックをすると正しい選択をしているか確認するのに役立ちます。

これで Gentoo Linuxがインストールされました。 しかし、システムをリブートしたとき、感じのいいGRUBブートメニューを表示させるには、/boot/grub/grub.confを作成しなければなりません。 方法は以下のとおりです。

重要: GRUBの下位互換性を保つため、grub.conf から menu.lstへ忘れずにリンクを作成してください。 これは、ln -s /boot/grub/grub.conf /boot/grub/menu.lst として実行します。

grub.confファイルを作成し(nano -w /boot/grub/grub.conf としてください)、以下の内容を書き込みます。

コード表示 23.4: grub.confの例

default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

#手動でコンパイルした場合はこのようになります
title=My example Gentoo Linux
root (hd0,0) 
kernel (hd0,0)/boot/bzImage root=/dev/hda3 

#genkernelを使った場合の例はこちら
title=My example Gentoo Linux (genkernel)
root (hd0,0)
kernel (hd0,0)/boot/kernel-KV root=/dev/hda3
initrd (hd0,0)/boot/initrd-KV

# デュアルブートする場合の例
title=Windows XP
root (hd0,5) 
chainloader (hd0,5)+1

警告: KVはインストールしているカーネルのバージョンで置き換えてください。

注意: (hd0,0) は括弧内に空白を入れずに記述しなければなりません。

重要: IDE CD-R用にSCSIエミュレーションを設定しているなら、 grub.confのカーネル行の引数にhdx=ide-scsiを追加してください(hdxはCD-Rの位置に合わせてください)。

このファイルを保存すれば、Gentoo Linuxのインストールは完了します。 第一オプションを選択しておけば、何もしなくてもGRUBはGentoo Linuxをブートします。 grub.confファイルの2番目の部分はGRUBでWindowsをブートする方法を示したものです。

注意: 上で述べた(hd0,0)は"boot"パーティション(例では/dev/hda1)を指しています。 /dev/hda3はrootパーティションを指しています。 (hd0,5)にはNTブートローダーが存在しています。

注意: カーネルイメージへのパスはbootパーティションに応じて変わります。 もしブートパーティション(hd0,0)とルートパーティション(hd0,1)を持っているなら、 上記のgrub.confのすべてのパスは/bzImageになります。

カーネルに引数を与える必要があるならば、kernelコマンドの後に追加してください。 上の例ではすでにひとつの引数(root=/dev/hda3)を与えていますが、さらに引数を与えることができます。 kernelコマンドにgentoo=nodevfsを追加することにより、デフォルトでdevfsをオフにすることができます(意味が分からない場合は行なわないでください)。

注意: 初期のGentoo Linuxには当てはまりませんが、devfsを有効にするためにkernelコマンドにdevfs=mountを追加する必要はありません。 devfsはデフォルトで有効になっています。

LILOを設定する

GRUBは多くの人にとって新しい選択肢ですし、いつも安定しているというわけではありません。 LILO(LInuxLOader)はその点ではLinuxブートローダとしての実績があります。 安定性や設定が複雑すぎないことを求めるなら、LILOを試してみてください。

まず、LILOをemergeしてください。

コード表示 23.5: LILOをemergeする

# emerge -k lilo

ではLILOの設定をしましょう。簡単な例を紹介し、その中身の説明をします。

コード表示 23.6: lilo.confの例

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
lba32
default=linux

#手動でカーネルを構築した場合はこちら
image=/boot/bzImage
  label=linux
  read-only
  root=/dev/hda3

#genkernelを使った場合はこちら
image=/boot/kernel-KV
  label=gk_linux
  root=/dev/hda3
  initrd=/boot/initrd-KV
  append="root=/dev/hda3 init=/linuxrc"


#windowsなど他のOSとデュアルブートする場合
other=/dev/hda1
  label=dos

警告: KVをインストールしているカーネルのバージョンで置き換え、 default=が適切なlabelを差していることを確認してください (genkernelを使っているならgk_linuxの方です)。

lilo.confを編集したら、LILOを実行してMBRに情報を書き込んでください。

コード表示 23.7: LILOの実行

# /sbin/lilo

LILOが設定されました。これでGentoo Linuxを起動する準備ができました!

フレームバッファを使う

カーネルにフレームバッファを組み込んでいるなら、 vga=xxxをブートローダの設定ファイルに書き加えるとよいでしょう。 xxxは次の表から選んでください。

640x480 800x600 1024x768 1280x1024
8 bpp 769 771 773 775
16 bpp 785 788 791 794
32 bpp 786 789 792 795

LILOユーザは設定ファイルの先頭にvga=xxxを追加してください。

GRUBユーザはkernel (hd0,0)...と書かれた行にvga=xxxを追加してください。

24.  ブートディスクを作成する

GRUBブートディスク

重要: 先に進む前に、フロッピーをフロッピードライブに入れるのを忘れないでください。

どんなLinuxディストリビューションでも、最初にインストールするときにブートディスクも作っておくとよいでしょう。 お守りのようなものですが、一般的に作っておいて損はありません。 利用しているハードウェアがchroot状態でブートローダをインストールすることを許さない場合は、必ずGRUBブートディスクを作成してください。 そのような環境の方は、ブートディスクを作り、最初に再起動したときにGRUBをMBRにインストールします。 ブートディスクは次のようにして作成します。

コード表示 24.1: GRUBブートディスクの作成

# cd /usr/share/grub/i386-pc/
# cat stage1 stage2 > /dev/fd0

ここでリブートしてフロッピーで起動してください。 フロッピーのgrub>プロンプトが表示されたら、必要に応じてrootsetupコマンドを実行できます。

LILOブートディスク

重要: 先に進む前に、フロッピーをフロッピードライブに入れるのを忘れないでください。

LILOを使う場合でも、ブートディスクを作っておくと良いでしょう。

コード表示 24.2: ブートディスクの作成

(カーネルサイズは1.4MB以下でなければならない)
# dd if=/boot/your_kernel of=/dev/fd0 

25.  GRPを使う

GRPユーザはここでバイナリパッケージをインストールできます

コード表示 25.1: GRPからインストールする

# emerge -k xfree 

CD 1はXFree86が動くために必要なものを含んでいます。 さらに2枚組CDセットのCD 2にはKDE、GNOME、Mozillaといったものが含まれています。 これらをインストールするには、まずGentooシステムを再起動する必要があります(このドキュメントの最後の方の"システムの再起動"参照)。 初期状態のGentooシステムがハードディスクから起動して動くようになったら、CD2をマウントして次のようにコピーをしてください。

コード表示 25.2: CD2からバイナリパッケージを読みこむ

# mount /dev/cdrom /mnt/cdrom
# cp -a /mnt/cdrom/packages/* /usr/portage/packages/

さまざまなアプリケーションが同じやりかたでインストールできます。たとえば、kdeなら次のようになります。

コード表示 25.3: GRPからKDEをインストールする

# emerge -k kde

26.  インストール完了!

これでGentoo Linuxがインストールされました。 あとは必要な設定ファイルを更新し、chrootされたshellを終了して、パーティションを切り離したあと再起動しましょう。

警告: etc-updateは新しいバージョンの設定ファイルなどを一覧表示し、どのようにするか決めて片付けることができます。 重大な影響を持つような更新がないことを確認する(例えば /etc/fstab/etc/make.conf/etc/rc.conf、など)、 大きな影響のないファイルをマージする、更新を破棄する、手動で差分の確認とマージをして更新する、などが可能です。

コード表示 26.1: システムの再起動

# etc-update
# exit 
(chrootされたshellを終了する。^Dとタイプしても良い。)
# cd / 
# umount /mnt/gentoo/boot
# umount /mnt/gentoo/proc
# umount /mnt/gentoo
# reboot
忘れずにブートCDを取りのぞいてください。

注意: 再起動したあとにupdate-modulesコマンドを実行して/etc/modules.confファイルを作成するのも良いでしょう。 一般的には、このファイルを直接修正する代わりに/etc/modules.dの中のファイルに変更を加えるべきです。

何か疑問があったり、Gentoo Linuxの開発に携わりたい人は、gentoo-userメーリングリストやgentoo-devメーリングリストへの参加も考えてみてください (詳しい情報はメーリングリストのページにあります)。 また、Desktop Configuration Guide(日本語訳)は Gentoo Linuxシステムを設定するときに役に立ちますし、Portage User Guide(日本語訳))はPortageの基礎知識を得るのに役立ちます。 その他のドキュメントはGentoo Linux User Documentation Resourcesを参照してください。 インストールやその他の問題で質問したいことがあるなら、Gentoo Linux FAQ(日本語訳))も見てください。 Gentoo Linuxへようこそ!お楽しみ下さい!

27.  特殊なハードウェア

ハードウェアATA RAID

ハードウェアATA RAIDのシステムにGentooをインストールしようとする方は、以下の項目をよく確認してインストールを成功させてください。

コード表示 27.1: RAIDモジュールのロード

# modprobe ataraid
(PromiseのRAIDコントローラの場合:)
# modprobe pdcraid 
(HighpointのRAIDコントローラの場合:)
# modprobe hptraid

コード表示 27.2: /devを/mnt/gentoo/devにマウントする

# mount -o bind /dev /mnt/gentoo/dev

コード表示 27.3: RAIDを使うためのLinux Kernel設定

HighpointのRAIDコントローラの場合:
ATA/IDE/MFM/RLL support  --->
[*] HPT36X/37X chipset support 
[*] Support for IDE Raid controllers
[*] Highpoint 370 software RAID
PromiseのRAIDコントローラの場合:
ATA/IDE/MFM/RLL support  --->
[*] PROMISE PDC202{46|62|65|67} support 
必要に応じて
[*] PROMISE PDC202{68|69|70|71|75|76|77} support
[*] Support for IDE Raid controllers
[*] Support Promise software RAID (Fasttrak(tm))

コード表示 27.4: GRUBをハードウェアRAIDシステムにインストールする

grub> root (hd0,0)
grub> setup --stage2=/boot/grub/stage2 (hd0)
grub> quit

GRUBの設定時には、rootが適切なRAIDデバイスを指していることを確認すること。

コード表示 27.5: RAID用のgrub.conf

title=My Gentoo Linux on RAID
root (hd0,0)
kernel (hd0,0)/boot/bzImage root=/dev/ataraid/dXpY

コード表示 27.6: RAID用のlilo.con

image=/boot/bzImage
label=linux
read-only
root=/dev/ataraid/dXpY

ハードウェアRAIDシステムにGentoo Linuxをインストールするとき何か問題が発生したら、 http://bugs.gentoo.orgに報告してください。

Gentoo Linuxをご利用いただき、ありがとうございます。 どうぞお楽しみください。