Disclaimer :
This document is not valid and is not maintained anymore.
|
Gentoo Linux 1.4 インストール手引書
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を含むファイル名になります。
Note:
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の組合せを選択すると良いでしょう。
Note:
上級者向け:ステージ3を使ってインストールする場合は、
/etc/make.confのCHOST設定を変えてはいけません。
変更する必要があるならば、ステージ1圧縮ファイルを使って、
希望するCHOST設定のシステムを構築してください。
標準的なCHOSTは次のように設定されています: i686-pc-linux-gnu
|
Important:
インストールの途中で見つけたバグをレポートする時は、
原則としてhttp://bugs.gentoo.orgを使ってください。
バグがそのソフトウェアそのものに起因するような場合、
Gentoo Linuxの開発チームがそれを判断してソフトウェアの開発チーム
(例えばKDE開発チームなど)に報告します。
|
Note:
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"を使う場合)
|
Note:
ハードウェアATA RAIDのユーザは、次に進む前にこの文書の最後にあるセクションを読んでください。
|
2.
ブート
Warning: 先に進む前に、このセクション全体、特にブートオプションの部分をよく読んでください。
無視して先に進むと、キーボードの設定が間違っていたり、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を押すと、ちょっとしゃれたブートスクリーンとプログレスバーが表示されます。
Warning:
ブートスクリーンが表示されず、画面が真っ暗なままになってしまったときは、
nofbカーネルを試してみてください。
おそらくLiveCDのカーネルではあなたのグラフィックアダプタでフレームバッファが利用できないのが原因でしょう。
|
ブートプロセスが完了すると、自動的に"スーパーユーザ"である"root"として"Live" Gentoo Linuxにログインします。
コンソールにはrootのプロンプト ("#") が表示されるはずです。
ここでALT-F2、ALT-F3、ALT-F4を押すと別のコンソールに切り替えることができます。
最初のコンソールに戻るにはALT-F1を押します。
Note:
上級者向け:LiveCDがブートすると、LiveCD上のrootのパスワードは
ランダムな文字列に設定されます。
sshdを動かしてLiveCDにリモートからログインすることを考えているなら、
ここでpasswdコマンドを使ってrootのパスワードを変更してください。
そうしないと、ネットワーク経由でログインするための正しいパスワードを知ることができません。
|
既にお気づきかと思いますが、#プロンプトの上には、ネットワークの設定方法やGentoo Linuxの各ステージ圧縮ファイル、
パッケージのありかなどの説明が書かれたヘルプテキストが表示されています。
3.
補足的なハードウェア設定
LiveCDは、起動すると全てのハードウェアを検出し、適切なカーネルモジュールを読み込もうとします。
大抵の場合、これはうまく動作します。
しかし、時には必要なモジュールが読み込まれないことがあります。
ハードウェアの自動検知がうまくいかなかったら、適切なカーネルモジュールを手動でロードしなければなりません。
利用可能なネットワークカードモジュールの一覧を見るには、
ls /lib/modules/`uname -r`/kernel/drivers/net/*とタイプしてください。
モジュールをロードするには、次のようにタイプします。
Code Listing 3.1: PCIモジュール設定 |
# modprobe pcnet32
|
同じように、PCI自動検知で検出されなかったSCSIデバイスにアクセスできるようにするには、
もういちどmodprobeを利用して/lib/modulesから適切なモジュールをロードします。
Code Listing 3.2: SCSIモジュールの読み込み |
# modprobe aic7xxx
# modprobe sd_mod
|
Note: SCSI CD-ROMとハードディスクのサポートはカーネルに組み込まれています。 |
Note: 上級者向け:Gentoo LiveCDはディスクドライブのDMAを有効にするのでディスクの転送レートは最も速い状態になりますが、
もしこれが有効にならなかったときはhdparmを使ってドライブにDMAを設定できます。
|
Code Listing 3.3: DMA設定 |
# hdparm -d 1 /dev/hdX
# hdparm -d1 -A1 -m16 -u1 -a64 /dev/hdX
# hdparm -X66 /dev/hdX
|
4.
補足的なネットワーク設定
もう動いているかも?
あなたのシステムがイーサネットによってネットワークに接続されているならば、
既にネットワークの設定が自動的に行なわれていることでしょう。
その場合は、LiveCDに含まれる多くのネットワーク関連のコマンド、
sshやscp、ping、irssi、wget、linksなどを利用できます。
ネットワーク接続できるようになっているなら、/sbin/ifconfigコマンドでloと一緒にeth0などのネットワークインタフェースが表示されるはずです。
Code Listing 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による名前の解決がうまく機能していることなどを確かめることができます。
Code Listing 4.2: ネットワークの確認 |
# ping -c 3 www.yahoo.com
|
ネットワークが使えるようになっていますか? それならば、残りは飛ばして次のセクションに進んでください。
PPPoE設定
インターネットへ接続するためにPPPoEが必要な場合、
どのバージョンのLiveCDにも含まれているrp-pppoeを使うのが簡単です。
adsl-setupスクリプトを使って接続の設定をしてください。
adslモデムに接続しているイーサネットデバイスとユーザ名、パスワード、
DNSサーバのIPアドレス、ファイアウォールが必要かどうか、を入力してください。
Code Listing 4.3: PPPoE設定 |
# adsl-setup
# adsl-start
|
うまくいかないようなら、ユーザ名とパスワードを間違いなく入力しているかどうか、
/etc/ppp/pap-secretsや/etc/ppp/chap-secretsを見てよく確認してください。
また正しいイーサネットデバイスを指定しているかどうかも確認してください。
ネットワークの自動設定
自動的にネットワークが設定されなかった場合、いちばん簡単な設定方法は、net-setupスクリプトを実行することです。
Code Listing 4.4: net-setupスクリプト |
# net-setup eth0
|
もちろん、お好みであれば手動で設定することもできます。その方法は次で説明します。
手動でDHCPを使う
DHCPの設定は簡単です。ご利用のISPがDHCPをサポートしていない場合は、固定IPの設定まで進んでください。
Code Listing 4.5: DHCPを使ったネットワーク設定 |
# dhcpcd eth0
|
Note:
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をデフォルトゲートウェイに置き換えてください。
Code Listing 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作成の参考になるようにテンプレートを示します。
Code Listing 4.7: /etc/resolv.conf テンプレート |
domain mydomain.com
nameserver 10.0.0.1
nameserver 10.0.0.2
|
10.0.0.1 と 10.0.0.2 をそれぞれプライマリDNSサーバとセカンダリDNSサーバのアドレスに書き換えてください。
プロクシ設定
プロクシを利用している場合は先に進む前にプロクシを利用する設定をしなければなりません。
次のように環境変数を設定してください。
Code Listing 4.8: プロキシ設定 |
# export http_proxy="http://machine.company.com:1234"
# export ftp_proxy="ftp://machine.company.com"
# export RSYNC_PROXY="rsync://machine.company.com"
|
Note:
プロクシを利用するために認証しなければならない場合は、
http://username:password@machine.company.com のようにしてください。
("username:password@"が追加されています)
|
ネットワークの用意ができました!
これで、ネットワークの設定が終わって利用可能になったと思います。
ssh、scp、lynx、irssi、wgetコマンドを使って、LAN上のマシンやインターネットに接続することが可能です。
5.
システムの日付と時刻を合わせる
ここで、システムの日付と時刻を合わせてください。
dateコマンドを使います。
Code Listing 5.1: システム日付の調整 |
# date
Thu Feb 27 09:04:42 CST 2003
# date 022709042003
|
6.
ファイルシステム、パーティション、そしてブロックデバイス
ブロックデバイスとは
このセクションでは、Gentoo LinuxまたはLinux全般における、Linuxファイルシステム、
パーティション、ブロックデバイスなど、ディスクに関する事項を説明します。
ディスクに関する知識を得たところで、その後、
Gentoo Linuxのインストールをするためにパーティションおよびファイルシステムの作成手順を解説します。
まず初めに、"ブロックデバイス"を紹介します。
最も馴染みのあるブロックデバイスはおそらく1番目のIDEドライブとしてLinuxに認識されているものでしょう。
Code Listing 6.1: /dev/hdaはプライマリマスタIDEドライブを表すブロックデバイス |
/dev/hda
|
もしSCSIドライブを使っているなら、1番目のハードディスクは次のようになるかも知れません。
Code Listing 6.2: /dev/sdaは1番目の論理SCSIドライブを表すブロックデバイス |
/dev/sda
|
上で見たようなブロックデバイスはディスクに対する抽象的なインタフェースを表します。
ユーザプログラムは、それがIDEなのかSCSIなのかといったことを気にすることなく、これらのデバイスを使うことができます。
プログラムは、多数の連続した、ランダムアクセス可能な512バイトブロックに単純にアドレッシングできます。
パーティションとfdiskコマンド
Linuxでは、mkfs (または mke2fs、mkreiserfsなど)
にコマンドラインでブロックデバイスを指定して実行することで、ファイルシステムを作成します。
理論的には、"whole disk"ブロックデバイス(ディスク全体を表すもの)である、
/dev/hdaや/dev/sdaを使ってひとつのファイルシステムを格納することもできますが、
実際にはほとんどそのようにされることはありません。
ディスク全体を使うかわりに、もっと扱いやすい"パーティション"と呼ばれるブロックデバイスに分割します。
パーティションはfdiskと呼ばれる、パーティションテーブルを編集しそれぞれのディスクに書きこむツールを使って作成します。
パーティションテーブルはディスク全体がどのように分割されるのかを定義します。
fdiskを使って、ディスクのパーティションテーブルを見てみます。ディスク全体を表すデバイスを指定してください:
Note:
パーティションテーブルを編集するには、他にcfdisk、parted、partimageなどがあります。
最も機能豊富でUnix/Linuxの世界で良く知られているfdiskの利用をお勧めします。
|
Code Listing 6.3: fdiskを起動する |
# fdisk /dev/hda
|
または
Code Listing 6.4: /dev/sdaのパーティションテーブルを確認するために、fdiskを起動する |
# fdisk /dev/sda
|
Important:
ディスク内に使用中あるいは重要なデータを含んだパーティションがある場合は、
パーティションテーブルを保存したり変更したりしないように注意してください。
このような操作でディスク内のデータが失われる恐れがあります。
|
fdiskを実行すると、次のようなプロンプトが表示されます。
Code Listing 6.5: fdiskのプロンプト |
Command (m for help):
|
ディスクの現在のパーティションテーブルを表示するにはpコマンドを使います。
Code Listing 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をインストールするためのパーティションを作成してください。
パーティションの作成が終わると、次のような表示になるでしょう。
Code Listing 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と入力します。
保存しておかなければならないものがこのディスクにありませんか?
もしあれば、先に進まないでください。
このままこの手順に従ってすすめると、ディスク上の全てのデータが消去されることになります。
Important:
以下で説明する手順では、ディスク上の全てのデータが削除されます!
もしディスクにデータが入っているなら、失ってもかまわないものであることをよく確認してください。
また、うっかり違うドライブのデータを消してしまうことがないように、正しいドライブを選択しているかよく確認してください。
|
では、すでにあるパーティションを削除します。dと入力してエンターキーを押してください。
すると何番のパーティションを削除するのか聞いてきます。/dev/hda1を削除するなら、次のようになります。
Code Listing 6.8: パーティションの削除 |
Command (m for help): d
Partition number (1-4): 1
|
パーティション削除が予定されました。
これによってpではそのパーティションは表示されなくなりますが、パーティションテーブルを保存するまでは実際には削除されていません。
もし操作を間違ってしまい、変更を取り消したいときは、すぐにqと入力してエンターキーを押してください。
ディスクの全てのパーティションを削除する場合は、pでパーティションを確認して、
dで番号を指定してパーティションを削除することを繰り返してください。
最後には、全てのパーティションが削除されて、次のような表示になるでしょう。
Code Listing 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のパーティションを作成します。
この手順では、次のように表示されたはずです。
Note:
ジャーナルを使うファイルシステムではジャーナル保持のためのスペースを必要とします。標準の設定では約33MBが必要です。
そのため、ジャーナルを使うファイルを/bootとして使う場合は、+64Mと入力してください。
|
Code Listing 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):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
|
pと入力してパーティションテーブルを表示してみてください。
Code Listing 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でパーティションテーブルを見ると次のようになるでしょう。
Code Listing 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でパーティションテーブルを見ると次のようになるでしょう。
Code Listing 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をインストールするための正しいパーティション設定ができました。
Note:
fdiskやcfdiskから指示があったら、新しいパーティションを認識できるようにするため、コンピュータを再起動してください。
|
ファイルシステムの作成
パーティションを作りましたので、次にブートパーティションとルートパーティションにファイルシステムを作成し、
マウントしたりデータを保存したりできるようにします。
また、スワップパーティションを作成し、スワップ領域が使えるようにします。
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はどちらも成熟し洗練されていますのでお勧めです。
さきほど見た例に従うと、パーティションを初期化するコマンドは次のようになります。
Code Listing 6.14: パーティションの初期化(参考例) |
# mke2fs /dev/hda1
# mkswap /dev/hda2
# mkreiserfs /dev/hda3
|
ブートパーティションの/dev/hda1はext2を選択しました。
堅牢なファイルシステムであるとともに、メジャーなブートローダがサポートしているからです。
スワップパーティションの/dev/hda2を初期化するにはmkswapを使います。
これは明白ですね。
そして、メインのルートパーティションである/dev/hda3にはReiserFSを選びました。
頑丈なファイルシステムであり、素晴らしいパフォーマンスをもたらします。
それではパーティションを初期化しましょう。
参考までに、インストール中に利用可能なmkfsコマンドの仲間を紹介します。
mkswapはスワップパーティションを初期化するコマンドです:
Code Listing 6.15: スワップの初期化 |
# mkswap /dev/hda2
|
mke2fsはext2ファイルシステムを作成します:
Code Listing 6.16: ext2ファイルシステムの作成 |
# mke2fs /dev/hda1
|
ext3ファイルシステムを使うのなら、mke2fs -jコマンドを使います:
Code Listing 6.17: ext3ファイルシステムの作成 |
# mke2fs -j /dev/hda3
|
ReiserFSファイルシステムの作成にはmkreiserfsを使います:
Code Listing 6.18: ReiserFSファイルシステムの作成 |
# mkreiserfs /dev/hda3
|
XFSファイルシステムにはmkfs.xfsを使います:
Code Listing 6.19: XFSファイルシステムの作成 |
# mkfs.xfs /dev/hda3
|
Note:
mkfs.xfsコマンドに対し、-d agcount=3 -l size=32mオプションを付加することができます。
-d agcount=3オプションはアロケーショングループの数を減らします。
XFSは4Gバイトごとに少なくともひとつのアロケーショングループを必要とします。
つまり、20Gバイトのパーティションがあった場合、最低でも5つのアロケーショングループが必要になります。
-l size=32mオプションはジャーナルサイズを32Mバイトに増加させ、パフォーマンスを良くします。
|
JFSファイルシステムの作成にはmkfs.jfsを使います:
Code Listing 6.20: JFSファイルシステムの作成 |
# mkfs.jfs /dev/hda3
|
7.
パーティションをマウントする
初期化が済んだスワップボリュームを有効にし、後で仮想メモリが必要になったときに使えるようにしておきます。
Code Listing 7.1: スワップを有効にする |
# swapon /dev/hda2
|
次に、/mnt/gentoo/bootというマウントポイントを作成し、そこにさきほどのファイルシステムをマウントします。
ブートファイルシステムとルートファイルシステムをマウントした後は、/mnt/gentooの中に作成されたファイルはすべてそれらのファイルシステム内に格納されます。
もし/usrや/varなどのファイルシステムを別々に作成している場合は、それぞれ、/mnt/gentoo/usrや/mnt/gentoo/varとしてマウントしてください。
Important:
/bootパーティション(カーネルを保持しているパーティション) がReiserFSである場合、GRUBが正常にインストールされるように-o notailオプションを使ってマウントしてください。
さらに/etc/fstabのbootパーティションにnotailオプションを追加してください。
これについてはまたあとで説明します。もしReiserFSでLILOを使う場合は、-o notailオプションは必要ありません。
どんな場合でも-o notailオプションは安全です。
|
Code Listing 7.2: マウントポイントの作成 |
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
|
Important:
もし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を使う場合などがそうです)、以下の手順に従ってダウンロードをしなければなりません。
もし圧縮ファイルを既に持っていてダウンロードの必要がなければ(ほとんどの人がそうでしょう)、"ステージ圧縮ファイルの展開"に進んでください。
Note:
プロクシを使うときは(例として proxy.server.tld:8080 を使う場合)、
-http-proxy proxy.server.tld:8080をlinksコマンドのオプションに指定してください。
|
Code Listing 8.1: 必要なステージの圧縮ファイルのダウンロード |
# cd /mnt/gentoo
# links http://gentoo.oregonstate.edu/releases/x86/1.4/
# wget
|
ステージ圧縮ファイルの展開
ここで、選択した圧縮ファイルを/mnt/gentooに展開します。
展開するのはステージ1、ステージ2、ステージ3のいずれかひとつだけです。
つまり、ステージ3からインストールするのであれば、ステージ3圧縮ファイルを展開してください。
Important:
tarする時は必ずpオプションを使用してください。
これを怠ると、いくつかのファイルに誤ったパーミッションを与えてしまいます。
|
Code Listing 8.2: 圧縮ファイルの展開 |
# cd /mnt/gentoo
# tar -xvjpf /mnt/cdrom/stages/stage3-*.tar.bz2
|
/mnt/gentooにダウンロードされた圧縮ファイルは、展開したあとで次のように入力して削除することができます: rm /mnt/gentoo/stage*.tar.bz2
GRPパッケージ/スナップショットの展開
Important:
以下の手順はGRPユーザ用です。GRPを使わないなら、「ミラーサイトの選択(任意)」に進んでください。
|
GRPユーザ: LiveCDにはPortageのスナップショットが入っています。
これを使うことで、後でこの文書で出てくるemerge sync(ネットワーク接続が必要)のステップを飛ばすことができます。以下のようにして展開してください。
Code Listing 8.3: Portageスナップショットの展開 |
# tar -xvjf /mnt/cdrom/snapshots/portage-yyyymmdd.tar.bz2 -C /mnt/gentoo/usr
|
これで、Portageツリーのスナップショットを展開することができます。
emerge syncのためにネットワークに接続する必要はありません。
次に、distfilesとpackagesをLiveCDからコピーします。
Code Listing 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はうまく動かないこともあります。
Code Listing 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システムに「入り」ます。
Note:
env-updateを実行したときに/etc/make.profile/make.defaultsが利用できないというメッセージが表示されますが、無視してください。
あとでemerge syncを実行しますが、それによってこの問題は解消します。
|
Code Listing 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 ツリーを取得する
Important:
GRPインストールをする場合は、以下のemerge syncに関するセクションは飛ばしてください。
|
ここで、emerge syncを実行してください。これにより、
インターネットを通じて最新のPortageツリーを取得できます。
もしPortageツリーをCD 1のスナップショットから展開しているなら、このステップを飛ばして次に進んでください。
Portageツリーには、Gentoo Linuxでパッケージを構築するための全てのスクリプト(ebuildと呼びます)が収められています。
現在、4000パッケージ近くのebuildスクリプトがあります。
emerge syncが完了すると、/usr/portage以下に完全なPortageツリーが格納されます。
Code Listing 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変数もそれぞれセットしてください
(ファイルの下の方に設定例が載っています)。
Warning:
ステージ2または3を使って始めた方は、
これらの設定は既に済んでいます。CHOSTの値を変更してはいけません。
|
Warning:
上級者向け:
ACCEPT_KEYWORDS="~x86" のGentooシステムをインストールしようとしている場合でも、
ブートストラップ(ステージ1)が完了するまではACCEPT_KEYWORDSに値を設定しないでください。
|
Important: 上級者向け: CFLAGSとCXXFLAGSの設定は、
CとC++コンパイラが生成するコードの最適化などを指定するオプションとして使われます。
例えば、Athlon XPプロセッサを使っているユーザはCFLAGSとCXXFLAGSに"-march=athlon-xp"を設定するのが一般的です。
これによって、そのCPUに適した命令セットを使って最適化されたパッケージを構築できます。
/etc/make.confには、正しくCFLAGSとCXXFLAGSを設定するための一般的な解説が書かれています。 |
ファイアウォールが設置されている場合はここでプロクシ情報をセットできます。
/etc/make.confを編集するには、nanoというシンプルなスクリーンエディタが使えます。
Code Listing 10.1: make.confを編集する |
# nano -w /etc/make.conf
|
Note:
上級者向け: ビルドプロセスに手を加えたいときは、/etc/make.globalsを参照してください。
このファイルは、Gentooで使われるデフォルト値を保持しており、書き換えないようにすべきです。
デフォルトで不十分な場合は、新しい値を/etc/make.confに書き込んでください。
make.confで指定された値は、make.globalsの設定を上書きします。
ここで見つけたUSE設定を無効にしたいときは、適切なUSE="-foo"(fooを無効にしたい場合)を/etc/make.confに追加してください。
|
Warning:
ステージ1が終了するまでは、'static'をUSEに加えないでください。
|
11.
ステージ1から始める場合
Note: ステージ1から始める人以外は、このセクションを飛ばしてください。 |
ステージ1圧縮ファイルを使うと徹底的にカスタマイズと最適化をすることができます。
この圧縮ファイルを選択したのは、最適化された最新のシステムを求めているからだと思います。
お楽しみください。
ステージ1からのインストールには長い時間がかかりますが、その見返りとして特定のマシンとニーズに合わせ隅々まで最適化されたシステムを手に入れることができます。
「ブートストラップ」プロセスを開始します。
AMD Athlon 1200Mhzで約2時間かかります。
このプロセスでは、残りのシステムをコンパイルするために、展開されたビルドイメージが準備されます。
GNUコンパイラ一式とGNU Cライブラリが構築されます。
これらは時間がかかる処理で、ブートストラッププロセスの大半が構成されます。
以下のようにしてブートストラップを始めてください。
Code Listing 11.1: ブートストラッピング |
# cd /usr/portage
# scripts/bootstrap.sh
|
これで「ブートストラップ」プロセスが始まります。
Note:
bootstrap.shに--fetchonlyオプションが追加されました。
ダイアルアップ回線を使っている人などに便利な機能です。
ブートストラップに関係するファイルを一度にまとめてダウンロードしてから、コンパイルを始めることができます。
bootstrap.sh -hでヘルプが表示されます。
|
Note:
デフォルトのPortageはパッケージのビルド中に一時的に/var/tmpを数百Mバイト使用する時があります。
一時ファイルの場所を変更している場合は、ブートストラッププロセスを始める前にPORTAGE_TMPDIR変数を変更してください。
|
Code Listing 11.2: Portageの作業ディレクトリの設定 |
# export PORTAGE_TMPDIR="/otherdir/tmp"
|
bootstrap.shはbinutils、gcc、gettext、glibcを構築し、glibcが構築された後、gettextを再構築します。
言うまでもなく、このプロセスには時間がかかりますので、昼寝でもしていてください。
このプロセスが終了すると"ステージ2"から始めたシステムと同じ状態になります。次に進んでください。
12.
ステージ2から始める場合、あるいはステージ1からの続き
Note:
このセクションはステージ1かステージ2から始めた人が対象ですので、ステージ3から始める人は次のセクションに進んでください。
|
Warning:
ステージ2から始める場合は、
/etc/make.conf内のCHOSTの値を変えないでください。
変えてしまうと、おかしな状態になったり、コンパイルに失敗したりします。
|
ステージ2の圧縮ファイルを使うと、既にブートストラップが済んだ状態から始めることができます。
残りのシステムのインストールを始めましょう。
Note:
ステージ2から始めた場合は、ここでコンパイラ一式が最新の状態になるようにできます。
以下のコマンド(emerge)に-uオプションを付けてください。
これがどういう意味か判らないなら、この注釈は無視して構いません。
|
Code Listing 12.1: 残りのシステムをインストールする |
# emerge -p system
# emerge system
|
ベースシステム全体を構築するにはまとまった時間が必要です。
そのかわりシステムは徹底的に最適化されます。
もちろん暇つぶしの方法を見いださなければなりませんが。
作者はプレイステーション2用ソフト「Star Wars - Super Bombad Racing」をおすすめします。
システムの構築は終了しました。"タイムゾーン設定'に進んでください。
13.
ステージ3から始める場合
Note:
このセクションはステージ3から始める人に向けたものですので、それ以外の人は次のセクションに進んでください。GRPを使ってインストールする人も次のセクションに進んでください。
|
Warning:
/etc/make.conf内のCHOSTの値を変えないでください。
変えてしまうと、おかしな状態になったり、コンパイルに失敗したりします。
|
ステージ3の圧縮ファイルは完全に機能する基本的なGentoo Linuxシステムを含んでいますので、構築の手順は不要です。
Note:
上級者向け:
ただし、ステージ3圧縮ファイルはあらかじめコンパイルされたものですので、もう最新ではなくなっているかも知れません。
もし気になるようなら、
自動的に現在のステージ3システムを最新バージョンのパッケージで置き換えることができます。
/etc/make.confのバックアップを作成し、
export CONFIG_PROTECT="-*" emerge -u system
(この処理を行なうにはネットワーク接続が必要になります)を実行して、
最後に/etc/make.confを書き戻してください。
ステージ3圧縮ファイルが古い場合、この処理には長い時間がかかるかもしれません。
そうでなければ、一般的には短時間で最新バージョンへのアップデートやバグフィクスされたパッケージが得られます。
なお、これらの手順を踏まずに次のセクションに進んだとしても、なんの問題もありません。
|
14.
タイムゾーン設定
ここではタイムゾーンの設定を行ないます。
/usr/share/zoneinfoのなかからタイムゾーン(グリニッジ標準時を使用するならGMT)を選んでシンボリックリンクを作成してください。
Code Listing 14.1: タイムゾーンを設定するためにシンボリックリンクを作成する |
# ln -sf /usr/share/zoneinfo/path/to/timezonefile /etc/localtime
|
15.
/etc/fstabを書き換える
Important:
このファイルを編集するときは、nano -w "filename"とすることを(-wオプションを付けることを)忘れないでください。
|
ここまでの作業でGentoo Linuxシステムはほぼ完成しました。
あとは重要なシステムファイルを作成し、GRUBブートローダーをインストールします。
まず、/etc/fstabファイルを編集します。
ReiserFSファイルシステムを使用する場合はnotailオプションをbootパーティションに付加するのを忘れないでください。
ext2、ext3やreiserfsなどのファイルシステムのタイプも指定してください。
Warning:
下に示したように/etc/fstabを更新してください。
ただし、"BOOT"、"ROOT"、"SWAP"はそれぞれ実際に利用されるブロックデバイスの名前に(例えばhda1)、
"ext2"、"ext3"などは実際のファイルシステムの名前にします。
|
Code Listing 15.1: fstabの編集 |
/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
|
Warning:
/bootがブート時にマウントされないことに気づいたでしょうか。
これは/bootが破壊されることを防ぐためです。
/bootにアクセスする必要があるときは、マウントしてください。
|
16.
カーネルとシステムロガーのインストール
カーネルの選択
カーネルのインストールには2通りのやり方があります。
自分でカーネルの設定をすることもできますし、genkernelユーティリティを使って設定とコンパイルを自動的に実行することもできます。
手動であれ、genkernelであれ、まずお好みのLinuxカーネルソースをemergeしなければなりません。
Gentooはカーネルのebuildを何種類か用意しています。
その一覧がGentoo Linuxカーネルガイド(日本語訳))で確認できます。
どのカーネルソースを選べばよいかわからなければ、gentoo-sourcesにするのがお勧めです。
XFSサポートが必要なら、xfs-sourcesかgs-sourcesを選んでください。
ちなみに、GentooのLiveCDはxfs-sourcesとgs-sourcesを使っています。
他に、ゲームをする人に適したgaming-sourcesがあり、"Preemptible kernel"オプションが有効になっていれば素晴らしい応答性が得られます。
カーネルを選択し、次のようにしてemergeしてください。
Code Listing 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します。
Code Listing 16.2: genkernelをemergeする |
# emerge -k genkernel
|
次に、genkernelと入力して、カーネルの構築を始めてください。
Note:
上級者向け: genkernel --config と入力すると、
カーネルの構築を始める前にデフォルトの設定をいじることができます。
|
Code Listing 16.3: genkernelの実行 |
# genkernel gentoo-sources
# 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するには、次のように入力してください。
Code Listing 16.4: hotplugをemergeし有効にする |
# emerge -k hotplug
# rc-update add hotplug default
|
genkernelを使った人は、次の"手動でのカーネル設定"は飛ばしてください。
手動でのカーネル設定
genkernelによるカーネルの構築を選ばなかった方には、
このセクションでカーネルを手動で設定して構築するための手順を解説します。
/usr/src/linuxがemergeされたカーネルソースへのシンボリックリンクになってることに注意してください。
これはPortageによって自動的に作成されます。
もし複数のカーネルソースをemergeしているなら、適切なカーネルソースへのリンクになっているかどうかを確認する必要があります。
Warning:
自分でカーネルを設定して使う場合は、grsecurityオプションに注意してください。
セキュリティの設定をきつくしすぎると、いくつかのプログラム(たとえばX Windowなど)が正常に動作しなくなる恐れがあります。
必要かどうかわからない場合は、無効にしておきましょう。
|
Note:
カーネルの設定をLiveCDと同じにしたい、あるいはLiveCDの設定を元にしたい場合は、次のようにしてください:
cd /usr/src/linux && cat /proc/config > .config && make oldconfig 。
なお、xfs-sources以外のカーネルを使っている場合は、
選んだカーネルとxfs-sourcesとで異なる部分に関して、いくつか質問に答える必要があるかもしれません。
|
Code Listing 16.5: Linuxカーネルの設定 |
# cd /usr/src/linux
# make menuconfig
|
Warning:
カーネルを正常に機能させるために必要なオプションが正しくカーネルに組み込まれているかどうかを確認してください。
つまり、これらは有効でかつモジュールではない状態でコンパイルされねばなりません。
ReiserFSファイルシステムを使用している場合は ReiserFSオプションを有効にします。"Ext3"も同様です。
XFSファイルシステムを使用している場合は"SGI XFS filesystem support"オプションを有効にします。
どのような場合でも"Ext2"オプションを有効にしておくと良いでしょう。
|
以下に必要となるであろう、一般的なオプションの一覧を示します。
Code Listing 16.6: 重要なカーネルオプション |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers"
...
File systems --->
<*> Reiserfs support
...
<*> Ext3 journalling file system support
...
[*] Virtual memory file system support (former shm fs)
...
<*> JFS filesystem support
...
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
[ ] /dev/pts file system for Unix98 PTYs
...
<*> Second extended fs support
...
<*> XFS filesystem support
|
インターネット接続に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として、ブート時に読み込まれるようにしてください。
忘れずに、必要なイーサネットカードのサポートをカーネルに組込んでください。
Note:
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と記述してください。
|
Code Listing 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 Eth | |