Gentoo Linux alpha ハンドブック: Gentoo をインストールする

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Full/Installation and the translation is 100% complete.



はじめに

ようこそ

まずはじめに、Gentooへようこそ!あなたは、選択と性能の世界に入ろうとしています。Gentooでは、全てが選択です。そのことは、インストールするときにもたびたび明らかになります。コンパイルを何回やらせたいか、Gentooをどのようにインストールしたいか、システムのロギングツールに何を使用したいかなどなど、ユーザに選択権があります。

Gentooは、高速で現代的なメタディストリビューションで、整理された柔軟なデザインになっています。Gentooは、フリーソフトウェアのエコシステムの上に成り立っており、内部をユーザに隠匿することがありません。Gentooで用いるパッケージ管理システムであるPortageはPythonで書かれていますので、ソースコードを容易に閲覧したり改変したりすることができます。Gentooで採用しているパッケージ化の手法は、(コンパイル済パッケージにも対応していますが、)ソースコードを用いるものです。Gentooの設定は、一般的なテキストファイルで行います。つまり言い換えれば、Gentooは、全てをユーザーに開放しています。

選択こそが Gentoo を動かすものであることを全員が理解していることは、きわめて重要です。望まざることをユーザーに強いないよう、我々は努めています。もし異なる信念をお持ちであれば、バグリポートを送ってください。

インストール作業の順序

Gentoo のインストール作業工程は、次章以降で説明する10のステップに分けられます。それぞれの段階を適切に完了させましょう。

ステップ 結果
1 Gentoo をインストール可能な作業環境にします。
2 Gentoo をインストールするためのインターネット接続の準備が完了します。
3 インストールする Gentoo をホストするハードディスクを初期化します。
4 インストールする環境を準備し、新たな環境にユーザーが chroot 可能にします。
5 Gentoo をインストールする全ての場合に共通する中核的なパッケージをインストールします。
6 Linux カーネルをインストールします。
7 Gentoo システムの設定ファイルの大部分が作成されます。
8 必要なシステムツールをインストールします。
9 適切なブートローダーもインストールし設定します。
10 インストールしたての Gentoo Linux 環境に繰り出す準備が完了します。

このハンドブックでは、一定の選択肢を提示したときには必ず、賛否両論の併記に努めます。デフォルトの選択肢で進める記載をした際にも(見出しに「デフォルト:」と記載)、他に取りうる選択肢も記載します(見出しに「代替案:」と記載)。決して、「デフォルトは Gentoo のお勧めだ」と考えないでください。デフォルトはあくまでも、多くのユーザーが採用すると思われる選択肢にすぎません。

ときには、追加可能な手順が続くことがあります。そのような手順は「追加可能:」と記載します。つまりこの手順は、Gentoo のインストール自体には必須ではありません。とはいえ、以前にした決断によっては必須になる追加手順もあります。その際には、その追加手順の説明の直前に、この旨を明記するとともに、原因となった決断をした時期も記載します。

Gentooのインストール方法

Gentoo は、さまざまな方法でインストールすることができます。ダウンロードしてインストールすることも、起動可能なISOイメージのような公式インストールメディアからインストールすることもできます。インストールメディアは USB メモリにインストールすることも、ネットワークブートすることもできます。さらには、インストール済の異なるディストリビューション環境や、(例えば Knoppix のような)Gentoo 以外のブータブルディスクといった非公式メディアからインストールすることも可能です。

この文書が扱っているのは、公式の Gentoo インストールメディアを用いる方法と、場合によってはネットワークブートによる方法です。

注意
Gentoo 以外の起動可能なメディアを用いる場合などの、ほかのインストール方法については、『Alternative installation guide』を読んでください。

また、我々が提供している『Gentoo インストールのヒントとトリック』 という文書も役にたつかもしれません。

トラブルがあったときは

インストール中に (またはインストールを説明しているハンドブックに) 何か問題を見つけたら、バグトラッキングシステムで既知のバグとして報告されていないかどうか、確認してみてください。 もし無いようであれば、私たちが対応できるように、その問題をバグ報告してください。 その (あなたが報告した) バグを担当する開発者たちを恐れないでください。取って喰われるようなことは (滅多に) ありませんから。

あなたが今読んでいる文書は、特定のアーキテクチャ向けということになっていますが、 他のアーキテクチャの情報も、その中に紛れ込んでしまっているかもしれない、ということを一応、先に言っておきます。これはGentooハンドブックの多くの部分が、全てのアーキテクチャに共通のテキストを使用していることに因ります (重複作業を減らすため)。混乱しないように、このような参照は最小限に抑えています。

その問題が、ユーザーの問題 (文書をよく読んだにもかかわらず起きたあなたのミス) なのか、ソフトウェアの問題 (インストール/文書をよくテストしたにもかかわらず起きた私たちのミス) なのか、はっきりしないときには、irc.libera.chat の #gentoo (webchat) チャンネルに気軽に参加してみてください。そんなときじゃなくても全然かまわないんですけどね。

そういえば、Gentooについて何か分からないことがあったら、よくある質問を見てみてください。Gentoo Forums上にあるFAQsもあります。






ハードウェア要件

始める前に、alphaの機械に首尾よくGentooをインストールするために必要なハードウェアの条件を示します。


Minimal CD LiveDVD
CPU すべてのAlpha CPU N/A
メモリー 64 MB N/A
ディスクスペース 1.5 GB (スワップ領域を除く) N/A
スワップ領域 少なくとも 256 MB N/A


Gentoo Linux インストールメディア

MinimalインストールCD

Gentoo MinimalインストールCDは、自己完結したGentoo環境である、ブート可能イメージです。このCDを使うとLinuxをCDやその他のインストールメディアから起動することができます。起動時、接続されたハードウェアが検出されて適切なドライバが読み込まれます。 このイメージは、Gentooの開発者によってメンテナンスされるもので、インターネット接続さえできれば誰でもGentooをインストールできるようにします。

MinimalインストールCDは、install-alpha-minimal-<release>.isoと呼ばれます。

必要なときに使うGentoo LiveDVD

必要な場合に使う、Gentooをインストール用の特別なDVDイメージが作成されています。この章で説明する方法は、MinimalインストールCDをターゲットにしているので、LiveDVDから起動する場合と少々の差異があるかもしれません。しかしLiveDVD (または他の起動可能なLinux環境) は、ターミナル上で単純にsudo su -またはsudo -iを実行するだけで、rootプロンプトの取得を行えます。

Stage とは?

stage3 tarballは、プロファイル特有でかつ最小限のGentoo環境を含んだアーカイブで、このハンドブックに従ってインストールを進めるのに適しています。以前は、このハンドブックでは3つのstage tarballから1つを選ぶインストール方法を説明していました。Gentooはもうstage1とstage2のtarballをダウンロード用に提供していません。これは、これらが内部使用のためであること、そして新しいアーキテクチャに対するブートストラップとして使用されているためです。

stage3 tarballは、公式Gentooミラーのいずれか のreleases/alpha/autobuilds/からダウンロードできます。stageファイルは頻繁に更新され、公式のインストールイメージの中には含まれていません。

ダウンロード

メディアの入手

Gentoo Linuxが使う既定のインストールメディアは、MinimalインストールCDで、とても小さいブータブルGentoo Linux環境を格納しています。この環境はGentooをインストールするために最適なツールをすべて含んでいます。このCDのイメージは、ダウンロードページから(推奨)か、たくさんの利用可能なミラーのいずれかを自分で選び、そのミラー上でISOが置いてある場所を訪れることで、ダウンロードできます。

ミラーからダウンロードするなら、以下の場所でMinimalインストールCDを見つけられます:

  1. releases/ディレクトリに行く。
  2. 関連するターゲットアーキテクチャのディレクトリ(例えばalpha/)を選択する。
  3. autobuilds/ディレクトリを選択する。
  4. amd64x86アーキテクチャでは、それぞれcurrent-install-amd64-minimal/ or current-install-x86-minimal/のどちらかを選択する。他のすべてのアーキテクチャでは、current-iso/ディレクトリへ進む。
Note
armmipss390のような一部のターゲットアーキテクチャには、MinimalインストールCDがありません。現時点では、Gentoo Release Engineering projectはこれらのターゲット向けの.isoファイルの作成をサポートしていません。

この場所の中では、インストールメディアファイルは.isoという接尾辞 (拡張子) を持ちます。例えば、以下の一覧を見てみてください。

CODE releases/alpha/autobuilds/current-iso/におけるダウンロード可能なファイルの一覧の例
[DIR] hardened/                                          05-Dec-2014 01:42    -   
[   ] install-alpha-minimal-20141204.iso                 04-Dec-2014 21:04  208M  
[   ] install-alpha-minimal-20141204.iso.CONTENTS        04-Dec-2014 21:04  3.0K  
[   ] install-alpha-minimal-20141204.iso.DIGESTS         04-Dec-2014 21:04  740   
[TXT] install-alpha-minimal-20141204.iso.DIGESTS.asc     05-Dec-2014 01:42  1.6K  
[   ] stage3-alpha-20141204.tar.bz2                      04-Dec-2014 21:04  198M  
[   ] stage3-alpha-20141204.tar.bz2.CONTENTS             04-Dec-2014 21:04  4.6M  
[   ] stage3-alpha-20141204.tar.bz2.DIGESTS              04-Dec-2014 21:04  720   
[TXT] stage3-alpha-20141204.tar.bz2.DIGESTS.asc          05-Dec-2014 01:42  1.5K

上記の例では、install-alpha-minimal-20141204.isoというファイルがMinimalインストールCDそのものです。 しかし見て分かりますが、他の関係ファイルも存在しています:

  • .CONTENTSファイルは、インストールメディアで利用可能な全てのファイルの一覧を含むテキストファイルです。このファイルは、インストールメディアをダウンロードする前に、特定のファームウェアまたはドライバが含まれているかどうか調べるために使えます。
  • .DIGESTSファイルは、様々なハッシュ形式とアルゴリズムで計算したISOファイルのハッシュ値を含んでいます。このファイルは、ダウンロードしたISOファイルが破損しているか否かを調べるために使われます。
  • .DIGESTS.ascファイルは、(.DIGESTSのような) ISOファイルのハッシュ値だけではなく、ファイルのデジタル署名を含みます。これは両方ともダウンロードしたファイルが破損しているか否かを調べるために使われますが、同様にダウンロードしたものがGentooリリースエンジニアリングチームによって実際に提供されたものであり、改竄されていないかを調べるためにも用います。

今のところ、この場所で利用可能な他のファイルは無視してください。インストールがもっと進んだ後に再登場しますので。.isoファイルをダウンロードし、もしダウンロードの検証が必要であれば、.isoファイル用の.DIGESTS.ascファイルも同じようにダウンロードします。 .CONTENTSファイルはダウンロードする必要はありません。これからのインストール手順ではもう参照しないからです。.DIGESTSファイルと.DIGESTS.ascは、後者が署名されていることを除いて、同じ情報が含まれています。

ダウンロードしたファイルを検証する

注意
これは任意自由選択なステップで、Gentoo Linuxをインストールするために必須なものではありません。しかしながら、ダウンロードしたファイルが破損していないことを確かめ、Gentooインフラストラクチャ チームから実際に提供されていることを保証するため、推奨されます。

.DIGESTS.DIGESTS.ascファイルを通じ、ISOファイルの妥当性は、適切なツール群を用いて確認できます。この検証は通常、2つのステップで行われます。

  1. まず、デジタル署名を検証します。これは、インストール·ファイルがGentooリリースエンジニアリングチームによって提供されていることを確認するためです。
  2. デジタル署名が正しければ、ダウンロードされたファイル自体が破損していないかを確かめるため、チェックサムを検証します。

Microsoft Windows上での検証

Microsoft Windowsシステムでは、チェックサムとデジタル署名を検証するための適切なツール群が普通にある見込みはまずありません。

まずデジタル署名を検証するには、例えばGPG4Winのようなツールを利用できます。インストール後、Gentooリリースエンジニアリングチームの公開鍵をインポートする必要があります。鍵の一覧は署名のページで提供されています。インポート後、ユーザは.DIGESTS.ascファイルの署名を検証できるようになります。

重要
これは.DIGESTSファイルが正しいことを検証しません。.DIGESTS.ascが正しいことだけを検証します。このことはまた、チェックサムが.DIGESTS.ascファイルに含まれる値を用いて検証されるべきであることを意味します。そのため、上記の手順では.DIGESTS.ascファイルのみダウンロードするようになっています。

チェックサム自体は、Hashcalcアプリケーションを使って検証できますが、多数の代替も同様に存在します。ほとんどの場合、これらのツールはユーザに対して計算されたチェックサムを表示しますので、ユーザはこのチェックサムを.DIGESTS.ascファイルの中にある値で検証する必要があります。

Linux上での検証

Linuxシステムでは、デジタル署名を検証する最も一般的な方法はapp-crypt/gnupgソフトウェアを使うことです。このパッケージがインストールされていると、.DIGESTS.ascファイルのデジタル署名を検証するために以下のコマンドが使えます。

まず、適切な鍵を利用できるようにするため、署名のページよりダウンロードします:

user $gpg --keyserver hkps://keys.gentoo.org --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net
gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   3  signed:  20  trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1  valid:  20  signed:  12  trust: 9-, 0q, 0n, 9m, 2f, 0u
gpg: next trustdb check due at 2018-09-15
gpg: Total number processed: 1
gpg:         new signatures: 1

代わりに、WKDを使用してダウンロードすることも可能です:

--2019-04-19 20:46:32--  https://gentoo.org/.well-known/openpgpkey/hu/wtktzo4gyuhzu8a4z5fdj3fgmr1u6tob?l=releng
Resolving gentoo.org (gentoo.org)... 89.16.167.134
Connecting to gentoo.org (gentoo.org)|89.16.167.134|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35444 (35K) [application/octet-stream]
Saving to: 'STDOUT'
 
     0K .......... .......... .......... ....                 100% 11.9M=0.003s
 
2019-04-19 20:46:32 (11.9 MB/s) - written to stdout [35444/35444]
 
gpg: key 9E6438C817072058: 84 signatures not checked due to missing keys
gpg: /tmp/test2/trustdb.gpg: trustdb created
gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported
gpg: key BB572E0E2D182910: 12 signatures not checked due to missing keys
gpg: key BB572E0E2D182910: 1 bad signature
gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported
gpg: Total number processed: 2
gpg:               imported: 2
gpg: no ultimately trusted keys found

次に.DIGESTS.ascファイルのデジタル署名を検証します:

user $gpg --verify install-alpha-minimal-20141204.iso.DIGESTS.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET
gpg:                using RSA key 0xBB572E0E2D182910
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD  B1BA BB57 2E0E 2D18 2910

すべてが確実であることを完全に確かめるために、表示された指紋がGentooの署名のページ上にある指紋かどうかを調べます。

デジタル署名が検証されれば、次にチェックサムを確認します。これは、ダウンロードしたISOファイルが破損していないことを確認するためです。 .DIGESTS.ascファイルには、複数のハッシュアルゴリズムが含まれています。そのため、適切なものを検証するための1つの方法としては、.DIGESTS.ascに登録された先頭のチェックサムを見てください。 例えば、SHA512チェックサムを取得します:

user $grep -A 1 -i sha512 install-alpha-minimal-20141204.iso.DIGESTS.asc
# SHA512 HASH
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024  install-alpha-minimal-20141204.iso
--
# SHA512 HASH
0719a8954dc7432750de2e3076c8b843a2c79f5e60defe43fcca8c32ab26681dfb9898b102e211174a895ff4c8c41ddd9e9a00ad6434d36c68d74bd02f19b57f  install-alpha-minimal-20141204.iso.CONTENTS

上記の出力では、2つのSHA512チェックサムが表示されます。1つはinstall-alpha-minimal-20141204.isoファイルのもので、1つはそれに付随する.CONTENTSファイルです。最初のチェックサムだけが重要で、その 比較対象となるSHA512チェックサムは、以下のように生成することができます:

user $sha512sum install-alpha-minimal-20141204.iso
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024  install-alpha-minimal-20141204.iso

双方のチェックサムが同一であれば、ファイルは破損していません。インストールを続行できます。

ディスクに書き込む

もちろん、ISOファイルをダウンロードしただけでは、Gentoo Linuxのインストールは始められません。ISOファイルはブートCDに書き込む必要があり、しかもISOファイルそのものではなく、ISOファイルの中身を書き込む必要があります。以下にいくつかのよく使われる方法を示します--より詳細な情報が知りたい場合はISOファイルの書き込みについてのわたしたちのFAQを見てください。

Microsoft Windows 7以降での書き込み

Microsoft Windows 7以降のバージョンでは、サードパーティ製のソフトウェアを必要とすることなく、ISOイメージをマウントし書き込むことができます。単純に書き込み可能なディスクを挿入し、ダウンロードしたISOファイルをブラウズし、右クリックして「ディスクイメージの書き込み」を選択してください。

Linuxでの書き込み

Linuxでは、app-cdr/cdrtoolsパッケージにあるcdrecordユーティリティで、ISOイメージを書き込みことができます。

/dev/sr0デバイス(これはシステム上の1番目のCDデバイスです。必要ならば正しいデバイスに置き換えてください)のCDにISOファイルを書き込むには:

user $cdrecord dev=/dev/sr0 install-alpha-minimal-20141204.iso

GUIを好むユーザーはkde-apps/k3bパッケージの一部であるK3Bを使うことができます。K3Bでは、ToolsメニューからBurn CD Imageを選択してください。

起動する

インストレーション CD から起動する

Alphaシステムが起動したら、最初に開始されるのはファームウェアです。これは、大まかに言えばPCシステムのBIOSソフトウェアの同義語です。Alphaシステムには2種類のファームウェアがあります:SRM(Systems Reference Manual)とARC(Advanced Risc Console)です。

SRMはAlpha Console Subsystemの仕様に基づいたもので、OpenVMS、Tru64 UNIXそしてLinuxオペレーティングシステムのための操作環境を提供します。ARCはAdvanced RISC Computing(ARC)の仕様に基づいたもので、Windows NT用の操作環境を提供します。SRMを使用するための詳細なガイドがAlpha Linuxのウェブサイトにあります。

もしAlphaシステムがSRMとARC(ARC、AlphaBIOS、ARCSBIOS)の両方をサポートしている場合、SRMに切り替えるためにこれらの指示に従ってください。もしシステムが既にSRMを使用している場合、全て準備完了です。もしシステムがARC(Ruffian、nautilus、xlなど)のみを使用することができる場合、このハンドブックの後半で説明されるブートローダでMILOを選択してください。

それではAlphaインストールCDを起動するために、トレーにCD-ROMを置き、システムを再起動してください。SRMを使用してインストールCDを起動することが出来ます。もしこれが不可能なら、MILOを使用する必要があります。

SRMを使用してCD-ROMを起動する場合、まず利用可能なハードウェアドライバの一覧を表示します:

>>>show device
dkb0.0.1.4.0        DKB0       TOSHIBA CDROM

次に、正しいCD-ROMドライブデバイスを使用し、CDを起動します。例えばdkb0の場合:

>>>boot dkb0 -flags 0

-flags 2を使用すると、デフォルトコンソールにシリアルポート/dev/ttyS0を使用します。

MILOを使用してCD-ROMを起動する場合、sdbを正しいCD-ROMドライブデバイスに置換し、以下のようなコマンドを使用してください:

MILO>boot sdb:/boot/gentoo initrd=/boot/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot

シリアルポート/dev/ttyS0をデフォルトコンソールとして使用する場合、コマンドラインにconsole=ttyS0を追加してください。

起動したら、root("#")プロンプトが現在のコンソールとして表示されます。Alt + F2Alt + F3そしてAlt + F4を押すことで、他のコンソールに切り替えることが出来ます。最初のコンソールに戻るにはAlt + F1を押してください。


例外的なハードウェア構成

インストールメディアが起動するとき、すべてのハードウェア機器を検出して適切なカーネルモジュールを読み込もうとします。これは非常に多くの場合、とても良い仕事をします。しかしある場合において、システムに必要なカーネルモジュールを自動で読み込まないかもしれません。PCI自動検出機能がシステムのハードウェアを見逃した場合、適切なカーネルモジュールを手動で読み込む必要があります。

次の例は、(ある種類のネットワークインタフェイスをサポートする) 8139tooモジュールを読み込みます:

root #modprobe 8139too

追加可能: ユーザアカウント

インストール環境に他の人たちがアクセスする必要があったり、インストールメディア上で非rootユーザでコマンドを実行する(例えば、セキュリティ上の理由から、root権限無しでirssiを使ってチャットする)必要があるなら、別のユーザアカウントを作成し、強いrootパスワードを設定する必要があります。

rootパスワードを変更するには、passwdユーティリティを使ってください:

root #passwd
New password: (新しいパスワードを入力)
Re-enter password: (もう一度新しいパスワードを入力)

ユーザーアカウントを作成するためには、まずアカウントの資格情報を、次にパスワードを入力します。このために、useraddpasswdコマンドを使います。

次の例では、johnというユーザが作成されます:

root #useradd -m -G users john
root #passwd john
New password: (Enter john's password)
Re-enter password: (Re-enter john's password)

現在のrootユーザから新しく作成したユーザアカウントに切り替えるには、suコマンドを使ってください:

root #su - john

追加可能:インストール中のドキュメント閲覧

TTY

Gentooハンドブックをインストール中に見るには、最初に上記の方法でユーザアカウントを作ってください。そしてAlt+F2を押すことで新しい端末を使い始められます。

インストール中、 linksコマンドでGentooハンドブックを閲覧できます。もちろん、インターネット接続が機能し始めた瞬間からですけど。

user $links https://wiki.gentoo.org/wiki/Handbook:Alpha/ja

元々の端末に戻るには、Alt+F1を押してください。

GNU Screen

公式 Gentoo インストールメディアにはデフォルトで Screen ユーティリティがインストールされています。熟練の Linux ファンにとっては、上に書いた複数の TTY を使う方法よりも、ペインを分割してインストール指示を読むために screen を使うほうが効率がいいかもしれません。

追加可能:SSHデーモンの開始

他のユーザーがインストール中にシステムにアクセスできるようにする(インストール中のサポートをしたり、あるいは全て遠隔操作で行うため)ためには、(前述の通り)ユーザーアカウントを作成し、SSHデーモンを起動する必要があります。

OpenRC 上で SSH デーモンを始動させるためには、次のコマンドを実行します:

root #rc-service sshd start
Note
ユーザーがシステムにログオンすると、(指紋・fingerprint と呼ばれるもので) ホスト鍵を確認するようメッセージが表示されると思います。これはSSHサーバーへの最初の接続では期待される典型的な挙動です。ところが、この後の手順でシステムのセットアップが完了した後、改めてログオンしようとすると、SSHクライアントはホスト鍵が変更されていると警告します。SSH的には別のサーバー (現在インストールに使っているLive環境ではなく、新しくインストールされた Gentoo システム) にログオンしようとしているように見えるのです。この場合は画面上の指示に従い、クライアント側で記憶しているホスト鍵を更新しましょう。

sshdを使えるようにするには、ネットワークを適切に機能させる必要があります。ネットワーク設定の章を参照してください。





ネットワークの自動検出

動いているかも?

もしあなたのシステムが、DHCPサーバを持つEthernetネットワークに接続されているなら、おそらく既にネットワーク設定は自動的に完了しているでしょう。その場合には、sshscppingirssiwgetlinksなど、インストールメディアに含まれるネットワーク接続が必要な多くのコマンドはすぐに使うことができるでしょう。

インターフェース名を決定する

ifconfig コマンド

ネットワークが設定されているならば、ifconfigコマンドで、lo以外のネットワークインターフェースを一覧表示できるはずです。次の例ではeth0が見えています:

root #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 

predictable network interface namesへ移行した結果、システム上のインターフェース名は古い命名規則によるeth0とはかなり違うものになっているかもしれません。最近のインストールメディアはeno0ens1enp5s0など、命名規則に則ったネットワークインターフェース名を表示するかもれません。ifconfigの出力から、あなたのローカルネットワーク上のIPアドレスが設定されたインターフェースを探してください。

Tip
標準の ifconfig コマンドを使ってインターフェースが表示されないなら、同コマンドを -a オプション付きで使ってみてください。このオプションは、システムが検出したすべてのネットワークインターフェースを、その状態が up であるか down であるかに関わらず、強制的に表示させます。ifconfig -a が何の効果もないのなら、ハードウェアに問題があるか、そのインターフェースのためのドライバがカーネルにロードされていないかです。どちらの状況も、このハンドブックの対象範囲を外れています。#gentoo (webchat) に助けを求めてください。

ip コマンド

ifconfig の代替として、インターフェース名を決定するために ip コマンドが使えます。次の例に ip addr の出力を示します。別のシステムでの出力なので、表示される情報は前の例とは異なっています:

root #ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

この出力結果はさっきより少し分かりづらいかもしれません。この例でのインターフェース名は、番号のすぐ後ろに続いている、eno1 です。

以降、このドキュメントでは、扱っているネットワークインターフェース名はeth0であると仮定します。

追加可能: プロキシを設定する

プロキシを経由してインターネットにつなぐ場合には、インストール作業の中でプロキシ情報を設定する必要があります。プロキシを設定するのはとても簡単です:プロキシサーバ情報を変数に設定するだけです。

ほとんどの場合、プロキシサーバのホスト名を設定するだけで十分です。例えば、ホスト名はproxy.gentoo.org、ポート番号は8080であるとしましょう。

HTTPプロキシ(HTTPとHTTPS通信のため)を設定するには:

root #export http_proxy="http://proxy.gentoo.org:8080"

FTPプロキシを設定するには:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

RSYNCプロキシを設定するには:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

ユーザ名とパスワードが必要ならば、次の構文で変数を設定します:

CODE ユーザ名とパスワードをプロキシ変数に追加する
http://username:password@proxy.gentoo.org:8080

ネットワークのテスト

あなたのISPのDNSサーバ(/etc/resolv.confで見つかります)と、好きなウェブサイトへのpingを試してみましょう。これにより、ネットワークが正常に機能しているか、ネットワークパケットがインターネットに到達できるか、DNS名前解決が正常に機能しているか、等のことを確認できます。

root #ping -c 3 www.gentoo.org

これがすべてうまくいくのなら、この章の残りの部分を読み飛ばして、インストールマニュアルの次のステップ(ディスクの準備)へ進むことができます。

自動でのネットワーク設定

起動しただけではネットワークが使えない場合は、インストールメディアにnet-setup(通常のネットワークや無線ネットワーク用)や、pppoe-setup(ADSL用)や、pptp (PPTP用)などのツールが含まれているなら、それらを使って設定できます。

お使いのインストールメディアがこれらのツールを含んでいない場合は、#手動でのネットワーク設定へ進んでください。

デフォルト: net-setupを使う

ネットワークが自動で設定されなかった場合に、ネットワークを設定するための最も簡単な方法がnet-setupスクリプトを実行することです:

root #net-setup eth0

net-setupはあなたのネットワーク環境について、いくつかの質問をします。すべてに答えると、ネットワーク接続が使えるようになるはずです。上に書いた方法でネットワークをテストしてください。すべてのテストをパスできたなら、おめでとうございます! この章の残りを飛ばしてディスクの準備へ進みましょう。

それでもネットワークが使えない場合は、#手動でのネットワーク設定へ進んでください。

代替案: PPPを使う

インターネットへの接続にPPPoEが必要なら、インストールCD(どのバージョンでも可)に含まれるpppが設定を楽にしてくれます。提供されるpppoe-setupスクリプトを使ってネットワークを設定しましょう。セットアップ中には、ADSLモデムに接続されたEthernetデバイスの名前、ユーザ名とパスワード、DNSサーバのIPアドレス、基本的なファイアウォールが必要かどうかが聞かれます。

root #pppoe-setup
root #pppoe-start

何かがおかしいときは、etc/ppp/pap-secretsまたは/etc/ppp/chap-secretsを見てユーザ名とパスワードが正しいかダブルチェックしてください。加えて、正しいEthernetデバイスを使っているか確認してください。もしEthernetデバイスが無い場合は、適切なネットワークモジュールをロードする必要があります。そのような場合には手動でのネットワーク設定へ進んでください。そこで適切なネットワークモジュールをロードする方法を説明します。

すべてうまくいったら、ディスクの準備へ進みましょう。

代替案: PPTPを使う

PPTPサポートが必要なら、インストールCDが提供するpptpclientを使ってください。でもその前に、設定が正しいか確認してください。/etc/ppp/pap-secretsまたは/etc/ppp/chap-secretsを編集して、正しいユーザ名/パスワードの組み合わせを設定してください。

root #nano -w /etc/ppp/chap-secrets

必要ならば/etc/ppp/options.pptpを修正してください:

root #nano -w /etc/ppp/options.pptp

これが全部終わったら、pptpを(options.pptpで設定できないオプションがあれば、それもいっしょに付けて)実行し、サーバに接続します:

root #pptp <server ipv4 address>

それではディスクの準備へ進みましょう。

手動でのネットワーク設定

適切なネットワークカーネルモジュールをロードする

インストールCDの起動時に、インストールCDはすべてのハードウェアデバイスを検出し、そのハードウェアをサポートする適切なカーネルモジュール(ドライバ)のロードを試みます。ほとんどの場合、この機能はとてもよくやってくれます。しかし稀に、存在するネットワーク機器と適切に通信するために必要なカーネルモジュールが自動でロードされないこともあります。

net-setupまたはpppoe-setupが失敗したという場合、ネットワークカードを起動時に見つけられなかった可能性があります。つまり、ユーザが適切なカーネルモジュールを手動でロードする必要があるかもしれません。

ネットワーク設定のためのカーネルモジュールの一覧を見るには、lsコマンドを使います:

root #ls /lib/modules/`uname -r`/kernel/drivers/net

お使いのネットワークデバイスのためのドライバがあった場合は、modprobeでカーネルモジュールをロードしましょう。例えば、pcnet32モジュールをロードするには:

root #modprobe pcnet32

ネットワークカードが検出されているかどうかチェックするには、ifconfigを使います。ネットワークカードが検出されていれば、以下のように表示されるでしょう(繰り返しますが、ここでのeth0は一例です):

root #ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

しかし次のようなエラーが表示される場合、ネットワークカードは検出されていません:

root #ifconfig eth0
eth0: error fetching interface information: Device not found

現在のシステムで利用可能なネットワークインターフェース名は、/sysファイルシステムを通して一覧表示できます:

root #ls /sys/class/net
dummy0  eth0  lo  sit0  tap0  wlan0

上の例では、6個のインターフェースが見つかっています。eth0がおそらく(有線の)Ethernetアダプタで、wlan0は無線のアダプタです。

ネットワークカードがこれで検出できたとして、net-setupまたはpppoe-setupをもう一度試してください(今度はうまくいくはずです)。しかし上級者のために、手動でのネットワーク設定についても説明していきます。

あなたのネットワーク構成に応じて、次の節のうちからひとつを選んでください:

DHCPを使う

DHCP (Dynamic Host Configuration Protocol) を使うと、自動でネットワーク接続情報(IPアドレス、ネットマスク、ブロードキャストアドレス、ゲートウェイ、ネームサーバ、等)を受信することができます。この機能は、DHCPサーバがネットワーク内に存在しないと(または、ISPがDHCPサービスを提供していないと)動作しません。ネットワークインターフェースに接続情報を自動で受信させるようにするには、dhcpcdを使います:

root #dhcpcd eth0

DHCPサーバが提供するホスト名とドメイン名をシステムで使うようにと、ネットワーク管理者から要求されている場合もあるでしょう。そのような場合には:

root #dhcpcd -HD eth0

これが動作すれば(インターネット上のサーバ、例えばGoogleの8.8.8.8やCloudflareの1.1.1.1に、pingしてみましょう)、設定は完了です。次に進む準備ができました。この節の残りの部分を飛ばして、ディスクの準備に進みましょう。

無線接続を準備する

Note
iwコマンドの対応状況はアーキテクチャによって異なるかもしれません。このコマンドが使えない場合は、net-wireless/iwパッケージが作業中のアーキテクチャにおいて利用可能であるか確かめてください。net-wireless/iwパッケージがインストールされていないと、iwコマンドを使用することはできないでしょう。

無線(802.11)カードを使っている場合には、まず第一に無線の設定をする必要があります。無線カードの現在の設定を確認するためには、iwを使うことができます。iwはこのようなものを表示するでしょう:

root #iw dev wlp9s0 info
Interface wlp9s0
	ifindex 3
	wdev 0x1
	addr 00:00:00:00:00:00
	type managed
	wiphy 0
	channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz
	txpower 30.00 dBm

現在の接続を確認するには:

root #iw dev wlp9s0 link
Not connected.

または

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
Note
無線カードのデバイス名は、wlp9s0の代わりにwlan0またはra0のような名前かもしれません。正しいデバイス名を調べるには、ip linkを実行してください。

ほとんどのユーザにとって、接続するのに必要な設定は、ESSID(無線ネットワーク名とも言います)と、場合によってはWEPキー、この2つだけです。

  • まず、インターフェースがアクティブになっていることを確認してください:
root #ip link set dev wlp9s0 up
  • GentooNodeという名前のオープンネットワークに接続するには:
root #iw dev wlp9s0 connect -w GentooNode
  • 16進WEPキーを使って接続するには、キーの前にd:を付けてください:
root #iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
  • ASCII WEPキーで接続するには:
root #iw dev wlp9s0 connect -w GentooNode key 0:some-password
Note
無線ネットワークがWPAまたはWPA2で設定されている場合には、wpa_supplicantを使う必要があります。Gentoo Linuxでのネットワーク設定のさらなる情報については、Gentooハンドブックの無線ネットワークの章を読んでください。

iw dev wlp9s0 linkを使って、無線の設定ができたか確認してください。無線が機能したら、次節(ネットワーク用語を理解する)に示す、IPレベルのネットワークオプションの設定に進むか、先に示したnet-setupツールを使ってください。

ネットワーク用語を理解する

Note
IPアドレス、ブロードキャストアドレス、ネットマスクやネームサーバーのことを知っているなら、このサブセクションを飛ばして ifconfigrouteを使うに進んでください。

もし上記のすべてが失敗したら、ネットワークは手動で設定される必要があります。これは少しも難しくありませんが、幾ばくかのネットワーク用語と基礎的な概念の知識は必要でしょう。この章を読んだあとには、ユーザーはゲートウェイが何で、ネットマスクがなんの役に立っていて、ブロードキャストアドレスがどのように作られてなぜシステムがネームサーバーを必要とするのかがわかるでしょう。

ネットワーク内部では、ホストはIPアドレス(インターネットプロトコルアドレス)によって識別されます。少なくともIPv4 (IP バージョン4)を使うときは、そのようなアドレスは0から255の間の4つの数字の組み合わせです。実際は、IPv4アドレスは32ビット(0と1の集合)からできています。例をみてみましょう。

CODE IPv4アドレスの例
IP Address (数字):   192.168.0.2
IP Address (ビット): 11000000 10101000 00000000 00000010
                        -------- -------- -------- --------
                           192      168       0        2
Note
IPv4の後継であるIPv6は128ビット(0と1の集合)を使っています。この章ではIPv4アドレスに焦点を合わせています。

そのようなIPアドレスはすべての接続可能なネットワークが関わっている範囲で一意に定まっています。つまり到達可能でありたいホストはどれも、唯一なIPアドレスを持たなければならないということです。ネットワークの内部と外部を区別するために、IPアドレスはネットワーク部とホスト部の2つの部分に分かれています。

0の並びのあとに1の並びが続くネットマスクによって、その分かれ目は記録されています。1が位置しているIPの部分はネットワーク部で、そうでない部分はホスト部です。普通は、ネットマスクはIPアドレスとして記録されるでしょう。

CODE ネットワークとホストの分離の例
IP address:    192      168      0         2
            11000000 10101000 00000000 00000010
Netmask:    11111111 11111111 11111111 00000000
               255      255     255        0
           +--------------------------+--------+
                    Network              Host

言い換えると、192.168.0.14は例のネットワークの一部ですが、192.168.1.2はそうではありません。

ブロードキャストアドレスは、ネットワークと同じネットワーク部を持ち、ホスト部がすべて1であるようなIPアドレスです。同じネットワーク上にあるすべてのホストは、このIPアドレスで通信を受けられます。このアドレスは、パケットをブロードキャストするためだけに存在します。

CODE ブロードキャストアドレス
IP address:    192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     Network             Host

インターネットに接続するためには、ネットワーク内のそれぞれのコンピュータは、どのホストがインターネット接続を共有してくれるのかを知っている必要があります。そのようなホストをゲートウェイといいます。ゲートウェイも普通のホストなので、普通のIPアドレスを持っています(例: 192.168.0.1)。

最初に、すべてのホストは一意にIPアドレスを持つと書きました。ホストを(IPアドレスの代わりに)名前で指定できるようにするためには、名前(例: dev.gentoo.org)をIPアドレス(例: 64.5.62.82)に変換するサービスが必要になります。このようなサービスを「ネームサービス」といいます。ネームサービスを利用するには、ネームサーバを/etc/resolv.conf内に定義しておく必要があります。

ゲートウェイがネームサーバを兼ねていることもあります。そうでない場合には、ISPが提供するネームサーバをこのファイルに書く必要があります。

まとめると、続けるには次の情報が必要になります:

ネットワーク設定項目
システムのIPアドレス 192.168.0.2
ネットマスク 255.255.255.0
ブロードキャスト 192.168.0.255
ゲートウェイ 192.168.0.1
ネームサーバ 195.130.130.5, 195.130.130.133

ifconfigとrouteを使う

sys-apps/net-toolsパッケージにあるツールを使うことで、通常3つのステップで手動でネットワークの設定ができます。

  1. ifconfigコマンドを使ってIPアドレスを割り当てる
  2. routeコマンドを使ってゲートウェイへのルーティングを設定する
  3. 正しいネームサーバのIPアドレスを/etc/resolv.confファイルに書いて完了

IPアドレスを割り当てるには、IPアドレス、ブロードキャストアドレス、ネットマスクの情報が必要になります。${IP_ADDR}をターゲットIPアドレスに、${BROADCAST}をターゲットブロードキャストアドレスに、${NETMASK}をターゲットネットマスクに置き換えて、次のコマンドを実行してください:

root #ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

routeを使ってルーティングの設定を行う場合、${GATEWAY}を適切なゲートウェイのIPアドレスに置き換えてください:

root #route add default gw ${GATEWAY

}

テキストエディタを用いて/etc/resolv.confファイルを開いてください:

root #nano -w /etc/resolv.conf

必要ならば、次のテンプレートを使って、ネームサーバの情報を入力してください。${NAMESERVER1}${NAMESERVER2}は正しいネームサーバのIPアドレスに置き換えてください。複数のネームサーバを追加することが可能です:

FILE /etc/resolv.confデフォルトのresolv.confのテンプレート
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

これで終わりです。インターネット上のサーバ(Googleの8.8.8.8やCloudflareの1.1.1.1など)にpingをして、ネットワークのテストを行ってください。うまくいったなら、おめでとうございます。ディスクの準備へ進んでください。





ブロックデバイスの概要

ブロックデバイス

Gentoo Linuxの、そしてLinux一般の、ブロックデバイス、パーティション、Linuxファイルシステムを含めた、ディスクやファイルシステム中心の考え方について詳しく見てみましょう。ディスクの入出力とファイルシステムについて理解することで、インストールのためのパーティションとファイルシステムを構築できるようになります。

まずはブロックデバイスについて見ていきます。SCSIドライブやシリアルATAドライブは両方とも/dev/sda/dev/sdb/dev/sdcなどのようなデバイスハンドルとしてラベル付されます。更にモダンなマシンでは、PCI ExpressベースのNVMeソリッドステートディスクは、/dev/nvme0n1/dev/nvme0n2などのようなデバイスハンドルを持ちます。

下の表は、各種のブロックデバイスがシステム上のどこにあるかを判断するのに役立つでしょう:

デバイスの種類 デフォルトのデバイスハンドル 編集者メモと、考慮すべき点
SATA、SAS、SCSI、または USB フラッシュメモリ /dev/sda 2007 年頃から現在までに製造されたハードウェアで見られます。このデバイスハンドルはおそらく Linux 上でもっともよく使用されているものでしょう。この種のデバイスは SATA バスSCSIUSB バスを介してブロックストレージとして接続されます。例えば、最初の SATA デバイス上の最初のパーティションは /dev/sda1 という名前になります。
NVM Express (NVMe) /dev/nvme0n1 ソリッドステートテクノロジとして最新の NVMe ドライブは PCI Express バスに接続され、一般市場でもっとも高速な転送速度を持っています。2014 年頃以降のシステムは NVMe ハードウェアのサポートを備えているかもしれません。最初の NVMe デバイスの最初のパーティションは /dev/nvme0n1p1 という名前になります。
MMC、eMMC、および SD カード /dev/mmcblk0 embedded MMC デバイス、SD カード、そして他の種類のメモリーカードはデータ用のストレージとして有用です。つまり、多くのシステムはこれらの種類のデバイスからのブートを許可していないかもしれません。これらのデバイスに Linux をインストールして常用するのはおすすめできません。それらの設計目標である、ファイルの交換用に使うものと考えてください。短期バックアップとして使用すると便利かもしれません。

上のブロックデバイスは、ディスクへの抽象的なインターフェースを表しています。ユーザープログラムはこれらのブロックデバイスを用いて、デバイスが SATA、SCSI、もしくは他のものであるかどうかを心配することなしにディスクと通信することができます。プログラムは容易にディスク上の記憶領域を、ランダムアクセスできる 4096 バイト (4K) ごとの連続領域としてアドレッシングできます。


スライス

理論的にはディスク全体をLinuxシステムに使用することが出来ますが、実際にはほとんど行われません。その代わりに、ディスクブロックデバイス全体を小さく、より扱いやすいブロックデバイスに分割します。Alphaシステムでは、これはスライスと呼ばれます。

注意
これより先のセクションでは、インストールの説明でARC/AlphaBIOSのセットアップ用のパーティショニングを使用します。個人の好みに合わせて調整してください!

パーティション構成の設計

パーティション数とサイズ

ディスクのパーティションレイアウトの設計は、システムに対する要求と、デバイスに適用されるファイルシステムに大きく依存します。多数のユーザがいる場合、セキュリティを向上し、バックアップの作成とその他のメンテナンスを容易にするために、/home を分離されたパーティションに配置することが推奨されます。もし メールサーバとして動作する場合は、/var を分離されたパーティションとし、すべてのメールを /var ディレクトリに保存すべきでしょう。ゲームサーバでは、ほとんどのゲームサーバソフトウェアは /opt にインストールされるので、/opt を分離されたパーティションとすることができます。これらが推奨される理由は最初の /home ディレクトリと同様で、セキュリティ、バックアップ、そしてメンテナンスです。

Gentoo では多くの場合、/usr/var は相対的に大きい容量を確保すべきです。/usr にはシステム上で利用可能なアプリケーションの大部分と、Linux カーネルソース (/usr/src 配下) が配置されます。デフォルトでは、/var には Gentoo ebuild リポジトリが (/var/db/repos/gentoo 配下に) 配置され、ファイルシステム依存ではあるものの通常 650 MiB ほどのディスク容量を消費します。この推定容量には /var/cache/distfiles/var/cache/binpkgs ディレクトリは含まれていません。これらはそれぞれ、ソースファイルとバイナリパッケージ (使用している場合) を格納するディレクトリで、システムに追加すればするほど大きくなっていきます。

適切なパーティションの数とサイズは、システムを取り巻く環境と、トレードオフを考慮することで大きく変わります。パーティションやボリュームを分離することには下記の利点があります:

  • それぞれのパーティションまたはボリュームに対して、最も性能が高いファイルシステムを選択できます
  • ゾンビプロセスがパーティションまたはボリュームに継続的に書き込みをした場合でも、システム全体の空き領域を使い切ることはありません
  • 必要ならば、複数のチェックを並行して実行することで、ファイルシステムチェックの時間を短縮できます (複数のパーティションよりも複数のディスクの方が効果を実感できます)
  • リードのみ、nosuid(setuidビット無効)、noexec(実行ビット無効)等のマウントオプションによって、セキュリティが向上します


しかし、複数パーティションにはデメリットもあります:

  • もし適切に設定されていないと、あるパーティションが空き領域をたくさん持ち、別のパーティションにはまったく空き領域がなくなるといったことが起こり得ます。
  • /usr/ を独立したパーティションにすると、他のブートスクリプトが動作する前にパーティションをマウントするために、initramfs を使ってブートする必要があるかもしれません。initramfs の生成と保守はこのハンドブックのスコープの範囲外ですので、慣れていない方が /usr を独立したパーティションとすることは推奨しません。
  • SCSI や SATA では仕様上の制約により、GPT ラベルを使用しない限りは 15 個までしかパーティションを作れません。
Note
Systemd を使うつもりであれば、/usr/ はルートファイルシステムの一部とするか、または initramfs によりマウントされるようにして、ブート時に利用可能でなくてはなりません。

スワップ領域について

スワップ領域のサイズについて完璧な値というものはありません。スワップ領域の目的は、メインメモリ(RAM)が逼迫した際、カーネルにディスク領域を提供するためにあります。スワップ領域があれば、カーネルは最近最も使われていないメモリページをディスクに書き出し(スワップもしくはページアウト)、現在のタスクのために RAM 上に置かれたメモリを開放します。もちろん、もしディスクにスワップされたページが急に必要になった場合は、これらのページはメモリに戻す(ページイン)必要があります。これには、RAM から読み込むより相当長い時間がかかります(メインメモリと比較してディスクはとても遅いためです)。

システムがメモリを大量に消費するアプリケーションを実行しないとき、またシステムが多くの RAM を持っているときは、それほど大きいスワップ領域は必要ではありません。しかし、ハイバネーションの際に、スワップ領域はメモリの内容すべてを保存するために使われる(サーバシステムよりも、デスクトップやラップトップシステムでよくあることです)ことに留意してください。システムにハイバネーションのサポートが必要な場合は、メモリの全体量以上のサイズのスワップ領域が必要です。

一般的なルールとして、スワップ領域のサイズは内部メモリ (RAM) の 2 倍であることが推奨されます。複数のハードディスクを備えるシステムでは、並列して読み込み/書き込み操作が行えるように、それぞれのディスクに 1 つずつスワップパーティションを作成するのが賢い方法です。スワップ空間内のデータにアクセスしなくてはならないときに、ディスクがより高速にスワップできるほど、システムもより高速に動作するでしょう。回転式ディスクとソリッドステートディスクを比較すると、SSD 上にスワップを置いたほうが高いパフォーマンスが発揮できます。また、スワップパーティションの代わりにスワップファイルを使用することもできます。これは主にディスク容量が非常に限られたシステムで興味深いものです。


ディスクをパーティションに分けるのにfdiskを使う(SRMのみ)

以下のパートではSRM用に、この例のようなスライスレイアウトを作成する方法を説明します:

スライス 説明
/dev/sda1 スワップスライス
/dev/sda2 ルートスライス
/dev/sda3 フルディスク(必須)

スライスレイアウトはお好みで変更してください。

利用可能なディスクの特定

どのディスクがシステムで動作しているかを確認するためには、以下のコマンドを使用してください:

IDE ディスクの場合:

root #dmesg | grep 'drive$'

SCSI ディスクの場合:

root #dmesg | grep 'scsi'

出力では、どのディスクが検出されたか、そしてディスクに対応する/dev/の項目が表示されます。以下のパートではディスクは/dev/sdaにあるSCSIディスクであると仮定します。

そして fdisk を実行:

root #fdisk /dev/sda

すべてのスライスの削除

もしハードディスクが完全に空ならば、まずBSDディスクラベルを作成します。

Command (m for help):b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
A bunch of drive-specific info will show here
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

まず'c'-スライス(BSDディスクラベルを使用するのに必要)以外のすべてのスライスを削除することから始めます。以下で、どのようにスライスを削除するかを示しています(この例では'a'を使用します)。この作業を他のすべてのディスクにも行ってください(繰り返しますが、'c'-スライス以外です)。

pを使用して、存在するすべてのスライスを確認してください。dはスライスを削除するのに使います。

BSD disklabel command (m for help):p
8 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        1       235*      234*    4.2BSD     1024  8192    16
  b:      235*      469*      234*      swap
  c:        1      5290*     5289*    unused        0     0
  d:      469*     2076*     1607*    unused        0     0
  e:     2076*     3683*     1607*    unused        0     0
  f:     3683*     5290*     1607*    unused        0     0
  g:      469*     1749*     1280     4.2BSD     1024  8192    16
  h:     1749*     5290*     3541*    unused        0     0
BSD disklabel command (m for help):d
Partition (a-h): a

すべてのスライスに対してこの作業を行ったあと、一覧は以下のようになるはずです:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

スワップスライスの作成

Alphaベースのシステムでは独立したブートスライスを作成する必要はありません。しかしながら、最初のシリンダはabootイメージが置かれるため、使用することが出来ません。

3番目のシリンダより、合計サイズ1GBのスワップスライスを作成します。nを使用して新しいスライスを作成してください。スライスを作成したら、スライスのタイプを1(数字の一)、すなわちスワップに変更します。

BSD disklabel command (m for help):n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):t
Partition (a-c): a
Hex code (type L to list codes): 1

これらの段階を終えたら、レイアウトは以下のような感じになるはずです:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  c:        1      5290*     5289*    unused        0     0

ルートスライスの作成

それではルートスライスを、スワップスライスの最後のシリンダの次より作成します。pコマンドを使用して、スワップスライスの終了位置を確認してください。この例では、終了位置は1003ですので、ルートスライスを1004より作成します。

現在fdiskにはバグがあり、fdiskが、利用可能なシリンダ数が実際のシリンダ数よりも1多いと見なしている問題があります。言い換えると、最後のシリンダを指定する時、シリンダ数を1つ減らしてください(この例では5290)。

スライスを作成したら、タイプを8、つまりext2に変更します。

BSD disklabel command (m for help):n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):t
Partition (a-c): b
Hex code (type L to list codes): 8

結果的にスライスレイアウトはこのようになるはずです:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  b:     1004      5289      4286       ext2
  c:        1      5290*     5289*    unused        0     0

スライスレイアウトを保存し終了する

wを打ちfdiskを終了してください。この操作はスライスレイアウトの保存もします。

Command (m for help):w

ディスクをパーティションに分けるのにfdiskを使う(ARC/AlphaBIOSのみ)

以下のパートではARC/AlphaBIOS用に、この例のようなパーティションレイアウトを作成する方法を説明します:

パーティション 説明
/dev/sda1 ブートパーティション
/dev/sda2 スワップパーティション
/dev/sda3 ルートパーティション

パーティションレイアウトはお好みで変更してください。

利用可能なディスクの特定

どのディスクが動作しているかを確認するためには、以下のコマンドを使用してください:

IDE ディスクの場合:

root #dmesg | grep 'drive$'

SCSI ディスクの場合:

root #dmesg | grep 'scsi'

この出力から、どのディスクが検出されたか、そしてディスクに対応する/dev/の項目がどれかを確認するのは簡単なはずです。以下のパートではディスクは/dev/sdaにあるSCSIディスクであると仮定します。

そして fdisk を実行:

root #fdisk /dev/sda

すべてのパーティションの削除

もしハードディスクが完全に空ならば、まずDOSディスクラベルを作成します。

Command (m for help):o
Building a new DOS disklabel.

まずすべてのパーティションを削除することから始めます。以下で、どのようにパーティションを削除するかを示しています(この例では'1'を使用します)。この作業を他のすべてのパーティションにも行ってください。

pを使用して、存在するすべてのパーティションを確認してください。dはパーティションを削除するのに使います。

command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         478      489456   83  Linux
/dev/sda2             479        8727     8446976    5  Extended
/dev/sda5             479        1433      977904   83  Linux Swap
/dev/sda6            1434        8727     7469040   83  Linux
command (m for help):d
Partition number (1-6): 1

ブートパーティションの作成

MILOを使用して起動しているAlphaシステムでは、小さなvfatのブートパーティションを作成しなければなりません。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

スワップパーティションの作成

合計サイズ1GBのスワップパーティションを作成します。nを使用して新しいパーティションを作成してください。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

これらの段階を終えたら、レイアウトは以下のような感じになるはずです:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap

ルートパーティションの作成

それではルートパーティションを作成します。繰り返しますが、nコマンドを使用してください。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727

これらの段階を終えたら、レイアウトは以下のような感じになるはずです:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap
/dev/sda3             972        8727     7942144   83  Linux

パーティションレイアウトを保存し終了する

wを打ち、fdiskでの変更を保存してください。

Command (m for help):w

パーティションを作成したので、ファイルシステムを作成するに進んでください。



ファイルシステムを作成する

はじめに

パーティションが作成できたら、その上にファイルシステムを作成します。次の節ではLinuxがサポートする各種ファイルシステムを紹介します。どのファイルシステムを使うかをすでに決めているなら、パーティションにファイルシステムを適用するへ進みましょう。そうでなければ、次の節を読んで利用可能なファイルシステムについて知るのがよいでしょう。

ファイルシステム

Linux は多くのファイルシステムをサポートしていますが、それらの多くは特定の目的をもって配備するのが賢明なものです。特定のファイルシステムのみが alpha アーキテクチャ上で安定して動作するとされています - 重要なパーティションに実験的なファイルシステムを選択するときは、事前にファイルシステムのサポート状況を十分に知っておくことを推奨します。ext4 はすべてのプラットフォームで、すべての目的で推奨されるファイルシステムです。以下は、網羅的ではないリストです

btrfs
スナップショット、チェックサムによる自己修復、透過的圧縮、サブボリューム、RAIDの統合など、多くの先進機能を提供する次世代のファイルシステムです。いくつかのディストリビューションはこれをすぐに使えるオプションとして提供し始めていますが、未だ製品に使える状態ではありません。ファイルシステムが壊れたという報告はよくあります。開発者はユーザーに、安全のため最新のカーネルバージョンを使うようしきりに促しています。古いカーネルには既知の問題があるからです。この状況は何年も続いており、事態が変わってきたと判断するには早すぎます。問題への修正が古いカーネルにバックポートされることは滅多にありません。このファイルシステムを使う際は十分注意を払うようにしてください。
ext2
試練を受けた本当のLinuxファイルシステムですが、メタデータジャーナリングがないため、起動時に行われる毎回のext2ファイルシステムチェックは時間のかかるものになります。今ではジャーナルの効く新世代の、整合性を非常に素早くチェックできるファイルシステムの選択肢が数多くありますから、一般的にはそちらのほうが、ジャーナルの効かない対抗馬より好まれます。ジャーナルの効くファイルシステムは、システム起動の際たまたまファイルシステムに不整合があった場合の長い遅延を防いでくれます。
ext3
ジャーナルが有効になった ext2 ファイルシステムであり、full data及びordered dataジャーナリングといった強力なジャーナリングモードに加え、高速な修復のためのメタデータジャーナリングをサポートします。HTreeインデックスによって、ほぼすべての状況で高いパフォーマンスが可能になります。簡単にいえば、ext3 はとても優れた信頼できるファイルシステムです。
ext4
もともと ext3 のフォークとして作られた ext4 は、新機能、パフォーマンスの向上と、ディスク上でのフォーマットの適度な変更による、サイズ制限の撤廃を提供します。ボリュームは1EBまで広げることができ、最大のファイルサイズは16TBです。古典的なext2/3のbitmap block割当ての代わりに、ext4 はextentを使い、大きなファイルでのパフォーマンスを向上し、断片化を減らしています。ext4は他にもより洗練されたアロケーションアルゴリズム(遅延割当てと複数ブロック割当て)を提供し、ファイルシステムドライバーに、ディスク上のデータのレイアウトを最適化するより多くの方法を与えています。ext4 は推奨される、全目的、全プラットフォームのファイルシステムです。
f2fs
Flash-Friendly File Systemはもともと、SamsungによってNANDフラッシュメモリで利用するために作られました。2016年Q2現在、このファイルシステムはまだ未熟なものと思われますが、GentooをmicroSDカードやUSBスティックや他のフラッシュベースの記憶装置にインストールする際にはすばらしい選択でしょう。
JFS
IBMの高パフォーマンスジャーナリングファイルシステムです。JFSは軽量、高速かつ信頼できる、B+木ベースのファイルシステムで、様々な条件で良いパフォーマンスが出ます。
ReiserFS
B+木ベースのジャーナルが有効なファイルシステムで、全体的に良いパフォーマンスが出ます。特に、大量の小さなファイルを扱う際は、CPUサイクルを多く消費するものの、高いパフォーマンスを得ることができます。ReiserFSは他のファイルシステムと比べるとあまり保守されていないように思われます。
XFS
メタデータジャーナリングのあるファイルシステムで、堅牢な機能セットを持ち、スケーラビリティに最適化されています。XFSはどうやら、様々なハードウェアの問題に対してはあまり寛大ではないようです。
vfat
別名FAT32。Linuxでサポートされていますが、いかなるパーミッションの設定もサポートされていません。ほとんど、他のOS(主にMicrosoft Windows)との相互運用性のために使われていますが、いくつかのシステムファームウェア(たとえばUEFI)でも必要になります。
NTFS
この "New Technology" ファイルシステムは、Microsoft Windowsのフラッグシップファイルシステムです。上記のvfatと同様、BSDやLinuxが正しく動作するために必要なパーミッション設定や拡張属性を保持しないため、ルートファイルシステムとして使うことはできません。Microsoft Windowsとの相互運用のためにのみ使うべきです(「のみ」の強調に注意してください)。

パーティションにファイルシステムを適用する

パーティションまたはボリュームの上にファイルシステムを作成するには、ファイルシステムごとに異なるユーザースペースのユーティリティが利用可能です。下表でファイルシステムの名前をクリックすると、それぞれに追加の情報が得られます:

ファイルシステム 作成コマンド Minimal CD にある? パッケージ
btrfs mkfs.btrfs はい sys-fs/btrfs-progs
ext4 mkfs.ext4 はい sys-fs/e2fsprogs
f2fs mkfs.f2fs はい sys-fs/f2fs-tools
jfs mkfs.jfs はい sys-fs/jfsutils
reiserfs mkfs.reiserfs はい sys-fs/reiserfsprogs
xfs mkfs.xfs はい sys-fs/xfsprogs
vfat mkfs.vfat はい sys-fs/dosfstools
NTFS mkfs.ntfs はい sys-fs/ntfs3g

例えば、パーティション構造例の通りに、EFI システムパーティション(/dev/sda1)を FAT32 として、ルートパーティション(/dev/sda3)を ext4 として設定するには、次のコマンドが使えます:

root #mkfs.vfat -F 32 /dev/sda1
root #mkfs.ext4 /dev/sda3

ext4 を (8 GiB 未満の) 小さいパーティションに使用するときは、十分な inode 数を確保できるように適切なオプションを指定してファイルシステムを作成する必要があります。これは、各ファイルシステム毎に、以下のコマンドのうちのひとつを使用することで行えます:

root #mkfs.ext4 -T small /dev/<device>

上のコマンドは通常では、「inodeあたりのバイト数」を16kBから4kBに減らすので、ファイルシステムに4倍のinode数を確保できます。

それでは、新しく作成したパーティション(または論理ボリューム)にファイルシステムを作成しましょう。

スワップパーティションを有効にする

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

root #mkswap /dev/sda2

スワップパーティションを有効化するには、swaponを使います:

root #swapon /dev/sda2

上述のコマンドで、スワップを作成して有効化しましょう。

ルートパーティションのマウント

Tip
非 Gentoo インストールメディアを利用している場合、次を実行してマウントポイントを作成する必要があります:
root #mkdir --parents /mnt/gentoo

パーティションが初期化され、ファイルシステムを格納したので、それらのパーティションをマウントする時です。 mount コマンドを使用しますが、作成されたすべてのパーティションに必要なマウントディレクトリを作成することを忘れないでください。例として、 rootパーティションをマウントします。

root #mount /dev/sda3 /mnt/gentoo
Note
もし/tmp/を別のパーティションに置く必要があるなら、マウントしたあと権限の変更を忘れずに行ってください:
root #chmod 1777 /mnt/gentoo/tmp
/var/tmpについても同様です。

このあと解説の中で、proc ファイルシステム(仮想的なカーネルとのインターフェース)が、他のカーネル擬似ファイルシステムと同様にマウントされますが、まず最初は、Gentooインストールファイルをインストールします。





stage tarballをインストールする

日時を設定する

Gentoo をインストールする前に、日付と時刻が正しく設定されていることを確認するといいでしょう。時刻が正しく設定されていないと、インストールに関するおかしな問題につながるかもしれません。例えば、ベースシステムのファイルは、タイムスタンプを正確に保ったまま展開されるべきです。実際、Gentoo のウェブベースのサービスではセキュリティ証明書を利用しているため、システム時刻があまりにもずれていると、インストール用ファイルをまったくダウンロードできないということもありえます。インストールを進めるには、正確な時計が前提条件となります。

date コマンドを実行して、現在の日付と時刻が正しいか確認してください。

root #date
Mon Oct  3 13:16:22 PDT 2021

表示された日時が 2、3 分以上ずれている場合は、正確を期すため、以下に示す方法のうちいずれかに従って更新してください。

自動

ほとんどの読者は、タイムサーバを利用してシステムに自動で時刻を更新させることを望むでしょう。

Important
一部のマザーボードは、システムの電源がオフになっている間も比較的正確な時刻を保つための、リアルタイムクロック (RTC) を搭載していないことがあります。これらのシステムでは、システム起動のたびに、そしてその後定期的に、システム時刻を時刻サーバと自動的に同期するように設定するのがとても重要です。これは RTC を搭載しているけれど、バッテリーがだめになってしまったシステムについても、同様に重要です。

公式 Gentoo live 環境には、ntpd コマンド (net-misc/ntp パッケージを通して利用可能です) と、ntp.org 時刻サーバを指定した設定ファイルも含まれています。これによって、時刻サーバを利用して、システム時刻を UTC 時刻と自動で同期することができます。この方法はネットワーク設定を必要とし、アーキテクチャによっては利用できないかもしれません。

Warning
自動時刻同期によって犠牲になるものもあります。例えば、システムのIPアドレスや、関連するネットワークの情報が、時刻サーバ(下の例では ntp.org)に明らかにされます。プライバシーが心配なユーザーは、下記の方法でシステム時刻を設定する前に、このことを理解しておくべきです。
root #ntpd -q -g

手動

タイムサーバにアクセスできないシステムについては、date コマンドをシステム時刻を手動設定するのにも使えます。引数として、次のフォーマットを使います: MMDDhhmmYYYY 形式 (Month (月)、Day (日)、Hour (時)、minute (分)、Year (年))。

すべての Linux システムでは UTC で時刻を設定することが推奨されます。タイムゾーンはインストール中にあとで設定します。タイムゾーンを設定すると、時刻の表示がローカル時刻に切り替わります。

例えば、2021年の10月3日 13時16分に設定するには、以下を実行してください:

root #date 100313162021

stage tarballを選択する

Note
すべてのアーキテクチャが multilib オプションを持っているわけではありません。多くは、ネイティブコードでしか動作しません。multilib が最もよく適用されているのは amd64 です。

multilib (32ビットと64ビット)

ベースとなるtarballを適切に選ぶことで、この後に続くインストールプロセスの相当な時間を短縮できます。特に適切なプロファイルを選ぶで効果があります。ステージtarballの選択はこの後のシステム設定に直接影響し、頭痛の種もしくはtwo later on down the lineを減らします。multilib tarballは64ビットのライブラリを使えるときはそれを使用し、互換性を必要とする場合は32ビットのライブラリを使用します。これはインストールされるほとんどのソフトにとってすばらしい選択肢となります。プロファイルを簡単に変更できるシステムが必要な場合は、そのプロセッサアーキテクチャにあったmultilib tarballをダウンロードしなければなりません。

大部分のユーザは、'advanced'なtar ballを選択すべきではありません。これらは特定のソフトウェアもしくはハードウェアのみに必要です。

非multilib (64ビットのみ)

システムのベースとして非multilibのtarballを選択することで、完全な64ビット環境を構築できます。これは事実上、multilibプロファイルへの変更を(可能ではありますが)困難にします。

警告
非mutilibを必要とする明確な理由がなく、単にGentooを使いたいというケースでは、非multilibを選択すべきではありません。非multilibからmutilibシステムへの変更は、Gentooの深い知識と低レベルのツールチェーンが必要です(これはおそらく私たちのToolchain developersを身震いさせるでしょう)。これは気の弱い人への警告ではなく、このガイドの範囲外になるということです。

OpenRC

OpenRC は依存関係に基づく init システム (カーネルが起動した後にシステムサービスを開始するためのシステム) で、通常は /sbin/init にある、システムが提供する init プログラムとの互換性を保っています。Gentoo に由来するオリジナルの init システムですが、他の一部の Linux ディストリビューションや BSD システムでも採用されています。

OpenRC はデフォルトでは /sbin/init ファイルの代替としては機能せず、Gentoo の init スクリプトとは完全な互換性があります。つまり、Gentoo ebuild リポジトリにはデーモンを起動するソリューションがあるということです。

純粋に歴史的理由から、本マニュアルでは OpenRC を使ったインストールと構成設定にのみ着目します。systemd インストールを説明するための書き換え、改良 (下記参照) も計画されています。

systemd

systemd は SysV スタイルの init と rc の、Linux システム向けの現代的な代替です。Linux ディストリビューションの大多数では、第一の init システムとして使用されています。systemd は Gentoo で完全にサポートされており、その意図した目的に合うように動作します。残念なことに、システムに関連するインストールハンドブックのセクションは、書き換えがまだ行われていないか、現在作業中です。もし systemd インストールパスについて、何かがハンドブックから欠けているようであれば、助けを求める前に systemd の記事を確認してください。

Note
Gentoo がインストールされたシステムを OpenRC から systemd に、あるいはその逆に変更することは、技術的には可能です。しかし、変更には多大な労力が必要で、このインストールマニュアルの範囲外です。stage tarball をダウンロードする前に、OpenRC または systemd のどちらをターゲット init システムとして利用するか決定して、対応する stage tarball をダウンロードしてください。

stage tarball をダウンロードする

ルートファイルシステムがマウントされている場所、Gentooのマウントポイント(おそらく/mnt/gentoo)に移動してください。

root #cd /mnt/gentoo

グラフィカルブラウザ

完全なグラフィカルウェブブラウザがある環境を使っているひとには、stageファイルのURLをメインウェブサイトのダウンロードセクションからコピーするのに何の問題も無いでしょう。単純に適切なタブを選択して、stageファイルへのリンクを右クリックして、Copy Linkしてクリップボードにリンクをコピーして、コマンドライン上でwgetユーティリティにリンクをペーストして、stage tarballをダウンロードします。

root #wget <PASTED_STAGE_URL>

コマンドラインブラウザ

伝統的な読者や'古参'の Gentoo ユーザで、コマンドラインのみで作業をする人たちは、グラフィカル環境を必要としないメニュー形式のブラウザである links (www-client/links) を使うほうを好むかもしれません。stage をダウンロードするために、Gentoo ミラーリストに飛んでください。

root #links https://www.gentoo.org/downloads/mirrors/

linksでHTTPプロキシを使うには、-http-proxyオプションにプロキシのURLを渡してください。

root #links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/

links に似た lynx (www-client/lynx) というブラウザもあります。links と同じくグラフィカル環境を必要としませんが、メニューはありません。

root #lynx https://www.gentoo.org/downloads/mirrors/

プロキシを定義する必要があるならば、http_proxyftp_proxy変数をexportしてください。

root #export http_proxy="http://proxy.server.com:port"
root #export ftp_proxy="http://proxy.server.com:port"

ミラーリストから、近くのミラーを選んでください。通常はHTTPミラーで十分ですが、他のプロトコルも使えます。releases/alpha/autobuilds/ ディレクトリに移動してください。入手可能なすべてのstageファイルが列挙されています。ファイルは、サブアーキテクチャにちなんだ名前のサブティレクトリの中にあることもあります。ファイルを選び、dを押してダウンロードしてください。

stageファイルのダウンロードが完了したら、整合性を検証してstage tarballのコンテンツが正当か確認することができます。興味のあるひとは次節へ進んでください。

stageファイルの検証と確認に興味が無いひとは、qを押すことでコマンドラインブラウザを終了して、stage tarball を展開する節へすぐに進むことができます。

検証して確認する

Note
今では、ほとんどの stage は init システムの種類に応じて明示的に (openrc または systemd と) 接尾辞が付けられていますが、アーキテクチャによっては、これらがまだ無いものもあります。

MinimalインストールCDのときと同じく、stageファイルを検証して確認するためのファイルもダウンロードすることができます。これらの手順は飛ばしてもかまいませんが、ダウンロードしたファイルの妥当性を気にするユーザのためにこれらのファイルが提供されています。

  • stage tarball内のファイル一覧を含む.CONTENTSファイル。
  • stage ファイルの各種アルゴリズムでのチェックサムを含む.DIGESTSファイル。
  • .DIGESTSと同様にstageファイルの各種アルゴリズムでのチェックサムを含み、それがGentooプロジェクトから提供されたものであることを保証するために電子署名された.DIGESTS.ascファイル。

opensslを使って、その出力を.DIGESTS.DIGESTS.ascファイルに含まれるチェックサムと比較してください。

例えば、SHA512チェックサムを検証するには以下を入力します。

root #openssl dgst -r -sha512 stage3-alpha-<release>-<init>.tar.?(bz2|xz)

sha512sumコマンドを使う方法もあります。

root #sha512sum stage3-alpha-<release>-<init>.tar.?(bz2|xz)

Whirlpoolチェックサムを検証する場合は以下を入力します。

root #openssl dgst -r -whirlpool stage3-alpha-<release>-<init>.tar.?(bz2|xz)

これらのコマンドの出力を.DIGESTS(.asc)ファイルに記録されている値と比較してください。これらの値は合致している必要があります。合致していないのなら、ダウンロードしたファイルか、ダイジェストファイルが壊れているかもしれません。

ISOファイルと同様に、チェックサムが改竄されていないことを確認するために、gpgを使って.DIGESTS.ascファイルの電子署名を検証することもできます:

root #gpg --verify stage3-alpha-<release>-<init>.tar.?(bz2|xz){.DIGESTS.asc,}

リリースメディアに署名するのに使用された OpenPGP 鍵のフィンガープリントは、Gentoo ウェブサーバのリリースメディアの署名ページで確認できます。

stage tarball を展開する

ここで、ダウンロードした stage を解凍しましょう。tar ユーティリティを使ってください:

root #tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner

上のコマンドと同じオプション (xpf--xattrs-include='*.*') を使っていることを確認してください。xは展開(extract)を示し、pはパーミッションを保持(preserve)すること、fは処理対象が標準入力ではなくファイル(file)であることを示しています。--xattrs-include='*.*'は、アーカイブに保存されている拡張属性をすべての名前空間について保持し含めることを示しています。最後の--numeric-ownerは、たとえ冒険的なユーザが公式 Gentoo live 環境を使わずに作業をしている場合であっても、tarballから展開されるファイルのユーザIDとグループIDがGentooリリースエンジニアリングチームの意図通りに保たれることを、確実にするためのものです。

これでステージファイルは展開されました。この続きはコンパイルオプションを設定するで。

コンパイルオプションを設定する

はじめに

システムを最適化するために、Portage(Gentooの公式なパッケージマネージャ)の挙動に影響する変数を設定できます。これらの変数はすべて環境変数として(exportを使って)設定できますが、export による設定は永続的なものではありません。

Note
シェルのプロファイルまたは rc ファイルを利用して変数を export することは技術的には可能ですが、これは基本的なシステム管理の方法としてはベストプラクティスではありません。

Portage は実行時に /etc/portage/make.conf を読み、ファイルに保存された値に基づいて実行時の振る舞いを変えます。make.conf は Portage の第一の設定ファイルと見ることができますので、その内容には注意して取り扱ってください。

注意
/mnt/gentoo/usr/share/portage/config/make.conf.exampleに、すべての利用可能な変数のリストが、コメント付きで記載されています。make.conf についてのさらなるドキュメンテーションは、man -LC 5 make.conf を実行することで確認できます。(訳注: 日本語版は 10 年以上更新されていません。-LC を付けて最新の英語版を参照してください。)

Gentoo のインストールを成功させるために最低限設定する必要がある変数は、以降で示すものだけです。

これから詳しく見ていく最適化変数を設定するために、エディタ(このガイドではnanoを使います)を起動してください。

root #nano -w /mnt/gentoo/etc/portage/make.conf

make.conf.example ファイルを読めば、記述形式は分かるでしょう。コメント行は # で始まり、他の行は「変数="内容"」の形式で変数を定義します。これらの変数のうちのいくつかについて、次の節で見ていきます。

CFLAGS と CXXFLAGS

CFLAGSCXXFLAGS変数はそれぞれ、GCC CコンパイラとC++コンパイラのための最適化フラグを定義します。この2つの変数は通常ここで定義されますが、真に最高のパフォーマンスを発揮するためには、このフラグはプログラム毎に別々に設定する必要があるでしょう。すべてのプログラムは異なるからです。しかし、それでは管理が大変なので、make.confファイルでこれらのフラグを定義します。

make.confでは、一般にシステムの応答が速くなるように最適化フラグを設定するべきです。この変数に実験的な設定を書かないでください。過剰な最適化はプログラムの挙動をおかしくすることがあり、クラッシュや誤動作の元となります。

ここではすべての最適化オプションを説明することはしません。すべてを理解するためには、GNUオンラインマニュアルやGCC infoページ(info gcc - Linuxシステムでのみ使えます)を読んでください。make.conf.exampleファイルにはたくさんの設定例と情報が含まれているので、これを読むこともお忘れなく。

最初の設定は-march=または-mtune=フラグです。これはターゲットアーキテクチャの名前を指定します。可能な選択肢はmake.conf.exampleファイル内にコメントとして書かれています。nativeを指定すると、コンパイラは(Gentooをインストールしようとしている)現在のシステムのアーキテクチャをターゲットとして選択してくれるので、よく使われます。

ふたつめの設定は-Oフラグ(ゼロではなく大文字のオー)です。これはgcc最適化クラスフラグを指定します。可能なクラスは、s(サイズ最適化)、0(ゼロ、最適化無し)、1、2、3(速度最適化)です。速度最適化については、各クラスは1段階前のクラスが持つものと同じフラグに加えて、追加のフラグを持ちます。-O2は推奨されるデフォルト設定です。-O3をシステム全体で使うと問題を起こすことが知られているので、-O2にとどめることをおすすめします。

他によく使われる最適化フラグには-pipeがあります。これは、コンパイルステージ間での連絡方法として、一時ファイルではなくパイプを使うよう指定します。生成されるコードには影響しませんが、より多くのメモリを使うようになります。メモリの少ないシステムでは、gccが強制終了するかもしれません。そのような場合には、このフラグは使わないでください。

-fomit-frame-pointerを使うと、必要の無い場合にはフレームポインタをレジスタに保持しなくなります。これはアプリケーションのデバッグ時に深刻な影響を与えるかもしれません。

CFLAGSCXXFLAGS変数を定義するときには、最適化フラグは1つの文字列として結合してください。stage3アーカイブから解凍したデフォルト値で十分でしょう。以下に例を示します:

CODE CFLAGSCXXFLAGS変数の設定例
# すべての言語において設定するコンパイラフラグ
COMMON_FLAGS="-mieee -pipe -O2 -mcpu=ev6"
# 同じ設定を両方の変数に使用
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Tip
各種コンパイルオプションがどのようにシステムに影響するかについてはGCCの最適化の記事に詳しい情報がありますが、初心者がシステムの最適化を始めるにはSafe CFLAGSの記事のほうがもっと実践的な場所かもしれません。

MAKEOPTS

MAKEOPTS 変数は、パッケージのインストール時にどれだけ並行してコンパイルを走らせるかを定義します。CPU のスレッド数か、システム全体の RAM を 2 GiB で割った数のうち、小さい方を選択するのがよい選択とされています。

Warning
ジョブ数を大きくすると、メモリ使用量にきわめて大きな影響を及ぼします。目安は、指定したジョブ数の各ジョブに対し、最低 2 GiB の RAM が割り当てられるようにすることです (つまり、例えば -j6最低でも 12 GiB を要求します)。メモリが枯渇しないようにするには、利用可能なメモリ容量に合うようにジョブ数を減らしてください。
Tip
並列 emerge を使用する (--jobs) と、実効的なジョブ数が指数関数的に (make ジョブ数 × emerge ジョブ数まで) 増大することがあります。これに対しては、localhost-only distcc 構成によって、ホスト当たりのコンパイラインスタンス数を制限することで対処することができます。
CODE make.confのMAKEOPTSの設定例
MAKEOPTS="-j2"

よーい、ドン!

好みの設定に合わせて/mnt/gentoo/etc/portage/make.confを変更し、保存してください。nanoではCtrl+xで保存できます。

それではGentooベースシステムのインストールに進んでください。





chroot する

任意自由選択: ミラーサーバーを選択する

ファイルの配布

Tip
非 Gentoo インストールメディアを利用している場合、このステップは飛ばしても大丈夫です。後で (新しい環境に入った後で) stage3 の中で app-portage/mirrorselect パッケージを emerge することができ、その後、この節で示す操作を行うことができます。

ソースコードを短時間でダウンロードするために、速いミラーを選択することをお薦めします。Portageはmake.confの中のGENTOO_MIRRORS変数に指定されたミラー群を使用します。Gentooのミラー一覧から、インストール対象のマシンから物理的に最も近い一つ、もしくは複数のミラーを選択することができます(これらは高い頻度で最も高速になり得ます)。しかし、Gentooはmirrorselectという良いツールを提供しています。このツールは必要なミラーを選択するためによいユーザーインターフェースを提供できます。単純に選択可能なミラーが表示され、Spacebarを押せば、一つもしくは複数のミラーを選択できます。

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Gentoo ebuild リポジトリ

ミラーを選択するために次に重要なステップは、/etc/portage/repos.conf/gentoo.confファイルでGentoo ebuildリポジトリを設定することです。このファイルはパッケージリポジトリを更新するときに必要になる同期情報を含んでいます(パッケージリポジトリは、Portageがソフトウェアパッケージをダウンロード、インストールする時に必要なすべての情報を含むebuildと関連ファイルを集めたものです)。

リポジトリの設定は単純な数ステップでできます。最初に(それが存在しなければ)repos.confディレクトリを作成します。

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

次に、Portageが提供するGentooリポジトリ設定ファイルを(新規作成した)repos.confディレクトリにコピーします。

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

エディタで覗き見するか、catコマンドを使いましょう。そのファイルは.iniフォーマットで、以下のような記述になっているはずです。

FILE /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4

上に記載されているデフォルトのsync-uri変数は、ローテーション可能なミラーの場所を決めています。これはGentooインフラストラクチャーの帯域にかかるストレスを軽減することに役立ち、また特定のミラーがオフラインになっている場合のバックアップとなります。よって、デフォルトのURIは、ローカルのプライベートPortageミラーを使わない限り、そのままにしておくことが推奨されます。

Tip
Portage の plug-in sync API の仕様は、Portage Sync の記事にあります。

DNS 情報をコピーする

新しい環境に入る前に一つだけやるべきことが残っています。それは/etc/resolv.confに記載されているDNS情報をコピーすることです。これは新しい環境に入った後でネットワークを使うために必要です。/etc/resolv.confは、そのネットワークのネームサーバーの情報を含んでいます。

この情報をコピーするときは、cpコマンドに--dereferenceオプションを付与することを推奨します。これは/etc/resolv.confがシンボリックリンクのときに、シンボリックリンクをコピーするのではなく、シンボリックリンクのリンク先の実ファイルをコピーします。そうしないと新しい環境でシンボリックリンクが存在しないファイルを指し示すでしょう(新しい環境では、元の環境でリンク先に指定していたファイルはほぼ利用できません)。

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

必要なファイルシステムをマウントする

もう少しで、Linuxルートは新しい場所に変わります。新しい環境を適切に動作させるために、いくつかのファイルシステムを使えるようにしなければなりません。

使えるようにしなければならないファイルシステムは以下の通りです。

  • /proc/ はLinuxカーネルから情報を引き出すための擬似ファイルシステムです(一見通常ファイルに見えますが、ファイルとしての実体はありません)。
  • /sys//proc/同様、擬似ファイルシステムです。/proc/より構造化されており、一度は/proc/を置き換えることを目的としていました。
  • /dev/は通常のファイルシステムです。一部はLinuxのデバイス管理機構(通常はudev)により管理されており、すべてのデバイスファイルを含んでいます。
  • /run/ は一時ファイルシステムです。PID ファイルやロックなど、実行時に生成されるファイルのために使用されます。

/proc/は、/mnt/gentoo/proc/にマウントされるでしょう。他はbindマウントされます。後者は、例えば/mnt/gentoo/sys/は事実/sys/となります(同じファイルシステムへの2番目のエントリです)。ここで/mnt/gentoo/proc/はファイルシステムの新しいエントリ(インスタンスとも言えるでしょう)となります。

root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
root #mount --bind /run /mnt/gentoo/run
root #mount --make-slave /mnt/gentoo/run
注意
インストールの後半で出てくるsystemdを使う場合、--make-rslaveが必要です。
Warning
Gentoo以外のインストールメディアを使う場合、これだけでは十分ではない場合があります。いくつかのディストリビューションは/run/shm/へのシンボリックリンクとして/dev/shmを作りますが、これはchroot後に無効になってしまいます。これに対応するためには、/dev/shm/をtmpfsとして適切にマウントしておくことが必要です:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

そして確実にモード1777に設定してください:

root #chmod 1777 /dev/shm /run/shm

新しい環境に入る

ようやく、すべてのパーティションが初期化され、ベース環境がインストールされました。chroot を実行して新しいインストール環境に入りましょう。これは、セッションの root (アクセスできる最も上位レベルの場所) を、現状のインストール環境 (インストール CD もしくは他のインストールメディア) から、インストール対象システム (つまり初期化されたパーティション) に変更することを意味しています。これが change root もしくは chroot の意味です。

chrootは次の3ステップで実行されます。

  1. chrootコマンドによって、最上位ディレクトリを(インストールメディアの)/から(パーティションをマウントしている)/mnt/gentoo/に変更する。
  2. /etc/profileのいくつかの設定をsourceコマンドでリロードする。
  3. chroot環境であることを忘れないようするために、シェルのプロンプトを変更する。
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

この時から、すべての操作は新しいGentoo Linux環境で実行されます。もちろん、まだゴールには程遠いです。その証拠にまだいくつもの章が残っていますよね!

Tip
これ以降の時点で Gentoo インストールを中断しても、インストール作業をこのステップから「再開」することができるようになっているはずです。ディスクをまたパーティショニングする必要はありません!ただ単にルートパーティションをマウントして、上のステップを DNS 情報をコピーするところから実行すれば、作業中の環境に再び入ります。ブートローダの問題を解決するのにもこれが役に立ちます。さらなる情報は chroot の記事にあります。

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

新環境に入った今、ブートパーティションをマウントする必要があります。このことはカーネルをコンパイルするときとブートローダをインストールするときに重要な意味を持ちます。

root #mount /dev/sda1 /boot

Portageを設定する

Web から Gentoo ebuild リポジトリのスナップショットをインストールする

次にGentoo ebuildリポジトリのスナップショットをインストールします。このスナップショットには、インストール可能なパッケージの情報、システム管理者が選択するプロファイルの一覧、パッケージやプロファイルごとのお知らせなどをPortageに伝えるファイルが含まれます。

ここで紹介するemerge-webrsyncは、HTTP/FTPプロトコル以外でのダウンロードがファイアウォールで制限されるような環境や、ネットワーク帯域を節約したい場合にお薦めです。これらの制約がなければ、この手順は省いて次のセクションに進んでも構いません。

次のコマンドで、毎日更新される最新のスナップショットをGentooのミラーサイトから取得し、インストールします:

root #emerge-webrsync
注意
この作業中、emerge-webrsync/var/db/repos/gentoo/ がない旨のメッセージを出すかもしれません。これは想定内で、心配することはありません。このディレクトリは自動的に作成されます。

この時点で、Portageはいくつかのアップデートが推奨されていることを通知するかもしれません。これは、stageファイルでインストールされたシステム関連のパッケージについて、より新しいバージョンが利用可能であることを示しています。今回新しいリポジトリスナップショットがインストールされたことで、Portageがそれを認識したのです。このメッセージは今のところは無視して、Gentooのインストールが完了してから対応しても問題ありません。

任意自由選択: Gentoo ebuildリポジトリを更新する

Gentoo ebuildリポジトリを最新版にアップデートできます。先のemerge-webrsyncコマンドはほぼ最新の(通常は24時間以内に作成される)スナップショットをインストールするため、このステップは本当に任意です。

最新(一時間以内)のパッケージ更新があるかもしれません。その更新を取り込むためにemerge --syncを実行しましょう。このコマンドはGentoo ebuildリポジトリ(先程emerge-webrsyncコマンドで取得したもの)をアップデートするためにrsyncプロトコルを使用します。

root #emerge --sync

アップデートの時間を短縮するために、特定のフレームバッファもしくはシリアルコンソール等の遅いターミナルでは、--quietオプションを使うことをお薦めします。

root #emerge --sync --quiet

ニュースを読む

Gentoo ebuildリポジトリの更新時、Portage が次のような情報メッセージを出すことがあります。

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

ニュース項目は、Gentoo ebuild リポジトリを通じて、ユーザーに重要なメッセージを通知するためのコミュニケーション手段です。これらニュース項目を管理するためにeselect newsを使用します。eselectはGentooに固有のユーティリティで、システム管理のための共通の管理インターフェースを提供します。この場合、eselectnewsモジュールを使うことを指示されます。

newsモジュールに対しては、主に3つの操作が使用されます。

  • listを指定すると、現在有効なニュースアイテムの概要が表示されます。
  • readを指定すると、そのニュースアイテムを読むことができます。
  • purgeを指定すると、一度購読したニュースを削除することができます。これにより、それらのニュースを二度と目にすることはないでしょう。
root #eselect news list
root #eselect news read

ニュースリーダーに関するほとんどの情報はマニュアルページを通じて得ることができます。

root #man news.eselect

適切なプロファイルを選ぶ

プロファイルはあらゆるGentooシステムの基礎を構成します。プロファイルはUSECFLAGS等の重要な変数の初期値を決めるだけではありません。プロファイルは、パッケージのバージョンを決まった範囲に固定する役目を持っています。プロファイルはGentooのPortage開発者によって完全にメンテナンスされています。

現在使用中のプロファイルを確認するには、eselectprofile モジュールを指定して実行してください:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/alpha/ *
  [2]   default/linux/alpha//desktop
  [3]   default/linux/alpha//desktop/gnome
  [4]   default/linux/alpha//desktop/kde
注意
コマンドの出力は一例で、常に更新されています。
Note
systemd を使用する場合は、プロファイル名が systemd を含んだものであるか確認してください。そうでない場合は、プロファイル名が systemd を含んでいないものであるか確認してください。

上の例の通り、いくつかのアーキテクチャではデスクトップ向けのサブプロファイルが見られるでしょう。

Warning
プロファイルのアップグレードは軽々と行われるものではありません。初期プロファイルを選択する時、確実にstage3がはじめに使用していたものと同じバージョン(例えば)を使用してください。新しいプロファイルのバージョンは、移行方法を含むニュース項目を通して発表されます。新しいプロファイルに移行する前に、確実にそのニュース項目を読み、説明に従ってください。

alphaアーキテクチャで利用可能なプロファイルを確認後、別のプロファイルを選択できます。

root #eselect profile set 2



Note
developerサブプロファイルはGentoo Linux開発向けの固有のプロファイルであり、通常のユーザーが使用するものではありません。

@worldの更新

この時点で、@world setをアップデートするとよいでしょう。それによりベースシステムが構築されます。

このステップは必須で、これによってシステムはアップデートや、stage3が構築された時やプロファイルの選択以降のUSEフラグの変更を適用できます。

root #emerge --ask --verbose --update --deep --newuse @world
Tip
フルスケールのデスクトップ環境を選択した場合、このプロセスはインストール時間を格段に長くしてしまうかもしれません。時間に追われている人は次の経験則が成り立つでしょう。「名前が短く、特定のシステムを示さないプロファイルの@world setを選択する」、「もっとも一般的な@worldセットは、より少ないパッケージのアップデートですむ」。別の言い方をすると、
  • default/linux/amd64/を選択すると、パッケージのアップデートは少なくてすみます。
  • default/linux/amd64//desktop/gnome/systemdを選択すると多くのパッケージがインストールされます。なぜなら、initシステムがOpenRCからsystemdに変更され、GNOMEのデスクトップ環境がインストールされるためです。

USE変数を設定する

USEは、Gentooがユーザに提供する最もパワフルな変数の一つです。多くのプログラムに対して、決められた追加機能を含めたり、もしくは含めずにコンパイルすることが可能です。例えば、いくつかのプログラムはGTK+サポートもしくはQtサポートを有効にしてコンパイルできます。別のプログラムにはSSLサポートを含めたり、もしくは含めずにコンパイルすることが可能です。いくつかのプログラムはX11サポート(Xサーバー)の代わりに、フレームバッファサポート(svgalib)と共にコンパイルできます。

多くのディストリビューションでは、各種のサポートを最大限含むようにコンパイルします。これはプログラムサイズと起動時間を増大させます。多くの依存関係を発生させることは言うまでもありません。Gentooでは、ユーザーはパッケージをコンパイルする時のオプションを定義できます。ここでUSEが登場します。

USE変数を使って、ユーザーはコンパイルオプションにマップされるキーワードを指定します。例えば、sslキーワードはSSLをサポート可能なプログラムでSSLを有効にしてコンパイルします。-XキーワードはXサーバーのサポートを含まない(最初のマイナス記号で指定)ようにコンパイルします。gnome gtk -kde -qt5は、GNOME(とGTK+)サポートを有効にして、KDE(とQt)サポートを無効にします。これにより、(もし、アーキテクチャがGNOMEをサポートしていれば)システムはGNOME向けに最大限調整されます。

デフォルトのUSEの設定は、システムによって使用されるGentooプロファイルのmake.defaultsファイルに記述されています。Gentooはプロファイルをサポートするために、(複雑な)継承システムをサポートします。これにより今の段階でUSEの詳細に立ち入る必要はありません。現在有効なUSE設定を知るためのもっとも簡単な方法は、emerge --infoを実行してUSEで始まる行を抜き出すことです。

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
注意
上記の例は出力のほとんどを省略しています。実際には、USE 変数のリストはずっとずっと長いものです。

使用可能なUSEフラグの完全な記述は、/var/db/repos/gentoo/profiles/use.descにあります。

root #less /var/db/repos/gentoo/profiles/use.desc

lessコマンドでは、キーとキーを使ってスクロールすることができます。qを押すと終了します。

例として、DVD、ALSA、CD書き込みをサポートしたKDEベースのUSE設定を示します。

root #nano -w /etc/portage/make.conf
FILE /etc/portage/make.confDVD、ALSA、CD書き込みをサポートしたKDE/Plasmaベースのフラグ設定
USE="-gtk -gnome qt5 kde dvd alsa cdr"

/etc/portage/make.confUSE の値を定義すると、その値はシステムの USE フラグリストに追加されます。USE フラグは、リスト中の値の前に - マイナス記号を追加することで、グローバルに削除することができます。例えば、X グラフィカル環境のサポートを無効化するには、-X を設定することでこれを行えます:

FILE /etc/portage/make.confデフォルトのUSEフラグを無視する
USE="-X acl alsa"
警告
-* を指定することで、make.conf 内で指定したもの以外のすべての USE 値を無効化することができますが、これはまったくおすすめできない、賢明でないことです。Ebuild の開発者たちは、競合を防止するため、セキュリティを向上させるため、エラーを回避するため等の理由によって、デフォルトの USE フラグを選択して ebuild で指定しています。すべての USE フラグを無効化することはデフォルトの振る舞いを否定し、重大な問題を引き起こすことがあります。

CPU_FLAGS_*

一部のアーキテクチャ (AMD64/X86、ARM、PPC を含みます) には、CPU_FLAGS_ARCH (ARCH は関連するシステムアーキテクチャに適切に置き換えてください) と呼ばれる USE_EXPAND 変数があります。

This is used to configure the build to compile in specific assembly code or other intrinsics, usually hand-written or otherwise extra, and is not the same as asking the compiler to output optimized code for a certain CPU feature.

これをセットアップするにはいくつかのステップが必要です:

root #emerge --ask app-portage/cpuid2cpuflags

興味があるなら、出力を自分で確認してみてください:

root #cpuid2cpuflags

そして、出力を package.use にコピーしてください:

root #echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

VIDEO_CARDS

利用できる GPU に応じて、VIDEO_CARDS USE_EXPAND 変数を適切に構成するとよいでしょう。これを行う方法は Xorg ガイドでカバーされています。コンソールのみのシステムの場合は、VIDEO_CARDS を設定する必要はありません。

追加可能: ACCEPT_LICENSE 変数を設定する

ある Gentoo パッケージのライセンスは、その ebuild 内の LICENSE 変数に保持されています。 システムが受諾する特定のライセンスやライセンスのグループは、次のファイル内で定義されます

  • プロファイルによって、システム全体で
  • /etc/portage/make.conf によって、システム全体で
  • /etc/portage/package.license によって、パッケージ単位で。

Portage は、どのパッケージのインストールを許可するか判断するために、ACCEPT_LICENSE を検索します。 システム全体での現在の設定値を表示するには、以下を実行してください:

user $portageq envvar ACCEPT_LICENSE
@FREE

必要であれば、/etc/portage/make.conf を変更することで、プロファイル内でシステム全体として受諾されているデフォルトを上書きしてください。

FILE /etc/portage/make.confシステム全体で ACCEPT_LICENSE でライセンスを受諾する方法の例
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"

必要であれば、この例で示すように、パッケージごとに受諾するライセンスを定義することもできます:

FILE /etc/portage/package.license/kernelライセンス承諾の例
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
Important
ebuildのLICENSE変数はGentooの開発者やユーザにとってのガイドラインでしかありません。これは法的声明ではなく、これが現実を反映する保証はありません。したがってLICENSE変数を信用するのではなく、パッケージそのものを、あなたが使用するすべてのファイルを含めて徹底的にチェックしてください。

Gentooリポジトリによって定義され、Gentooライセンスプロジェクトによって管理されているライセンスグループは以下の通りです:

グループ名 説明
@GPL-COMPATIBLE フリーソフトウェア財団[a_license 1]によって承認されたGPL compatible license群
@FSF-APPROVED FSF(訳注:フリーソフトウェア財団)によって承認されたフリーソフトウェアライセンス群(@GPL-COMPATIBLEを含みます)
@OSI-APPROVED Open Source Initiative [a_license 2]によって承認されたライセンス群
@MISC-FREE おそらくフリーソフトウェアであるその他のライセンス群。言い換えると、フリーソフトウェアの定義[a_license 3]に従っているものの、FSFやOSIによって承認されていないライセンス
@FREE-SOFTWARE 自由に利用、共有、変更、および変更の共有ができるすべてのライセンスのメタセット。@FSF-APPROVED、@OSI-APPROVEDそして@MISC-FREEを組み合わせたもの
@FSF-APPROVED-OTHER FSFが承認した「無料のドキュメント」および「ソフトウェアとドキュメント以外の実用的な作品」(フォントを含む)
@MISC-FREE-DOCS free definition[a_license 4] に従っているが、@FSF-APPROVED-OTHERの一覧には載っていない無料のドキュメントおよび他の作品
@FREE-DOCUMENTS @FSF-APPROVED-OTHERと@MISC-FREE-DOCSを組み合わせたもの
@FREE @FREE-SOFTWAREと@FREE-DOCUMENTSを組み合わせたもの
@BINARY-REDISTRIBUTABLE 少なくともソフトウェアのバイナリ形式での自由な再配布を認めているライセンス群。@FREEを含みます
@EULA あなたの権利を取り去ろうとするライセンス契約。これらは"all-rights-reserved"や明示的な承諾を必要とするものよりも拘束的です.



タイムゾーン

タイムゾーンを選択します。/usr/share/zoneinfo/から利用可能なタイムゾーンを探してください:

root #ls /usr/share/zoneinfo

選択したタイムゾーンがEurope/Brusselsの場合は以下となります。

OpenRC

/etc/timezone ファイルにタイムゾーン名を記述します。

root #echo "Europe/Brussels" > /etc/timezone

/usr/share/zoneinfo/Etc/GMT*のタイムゾーンは、その名前が期待されるゾーンを示していないため、避けましょう。たとえば、GMT-8は実際にはGMT+8となります。

次に、sys-libs/timezone-dataパッケージを再設定しましょう。これは/etc/timezoneを元に、/etc/localtimeをアップデートします。/etc/localtimeは、システムのCライブラリが、自身が属するタイムゾーンを知るために使われます。

root #emerge --config sys-libs/timezone-data

systemd

systemd を使用している場合は、多少異なるアプローチをとります。シンボリックリンクを生成します:

root #ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime

その後 systemd が起動してから、タイムゾーンとそれに関連する設定を timedatectl コマンドで設定することができます。

ロケールの設定

Note
このステップは musl libc を使う場合は適用されません。それがどういう意味か分からない場合は、このステップを実行すべきです。

ロケールの生成

ほとんどのユーザは、一つもしくは二つのロケールを必要とします。

ロケールはシステムで使用する言語を指定するだけではなく、単語のソート順や日付、時間等のルールにも使用されます。ロケールは大文字小文字を区別するので、記載とまったく同じように表現する必要があります。利用可能なロケールの一覧は /usr/share/i18n/SUPPORTED ファイルで確認できます。

サポートされるシステムロケールは、/etc/locale.gen ファイルに定義する必要があります。

root #nano -w /etc/locale.gen

次のロケールの例では、英語(米国)とドイツ語(ドイツ)を(UTF-8のような)文字コードと共に指定しています。

FILE /etc/locale.genUSとDEロケールを適切な文字コードと共に有効にする
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
警告
UTF-8 のロケールを少なくとも一つは追加することを強く勧めます。おそらく多くのアプリケーションは適切にビルドするのに UTF-8 を必要とするためです。

次に locale-gen コマンドを実行します。このコマンドは /etc/locale.gen ファイルに記載されているすべてのロケールを生成します。

root #locale-gen

現在使用可能なすべてのロケールを確認するためには、locale -aを実行してください。

ロケールの選択

この時点で、システム全体で有効になるロケールを設定できます。eselectlocaleモジュールと共に使いましょう。

eselect locale listを実行すると、利用可能なターゲットが表示されます。

root #eselect locale list
Available targets for the LANG variable:
  [1]  C
  [2]  C.utf8
  [3]  en_US
  [4]  en_US.iso88591
  [5]  en_US.utf8
  [6]  de_DE
  [7]  de_DE.iso88591
  [8]  de_DE.iso885915
  [9]  de_DE.utf8
  [10] POSIX
  [ ]  (free form)

eselect locale set <番号> を実行することで、適切なロケールを選択することができます:

root #eselect locale set 9

手動で設定する場合は、/etc/env.d/02locale ファイルと、Systemd の場合は /etc/locale.conf ファイルも編集してください。

FILE /etc/env.d/02localeシステムのロケールをマニュアル設定する
LANG="de_DE.UTF-8"
LC_COLLATE="C.UTF-8"

ロケールを設定すると、後でカーネルをビルドしたり、他のソフトをコンパイルしたりするときに警告やエラーを回避できるでしょう。

ここで、環境をリロードします。

root #env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

ロケール選択プロセス全体にわたる、さらなるガイドについては、ローカライゼーションガイドUTF-8 ガイドもお読みください。





任意自由選択: ファームウェアとマイクロコードのインストール

カーネルコンフィグの節へ進む前に知っておいたほうが良いこととして、一部のデバイスは、それを適切に動作させるために追加のファームウェアのインストールする必要がある、ということがあります。これはネットワークインターフェース、特に、デスクトップとラップトップの両方で広く使用される、無線ネットワークインターフェースで必要になることが多いです。AMD、Nvidia、Intel などのベンダによる最近のビデオチップも、完全に機能させるには外部のファームウェアが必要になることが多いです。最近のハードウェアのためのファームウェアの多くは sys-kernel/linux-firmware パッケージ内で入手可能です。これらのベンダによるグラフィックカードを使用するシステムでは、グラフィックカードを使えるようにするために、カーネルを構成してインストールする前にこのファームウェアパッケージを emerge しておくのが賢明です。

root #emerge --ask sys-kernel/linux-firmware

個別のグラフィックスハードウェアやネットワークインターフェースに加えて、CPU もまたファームウェアアップデートを必要とすることがあります。こうしたファームウェアは典型的にはマイクロコードと呼ばれます。新しいリビジョンのマイクロコードは、動作の不安定さ、セキュリティ上の懸念、その他の CPU ハードウェアのバグに対するパッチとして、必要になることがあります。

AMD CPU に対するマイクロコードアップデートは、典型的には先述の linux-firmware パッケージとともに配布されます。Intel CPU に対するマイクロコードは sys-firmware/intel-microcode パッケージ内で見つかりますので、これを個別にインストールする必要があります。マイクロコードアップデートを適用する方法についてのさらなる情報は、マイクロコードの記事を確認してください。

カーネルのコンフィギュレーションとコンパイル

これで、カーネルソースを設定、コンパイルする準備が整いました。この設定およびコンパイルには 3 つのアプローチがあります。

  1. カーネルをマニュアルで設定およびビルドする。
  2. Linux カーネルを自動的にビルド・インストールする genkernel を使用する。
  3. Linux カーネルを、他のパッケージと同様に自動的にビルド・インストールするディストリビューションカーネルを使用する。

環境を最適化するための最良の方法はマニュアル設定なので、デフォルトの選択肢としてマニュアル設定を説明します。

すべてのディストリビューションが構築されるその中心にあるのがLinuxカーネルです。カーネルレイヤーはユーザープログラムとハードウェアの間に存在します。Gentooではカーネルソースについて複数の選択肢があります。説明付きのすべてのカーネルソースのリストは、Kernel overview pageで見ることができます。

カーネルソースのインストール

alpha ベースのシステムにカーネルを手動でインストールしてコンパイルする場合には、Gentoo はsys-kernel/gentoo-sources パッケージを推奨しています。

適切なカーネルソースを選択して、emergeでインストールします。

root #emerge --ask sys-kernel/gentoo-sources

このコマンドはカーネルソースを /usr/src/ の下に、カーネルバージョン毎のパスを分けてインストールします。選択されたカーネルソースパッケージに対して USE=symlink が有効化されていなければ、シンボリックリンクは自動で作成されません。

現在実行しているカーネルに対応するソースを指すように、/usr/src/linux シンボリックリンクを維持することは慣例となっています。しかし、このシンボリックリンクはデフォルトでは作成されないでしょう。シンボリックリンクを作成する簡単な方法は、eselect の kernel モジュールを利用することです。

シンボリックリンクの目的と、それを管理する方法についてのさらなる情報は、Kernel/Upgrade を参照してください。

まず、インストールされているカーネルを一覧表示します:

root #eselect kernel list
Available kernel symlink targets:
  [1]   linux-3.16.5-gentoo

linux シンボリックリンクを作成するには、次を使用してください:

root #eselect kernel set 1
root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo

マニュアル設定

はじめに

カーネルのマニュアル設定は、しばしばLinuxユーザーがしなければならない最も難しい手続きと考えられます。これは真実ではありません。カーネルを数回設定してみれば、それが難しいと言われていたことなど忘れてしまうでしょう!

しかし、一つだけ真実があります。カーネルをマニュアルで設定する時、ハードウェア情報を知ることはとても役に立ちます。ほとんどの情報は、lspciコマンドを含むsys-apps/pciutilsをインストールすることで得られます。

root #emerge --ask sys-apps/pciutils
注意
chroot環境では、lspciが出力していると思われる(pcilib: cannot open /sys/bus/pci/devicesのような)pcilibの警告は、無視しても構いません。

システム情報を得るための別の方法は、lsmodを使ってインストールCDが使っているカーネルモジュールを把握することです。その情報は何を有効にすべきかとてもよいヒントを与えてくれるでしょう。

では、カーネルソースがあるディレクトリに移動して、make menuconfigを実行しましょう。このコマンドはメニューベースの設定画面を起動します。

root #cd /usr/src/linux
root #make menuconfig

Linuxカーネルの設定はとても多くのセクションを持っています。まず最初にいくつかの必須オプションを述べましょう(そうでない場合、Gentooは動作しない、もしくは追加の処置なしには正しく動作しません)。 Gentoo wikiのGentoo カーネルコンフィグレーションガイドには、さらに役立つ記述があるでしょう。

必須オプションを有効にする

もし sys-kernel/gentoo-sources を使用する場合は、Gentoo 固有のコンフィギュレーションオプションを有効化することを強く推奨します。これらは、正しく機能するために必要な最小限のカーネルの機能が有効化されることを確実にします:

KERNEL Gentoo 固有オプションを有効化する
Gentoo Linux --->
  Generic Driver Options --->
    [*] Gentoo Linux support
    [*]   Linux dynamic and persistent device naming (userspace devfs) support
    [*]   Select options required by Portage features
        Support for init systems, system and service managers  --->
          [*] OpenRC, runit and other script based systems and managers
          [*] systemd

通常、最後の 2 行の選択は init システムの選択(OpenRCsystemd か)に依存します。両方の init システムへのサポートを有効化しても害はありません。

もし sys-kernel/vanilla-sources を使用する場合は、この init システムに関する追加の選択項目は利用できないでしょう。サポートを有効化することは可能ですが、このハンドブックの範囲からは外れることです。

システムのブートに必須となるドライバ(SCSIコントローラ等)は、モジュールではなく、カーネルの一部としてコンパイルしなければなりません。そうでないと、システムは全くブートできないでしょう。

次に正確なプロセッサタイプを選択します。このとき、もし使えるのであればMCE機能を有効にすることが推奨されます。これによりハードウェアの異常が通知されるようになるでしょう。いくつかのアーキテクチャ(x86_64)で、これらのエラーはdmesgでは確認できませんが、/dev/mcelogにログが残ります。この機能を有効にするためにapp-admin/mcelogパッケージが必要になります。

また、Maintain a devtmpfs file system to mount at /devを選択することで、必須となるデバイスファイルがブートプロセスの初期段階で使えるようになります (CONFIG_DEVTMPFSCONFIG_DEVTMPFS_MOUNT):

KERNEL devtmpfsサポートを有効にする
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

SCSI ディスクサポートが有効になっているか確認してください(CONFIG_BLK_DEV_SD):

KERNEL SCSIディスクサポートを有効にする
Device Drivers --->
   SCSI device support  --->
      <*> SCSI disk support

次にFile Systemsで、システムが使用するファイルシステムに必要なサポートを選択しましょう。ルートファイルシステムに使われるファイルシステムをモジュールとしてコンパイルしてはいけません。モジュールにした場合、システムがパーティションをマウントできないおそれがあります。また、ここでVirtual memory/proc file systemも選択してください。システムの必要に応じて以下の選択肢から1個以上を選択してください (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS, and CONFIG_TMPFS):

KERNEL 必要なファイルシステムを選択する
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
 
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

もしインターネットに接続するために、PPPoEもしくはダイヤルアップモデムを使う場合、次のオプションを有効にしてください (CONFIG_PPP, CONFIG_PPP_ASYNC, and CONFIG_PPP_SYNC_TTY):

KERNEL PPPoEに必要なドライバを選択する
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

2つの圧縮オプションは選択しても差し支えありませんが、必須というわけでもありません。PPP over Ethernetオプションも同様です。これはカーネルモードのPPPoEをするために設定された時だけにpppによって使用されるものです。

カーネルにネットワークカード(イーサネットもしくはワイヤレス)のサポートを組み込むことを忘れてはいけません。

多くのシステムではマルチコアを使用できます。Symmetric multi-processing supportを有効にすることは重要です (CONFIG_SMP):

KERNEL SMPサポートを有効にする
Processor type and features  --->
  [*] Symmetric multi-processing support
注意
マルチコアシステムでは、それぞれのコアが1プロセッサとカウントされます。

USB接続の入力装置(キーボードやマウス)などのUSBデバイスを使用する場合、以下を必ず有効にしてください (CONFIG_HID_GENERIC and CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD):

KERNEL 入力装置のためにUSBサポートを有効にする
Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support


アーキテクチャに即したカーネルコンフィグ

以下のオプションもお勧めします:

KERNEL Alpha 向けの推奨オプション
General setup --->
  <*> SRM environment through procfs
  <*> Configure uac policy via sysctl
  
Plug and Play configuration --->
  <*> Plug and Play support
  <M>   ISA Plug and Play support
  
SCSI support --->
  SCSI low-level drivers --->
    <*> SYM53C8XX Version 2 SCSI support (NEW)
    <*> Qlogic ISP SCSI support
  
Network device support --->
  Ethernet (10 or 100 Mbit) --->
    <M> DECchip Tulip (dc21x4x) PCI support
    <M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
    <M> EtherExpressPro/100 support (eepro100)
    <M> EtherExpressPro/100 support (e100)
  Ethernet (1000 Mbit) --->
    <M> Alteon AceNIC
      [*] Omit support for old Tigon I
    <M> Broadcom Tigon3
  [*] FDDI driver support
  <M> Digital DEFEA and DEFPA
  <*> PPP support
    <*> PPP Deflate compression
  
Character devices --->
  [*] Support for console on serial port
  [*] Direct Rendering Manager
  
File systems --->
  <*> Kernel automounter version 4 support
  Network File Systems --->
    <*> NFS
      [*] NFSv3 client
      <*> NFS server
      [*] NFSv3 server
  Partition Types --->
    [*] Advanced partition selection
    [*] Alpha OSF partition support
  Native Language Support
    <*> NLS ISO 8859-1
  
Sound --->
  <M> Sound card support
    <M> OSS sound modules
      [*] Verbose initialisation
      [*] Persistent DMA buffers
      <M> 100% Sound Blaster compatibles

コンパイルおよびインストール

カーネルのコンフィグレーションが完了し、コンパイルとインストールをする時がきました。コンフィグレーションを終了させ、コンパイル作業を開始しましょう:

root #make && make modules_install
root #make boot
注意
make -jX とすることで、ビルドを並行処理させることができます( X には、並行処理を許可するビルドプロセスの数を指定します。 /etc/portage/make.conf の説明中の、 MAKEOPTS 変数についてと同様です。

カーネルのコンパイルが完了したら、カーネルのイメージを /boot/ コピーしましょう。最近のバージョンは、vmlinux.gz ではなく vmlinux を生成しているかもしれませんので、カーネルのイメージをコピーする際には気をつけてください。

root #cp arch/alpha/boot/vmlinux.gz /boot/



任意自由選択: initramfsのビルド

いくつかの特別なケースで initramfs - initial ram-based file system (訳注: 起動時の RAM ベースのファイルシステム) のビルドが必要になります。最もよくある理由は、重要なディレクトリ(/usr//var/等)が別パーティションにある場合です。initramfsがあれば、initramfsの中にあるツールを使うことで、これらのパーティションをマウントすることができます。

initramfs が無いと、ファイルシステムをマウントするツールがまだマウントされていないファイルシステムの中にある情報を必要としている場合、システムが正しく起動できないリスクがあります。initramfs はカーネルブートの直後かつ制御が init ツールに移る前に必要なファイルをアーカイブに引き込みます。initramfs のスクリプトはシステムがブートを継続するために必要なパーティションを正しくマウントすることを保証します。

Important
genkernel を使用する場合は、カーネルおよび initramfs の両方をビルドでこれを使用するべきです。genkernel を initramfs の生成のためだけに使用する場合は、genkernel--kernel-config=/path/to/kernel.config を渡すのがきわめて重要です。そうしないと、生成された initramfs が手動でビルドされたカーネルと同時に動作しない場合があります。手動でビルドされたカーネルはハンドブックのサポート範囲外であることに注意してください。詳細についてはカーネルコンフィギュレーションの記事を確認してください。

initramfsをインストールするために、最初にsys-kernel/dracutをインストールしましょう。そしてinitramfsを生成します。

root #emerge --ask sys-kernel/dracut
root #dracut --kver=3.16.5-gentoo

initramfsは/boot/に保存されます。生成されるファイルは単純にinitramfsで始まります。

root #ls /boot/initramfs*

次はカーネルモジュールです。

別の方法: genkernelを使用する

もしマニュアル設定に気後れしてしまった場合、genkernel を使うことを考えてみてください。genkernel は自動的にカーネルを設定し、ビルドします。

genkernelはインストールCDのカーネルの設定とほぼ同じようにカーネルを設定します。これはカーネルのビルドにgenkernelを使った場合、システムはインストールCDと同じように対応するハードウェアをブート時に検出することを意味します。genkernelは自身のカーネルをコンパイルすることを好まないユーザには有用なソリューションとなり得ます。genkernel は、それが実行されているハードウェア向けのカスタムカーネル設定を自動的に生成するものではないことに注意してください。

では、genkernelの使い方を見てみましょう。最初にsys-kernel/genkernelをemergeします。

root #emerge --ask sys-kernel/genkernel

次に、/etc/fstabファイルを編集します。2番目のフィールドに/boot/を含む行は、その1番目のフィールドで正しいデバイス指定します。もしハンドブックのパーティショニング例の通りであれば、このデバイスはほぼ間違いなくext4ファイルシステムを持つ/dev/sda1でしょう。この場合、エントリは次のようになります。

root #nano -w /etc/fstab
FILE /etc/fstab/bootマウントポイントを設定する
/dev/sda1	/boot	ext4	defaults	0 2
注意
Gentooインストールでは、/etc/fstabはさらにもう一回編集されますが、/bootの設定はgenkernelアプリケーションがそれを読み込むために今必要です

genkernel allを実行してカーネルソースをコンパイルしましょう。ただ、genkernelはほとんどすべてのハードウェアをサポートするカーネルを生成するため、コンパイルが完了するまでにかなりの時間が必要になることに注意しましょう。

注意
もしルートパーティションまたはボリュームがファイルシステムとしてext4を使用していない場合、おそらく、genkernel --menuconfig allを使ってマニュアルでカーネルを設定し、カーネルにこの特別なファイルシステムを(モジュールではなく)組み込む必要があるでしょう。また、LVM2のユーザーはおそらく引数に--lvmを加えることになるでしょう。
root #genkernel all

genkernel完了後、カーネル、モジュール群、初期RAMディスク(initramfs)が生成されるでしょう。このドキュメントの後半でブートローダーを設定する際、このカーネルとinitrdを使うことになります。ブートローダーの設定に必要になるため、カーネルとinitrdの名前をメモしておきましょう。"真の"システムが起動する前に(インストールCDがするように)ハードウェアを自動的に検出しなければならないため、initrdはブート後すぐに起動します。

root #ls /boot/vmlinu* /boot/initramfs*


カーネルモジュール

モジュールの設定

Note
ハードウェアモジュールを手作業で列挙する必要はありません。ほとんどの場合、udev は接続を検出したハードウェアのモジュールを自動でロードします。ですが、自動で検出されるモジュールを列挙することは特に有害ではありません。時として変なハードウェアは、ドライバをロードするのにこうした手助けが必要になることがあります。

/etc/modules-load.d/*.confファイルに、自動的にロードしなければならないモジュールを改行区切りで記載してください。モジュールに追加のオプションを与える必要があれば、/etc/modprobe.d/*.confファイルで設定すべきです。

すべての利用可能なモジュールを把握するためには、次のfindコマンドを実行してください。"<kernel version>"をたった今コンパイルしたカーネルのバージョンで置き換えることを忘れないでください。

root #find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

たとえば、3c59x.koモジュール(特定の3Comネットワークカード)を自動的にロードするためには、/etc/modules-load.d/network.confにモジュール名を記載してください。実際のファイル名はローダにとって重要ではありません。

root #mkdir -p /etc/modules-load.d
root #nano -w /etc/modules-load.d/network.conf
FILE /etc/modules-load.d/network.conf強制的に3c59x モジュールをロードする
3c59x

では、システムの設定に進み、インストールを続けましょう。





ファイルシステムの情報

fstabについて

Linuxでは、システムで使用するすべてのパーティションは/etc/fstabに記載されていなければなりません。このファイルは、これらパーティションのマウントポイント(これらはファイルシステムに存在しなければなりません)、どのようにマウントされるべきか、また特別なオプション(自動マウントかそうでないか、ユーザー権限でマウントできるかどうか等)を定義します。

fstabファイルを作成する

/etc/fstabファイルは表のように記述します。それぞれの行はホワイトスペース(一つまたは複数のスペース、タブ、もしくはその 2 種の組み合わせ)で区切られる 6 つのフィールドを持ちます。それぞれのフィールドの意味は以下の通りです。

  1. 最初のフィールドはマウントされるブロックスペシャルデバイスやリモートファイルシステムを示します。デバイスファイルへのパスや、ファイルシステムラベルやファイルシステムUUID,そしてパーティションラベルやパーティションUUIDを含む、いくつかの種類のデバイスIDがブロックスペシャルデバイスノードとして使用可能です。
  2. 2番目のフィールドはそのパーティションがマウントされるマウントポイントを示します。
  3. 3番目のフィールドはそのパーティションのファイルシステムを示します。
  4. 4番目のフィールドは、そのパーティションをマウントするmountコマンドが使用するオプションを示します。すべてのファイルシステムは、固有のマウントオプションを持っています。システム管理者はマウントコマンドのmanページ(man mount)を参照することですべてのオプションを確認できます。複数のマウントオプションを記述する場合はカンマで区切ります。
  5. 5番目のフィールドはそのパーティションをdumpでダンプするかどうかを示しています。このフィールドは通常0(ゼロ)のままにしておいてかまいません。
  6. 6番目のフィールドは、直前のシャットダウンが正常に完了しなかったときに、fsckが各パーティションをどの順番でチェックするか示しています。ルートファイルシステムは1であるべきです。残りのファイルシステムは2(ファイルシステムチェックが不要であれば0)に設定しましょう。
Important
Gentoo stage ファイルに含まれるデフォルトの /etc/fstab ファイルは有効な fstab ではなく、関連する値を入力するために使用できるテンプレートです。
root #nano -w /etc/fstab

これ以降、パーティション識別子として、デフォルトのブロックデバイスファイルである/dev/sd*を使います。

ファイルシステムラベルとUUID

MBR(BIOS)とGPTの両方が、ファイルシステムラベルとファイルシステムUUIDをサポートしています。これらの属性は、ブロックデバイスを探しマウントするために使用されるmountコマンドの代用として、/etc/fstab内で定義することができます。ファイルシステムラベルやファイルシステムUUIDはそれぞれLABELUUID接頭辞で識別され、blkidコマンドで確認することができます:

root #blkid
Warning
もし、パーティション内のファイルシステムが消滅すると、ファイルシステムのラベルとUUIDの値は後に変更されるか除去されます。

一意性のため、MBRスタイルのパーティションテーブルを使用している読者は、/etc/fstab内で、マウント可能なボリュームを定義するのにラベルよりもUUIDを用いることを推奨します。

Important
LVM ボリューム上に置かれたファイルシステムの UUID と、LVM ボリュームの LVM スナップショットの UUID は同じなので、LVM ボリュームをマウントするために UUID を使用するのは避けるべきです。

パーティションラベルとUUID

GPTルートを選択した人は、/etc/fstab でパーティションを定義する際に '頑丈' な方法を使うことができます。パーティション自体にどのファイルシステムが使用されているかにかかわらず、ブロックデバイスの個々のパーティションを識別するのにパーティションラベルやパーティションのUUIDを使うことができます。パーティションラベルとパーティションのUUIDはそれぞれPARTLABELPARTUUID接頭辞で識別され、そして端末で blkid コマンドを実行すると簡単に調べられます:

root #blkid

パーティションラベルも絶対にとは言えないのに対し、fstab でUUIDを使ったパーティション指定を使えば、たとえ将来ファイルシステムが変更されるとしても、ブートローダーがボリューム検出に迷うことはありません。従来のブロックデバイスファイル (/dev/sd*N) を使った指定は、SATAブロックデバイスの追加・削除とシステムの再起動が頻繁に行われるシステムでは危険です。

ブロックデバイスのファイル名は様々な要素 (ディスクがどんな順番でいくつ接続されているかを含む) によって変化します。またファイル名の順番についても、初期起動プロセス中にカーネルがどのデバイスを最初に検知するかによって変化します。つまり、ディスクの順序を頻繁にいじったりしない限りは、デフォルトのブロックデバイスファイルを使うのはシンプルで素直な方法です。


では、/boot/パーティションをどのように記述すればよいか見てみましょう。これは一つの例です。実際はインストール手順の最初に決めたパーティション構成通りに修正しなければなりません。ここでは alpha のパーティション構成の例として、ext4 ファイルシステムを使う/dev/sda1パーティションを/boot/にします。このパーティションはブート中にチェックされなければなりません。fstabは以下のようになるでしょう。

FILE /etc/fstab/etc/fstabの/boot行の例
# Adjust any formatting difference from the Preparing the disks step
/dev/sda1   /boot     ext2    defaults        0 2

あるユーザーはセキュリティを向上させるために/boot/パーティションを自動的にマウントしたくないかもしれません。その場合はdefaultsnoautoで置き換えてください。これは、そのパーティションを使いたいときは都度手動でマウントしなければならないことを意味します。

実際のパーティション構成にあわせたルールや、CD-ROMドライブのためのルールを追加してください。他にパーティションやドライブがあれば、それも忘れずに追加しておきましょう。

以下は、より詳細な/etc/fstabの例です。


FILE /etc/fstab完全な/etc/fstabの例
# Adjust any formatting difference and additional partitions created from the Preparing the disks step
/dev/sda1   /boot        ext2    defaults,noatime     0 2
/dev/sda2   none         swap    sw                   0 0
/dev/sda3   /            ext4    noatime              0 1
  
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

3番目のフィールドでautoを使う場合、mountコマンドはそのパーティションのファイルシステムが何かを推測します。これは様々なファイルシステムを使う可能性があるリムーバルメディアで推奨されます。4番目のuserオプションで、ルート権限を持たないユーザーがCDをマウントできるようになります。

パフォーマンスを改善するために、多くのユーザーはマウントオプションとしてnoatimeオプションを付け加えたいと考えるでしょう。アクセス時間が記録されないので、結果としてより高速なシステムになります(一般的にこの記録はほとんど必要ありません)。ソリッドステートドライブ (SSD) を持つシステムでもこれはおすすめです。

Tip
パフォーマンスを低下させるため、/etc/fstab 内で discard マウントオプションを定義させるのは推奨されません。cron または timer (systemd) のようなジョブスケジューラを使用して、定期的にブロックの破棄をスケジュールするほうが、一般的により良い方法です。さらなる情報については、Periodic fstrim jobs を確認してください。

再度/etc/fstabを確認して、保存、エディタを終了します。

ネットワーク接続のための情報

重要な注意点として、このセクションは読者がシステムをローカルエリアネットワークに手っ取り早く参加させることができるように、提供しています。

For systems running OpenRC, a more detailed reference for network setup is available in the advanced network configuration section, which is covered near the end of the handbook. Systems with more specific network needs may need to skip ahead, then return here to continue with the rest of the installation.

より詳細な systemd のネットワーク設定については、systemd の記事のネットワークの箇所を確認してください。

ホストとドメインのための情報

さて、PCには名前をつけなければいけません。至極簡単に思えますが多くのシステム管理者はホスト名として適切な名前を付けるのに苦労しています。事を早く進めるために、選んだ名前は後で変更できることを知っておいてください。判りやすいように、ここでは単にマシンをtux、ドメイン名をhomenetworkと呼ぶことにします。

OpenRC

root #nano -w /etc/conf.d/hostname
# hostname変数にホスト名を設定する。
hostname="tux"

次に、もしドメイン名が必要なら、/etc/conf.d/netに設定します。ISPやネットワーク管理者からそう言われているか、DNSサーバがありDHCPサーバがない場合には、ドメイン名が必要になります。もし、ダイナミックIPアドレスやネットワーク設定のためにDHCPを使っている場合は、DNSやドメイン名は気にしなくても構いません。

注意
デフォルトで/etc/conf.d/netが無い場合、新規作成する必要があります。
root #nano -w /etc/conf.d/net
# dns_domain_lo変数にドメイン名を設定する。
dns_domain_lo="homenetwork"
注意
もしドメイン名を設定しない場合、ログイン画面に"This is hostname.(none)"というメッセージが現れるでしょう。これは/etc/issueを編集して、.\Oを消去することで対策できます。

もし、NISドメインが必要であれば(それが何かを知らないユーザは必要ありません)、以下のように定義してください。

root #nano -w /etc/conf.d/net
# nis_domain_lo変数にNISドメイン名を設定。
nis_domain_lo="my-nisdomain"
注意
DNSとNISの設定詳細については、/usr/share/doc/netifrc-*/net.example.bz2にある例を参照してください。このファイルはbzlessで読むことができます。また、DNS/NIS設定を管理する場合、net-dns/openresolvをインストールすることは興味深いでしょう。

systemd

systemd でシステムのホスト名を設定するには、hostnamectl ユーティリティが使われます。

ホスト名を "tux" に設定するためには、次のようにします:

root #hostnamectl hostname tux

hostnamectl --help または man 1 hostnamectl を実行することで、ヘルプを確認してください。

ネットワーク

ネットワークインターフェースを構成するために利用できる選択肢は多く存在します。この節ではそのうち一部の方法だけをカバーします。必要な構成に最適と思われるものをひとつ選んでください。

dhcpcd での DHCP (どんな init システムでも)

多くの LAN ネットワークは DHCP サーバは運用しています。その場合は、dhcpcd プログラムを使用して IP アドレスを取得するのがおすすめです。

インストールするには:

root #emerge --ask net-misc/dhcpcd

OpenRC システム上で、サービスを有効化して開始するには:

root #rc-update add dhcpcd default
root #rc-service dhcpcd start

systemd システム上で、サービスを有効化して開始するには:

root #systemctl enable --now dhcpcd

これらのステップが完了したら、次にシステムが起動したときに、dhcpcd が DHCP サーバから IP アドレスを取得するはずです。さらなる詳細については Dhcpcd の記事を確認してください。

netifrc (OpenRC)

Tip
これは OpenRC 上で Netifrc を使ってネットワークをセットアップするときに固有の方法です。他にも Dhcpcd のような、より簡潔なセットアップの方法も存在します。
ネットワークを設定する

Gentoo Linux をインストールしている間、ネットワークが使えるように設定されています。しかし、それは live 環境のためのネットワーク設定であり、インストールされた環境のためのものではありません。では、インストールされた Gentoo Linux のネットワークを設定しましょう。

Note
bonding、ブリッジ、802.1Q VLAN、無線ネットワークに間するより詳細な情報は、追加のネットワーク設定セクションを参照してください。

すべてのネットワーク設定は/etc/conf.d/netにあります。直接的ではありますが、おそらく直感で理解できる構文ではありません。しかし恐れることはありません。すべては以下で説明されます。/usr/share/doc/netifrc-*/net.example.bz2に、多くの異なる設定に対して完全にコメントが付与された例が記載されています。

最初に net-misc/netifrc をインストールします。

root #emerge --ask --noreplace net-misc/netifrc

DHCPはデフォルトで使用されます。DHCPを動かすために、DHCPクライアントをインストールしなければなりません。これは Installing Necessary System Toolsで説明されます。

もし、特別なDHCPのオプションを設定している、もしくはDHCPをまったく使いたくない等の理由で、ネットワーク接続をしなければならないときは、/etc/conf.d/netを編集します。

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

IPアドレスとルーティングを設定するのはconfig_eth0routes_eth0です。

Note
ここではネットワークインターフェイスがeth0であると仮定していますが、これはシステムによって違います。もし、最近のインストールメディアから起動しているのであれば、インストール時と同じインターフェイス名が使われると思ってよいでしょう。より詳しい情報はネットワークインターフェースの命名セクションを参照してください。
FILE /etc/conf.d/net静的 IP アドレスの定義
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

DHCPを使う場合は、config_eth0を設定してください。

FILE /etc/conf.d/netDHCPの定義
config_eth0="dhcp"

さらなる設定オプションのリストについては、/usr/share/doc/netifrc-*/net.example.bz2を参照してください。もし特定のDHCPを設定しなければならないときは、DHCPクライアントのmanページも必ず読みましょう。

もし、システムが複数のネットワークインターフェースを持っている場合は、config_eth1config_eth2、…に対して上記の手順を繰り返してください。

設定を保存し、エディタを終了しましょう。

起動時に自動でネットワーク接続する

ブート時にネットワークインターフェースを有効にする場合は、デフォルトランレベルにそれらを追加する必要があります。

root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default

もし、複数のネットワークインターフェースがある場合は、net.eth0と同じ方法で、適切なnet.*ファイルを作成しなければなりません。

もし、ブート後、ネットワークインターフェース名(現在、このドキュメントではeth0と記述)が間違っていた場合、次の手順で修正してください。

  1. 正しいインターフェース名で/etc/conf.d/netファイルを更新します。(例えばeth0enp3s0またはenp5s0と修正)
  2. 新しいシンボリックリンクを作成。(例えば/etc/init.d/net.enp3s0
  3. 古いシンボリックリンクを消去。(rm /etc/init.d/net.eth0
  4. 新しいスクリプトをデフォルトランレベルに追加。
  5. rc-update del net.eth0 defaultで古いスクリプトを消去。

hostsファイル

次に、ネットワーク環境をLinuxに伝えます。これは/etc/hostsに定義され、ネームサーバでは解決できないホストについて、ホスト名からIPアドレスを決められるようになります。

root #nano -w /etc/hosts
FILE /etc/hostsネットワーク情報の記述
# 以下は本システムの定義です。必ず設定されなければなりません。
127.0.0.1     tux.homenetwork tux localhost
  
# ネットワーク上にあるその他のホストの定義です。任意設定です。
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

設定をセーブし、エディタを終了しましょう。

任意自由選択: PCMCIAを機能させる

PCMCIAユーザーは、sys-apps/pcmciautilsパッケージをインストールする必要があります。

root #emerge --ask sys-apps/pcmciautils

システム情報

rootパスワード

passwdコマンドでルートのパスワードを設定します。

root #passwd

ルートアカウントはとてもパワフルなアカウントなので、強いパスワードを与えてください。後で、日常の作業のための一般ユーザーアカウントを作成します。

initとboot設定

OpenRC

Gentoo で OpenRC を使用しているときは、OpenRC はシステムのサービス、スタートアップ、シャットダウンの設定に /etc/rc.conf を使います。/etc/rc.conf を開いて、ファイル中のすべてのコメントを楽しみましょう。設定をレビューして、必要な箇所を変更してください。

root #nano -w /etc/rc.conf

次に、キーボードを設定するために/etc/conf.d/keymapsを開いて、正しいキーボードを選択、設定します。

root #nano -w /etc/conf.d/keymaps

keymap変数に特に注意してください。もしキーマップを間違えた場合、キーボードを叩くたびに、奇妙な現象が起こるでしょう。

最後に、クロック設定をするために/etc/conf.d/hwclockを編集します。個々の好みに合わせて設定できます。

root #nano -w /etc/conf.d/hwclock

もし、ハードウェアクロックがUTCになっていない場合、このファイルにclock="local"を記述しなければなりません。そうでない場合、クロックスキューが発生するでしょう。

systemd

まず、システムが正しく起動できるようにするために、systemd-firstboot を実行することをおすすめします。これは、新しい systemd 環境への最初のブートのために、システムのさまざまなコンポーネントが正しく設定されるように準備します。次のオプションを渡すことで、ロケール、タイムゾーン、ホスト名、root パスワード、そして root シェル値を設定するための、ユーザへのプロンプトを含めます。加えて、システムにランダムなマシン ID を割り当てます:

root #systemd-firstboot --prompt --setup-machine-id

次に、インストールされているすべてのユニットファイルをプリセットのポリシー値にリセットするため、ユーザは systemctl を実行すべきです:

root #systemctl preset-all

live 環境からインストール先の最初のブートへのシームレスな移行を確実に行うために、これらの 2 ステップは有用でしょう。





システムロガー

Tip
systemd ユーザは、syslog がどうしても欲しいのではない限り、通常このステップを省略できます。systemd には同様の機能を担う journald が含まれているからです。

同じ機能が複数のパッケージによって提供されるツールがいくつかあります。そういったツールはstage3アーカイブには含まれていません。どのパッケージをインストールしたいのかをあなた次第で選んでください。

まずシステムにロギング機能を提供するツールを決定しましょう。UnixとLinuxでは歴史をかけて素晴らしいログ機能を発展させてきました -- お望みならログファイルにシステムで起こった全てを記録できます。これはシステムロガーを使って行ないます。

Gentooでは複数のシステムロガーから使いたいものを選択することができます。このうちのいくつかを紹介します。

  • app-admin/sysklogdは、システムのログを取得するための伝統的なデーモンを集めたものです。デフォルトのログ設定をそのまま使ってもうまく働くので、このパッケージは初心者にはいい選択肢です。
  • app-admin/syslog-ngは、進化したシステムロガーです。1つの大きなファイルにログを取る以上のことをするには、何らかの設定が必要です。更に上級のユーザは、ロギングの発展性に基いてこのパッケージを選択できます。スマートなロギングのためには追加の設定が必要になることに注意してください。
  • app-admin/metalogは、高度な設定ができるシステムロガーです。

Portageツリーにはまだまだ他の選択肢があることでしょう。日毎にPortageツリーのパッケージは増えていますから。

Tip
もし syslog-ng を使おうと思っているなら、それにはログファイルをローテーションする機構が無いので、後でlogrotateをインストールして設定しましょう。一方で、より新しいバージョン (>= 2.0) の sysklogd は自身でログローテーションを行います。
Tip
systemdは"journal"と呼ばれる、独自のロギング機能を提供しています。別のシステムログのプロバイダーをインストールすることは、systemdが動作しているシステムでは任意です。そして、システムログのデーモンにjournalからのメッセージを読ませるように追加で設定をする必要がある場合があります。

選択したシステムログツールをインストールするには、それを emerge してください。OpenRC では、rc-update を使ってデフォルトのランレベルにスクリプトを追加してください。次の例では app-admin/sysklogd をインストールします:

root #emerge --ask app-admin/sysklogd

OpenRC では:

root #rc-update add sysklogd default

sysklogd は systemd ユニットをインストールしないので、systemd ユーザは journal (systemd に組み込まれています) か、他の syslog デーモンを使用する必要があります。

任意自由選択: cronデーモン

Tip
systemd にはタイマーがあるため、cron デーモンは必須ではありませんが、それでも cron デーモンを実行することは可能です。

次はcronデーモンです。cronデーモンは入れても入れなくてもよく、システムに必須ではありませんが、インストールしておくのが賢明でしょう。

cronデーモンは予定されたコマンドを実行します。定期的(例えば日毎、週毎、月毎)にあるコマンドを実行する必要があるならとても重宝します。

Gentooではいくつものcronデーモンを提供しています。例をあげると sys-process/bcronsys-process/dcronsys-process/fcron、そしてsys-process/cronieです。その内の1つをインストールするのはシステムロガーをインストールするのに似ています。次の例はsys-process/cronieをインストールします。

root #emerge --ask sys-process/cronie

OpenRC では:

root #rc-update add cronie default

または、systemd では:

root #systemctl enable cronie

dcron を使う場合、初期設定のための追加コマンドが必要です。

root #crontab /etc/crontab

fcron を使う場合、追加で emerge ステップが必要です:

root #emerge --config sys-process/fcron

任意自由選択: ファイルのインデックスを作成

より高速なファイル検索のためにファイルシステム中の各ファイルのインデックスを作成するときは、sys-apps/mlocateをインストールしてください。

root #emerge --ask sys-apps/mlocate

任意自由選択: リモートアクセス

インストール後、システムにリモートからアクセスできるようにするためには、ブート時に sshd を開始するように設定する必要があります。

OpenRC で sshd init スクリプトを default ランレベルに追加するには:

root #rc-update add sshd default

そして systemd では:

root #systemctl enable sshd

(たとえばリモートサーバで)シリアルコンソールからアクセスしなければならない場合、agetty を設定する必要があります。

OpenRC では、/etc/inittab のシリアルコンソールの部分のコメントを外してください:

root #nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

systemd では、以下を実行してください:

root #systemctl enable getty@tty1.service

時刻同期

システム時刻を同期する方法を利用することは重要です。これは通常 NTP プロトコルおよびソフトウェアによってなされます。Chrony など、NTP プロトコルを使用する他の実装もあります。

例えば、Chrony をセットアップするには:

root #emerge --ask net-misc/chrony

OpenRC では、次を実行してください:

root #rc-update add chronyd default

systemd では、次を実行してください:

root #systemctl enable chronyd

systemd ユーザは、systemd の記事に書かれている systemd-timesyncd を利用するのがいいでしょう。

ファイルシステムツール

使っているファイルシステムよって、(ファイルシステムの整合性をチェックしたり、追加のファイルシステムを作成する等のために)必須のファイルシステムツールをインストールする必要があります。ext4ファイルシステムを管理するためのツール(sys-fs/e2fsprogs)は@system セットの一部としてインストール済みであることに注意してください。

次の表は、ファイルシステム毎にどのツールをインストールすべきかを示します。

ファイルシステム パッケージ
Ext4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs
ZFS sys-fs/zfs
Tip
Gentooのファイルシステムについてのさらなる情報は、ファイルシステムの記事を参照してください。

ネットワークツール

もし、以前のシステムの設定のステップでネットワークが構成されていて、それでネットワーク設定が完了している場合は、この 'ネットワークツール' のセクションは飛ばして問題ありません。その場合はブートローダーの設定に進みましょう。

DHCPクライアントをインストールする

重要
DHCPはあくまで任意選択ですが、多くのユーザはネットワークに接続するためにDHCPクライアントが必要になるでしょう。この機会にDHCPクライアントをインストールしましょう。もしこの設定を忘れた場合、ネットワークに接続できないことになり、これによりDHCPクライアントがダウンロードできなくなってしまいます。

netifrcスクリプトを使用して、一つ以上のネットワークに自動的にIPアドレスを付与するときは、DHCPクライアントをインストールする必要があります。Gentooリポジトリには多くのDHCPクライアントがありますが、net-misc/dhcpcdがお薦めです。

root #emerge --ask net-misc/dhcpcd

dhcpcd articledhcpcdに関するより多くの情報があります。

任意自由選択: PPPoEクライアントのインストール

もしインターネットに接続するためにPPPを使うのであれば、net-dialup/pppパッケージをインストールします。

root #emerge --ask net-dialup/ppp

任意自由選択: ワイヤレス・ネットワークツールのインストール

もしシステムをワイヤレス・ネットワークに接続させるつもりならば、オープンネットワークあるいはWEPネットワークを使用するためにnet-wireless/iwパッケージを、あるいはWPAまたはWPA2ネットワークを使用するためにnet-wireless/wpa_supplicantパッケージをインストールしてください。iwはまた、ワイヤレス・ネットワークの検出のための便利で基本的な診断ツールでもあります。

root #emerge --ask net-wireless/iw net-wireless/wpa_supplicant

次はブートローダーです。






選択する

カーネルを設定、コンパイルし、必要なシステム設定ファイルを正しく完成させたので、システムが開始した時にカーネルを起動させるプログラムをインストールする時です。そのようなプログラムはブートローダと呼ばれます。

Linux/Alpha用にいくつかのブートローダが存在します。対応しているブートローダのうち、全てではなく、どれか1つを選んでください。aBootMILOについて文書化してあります。

デフォルト:aBootの使用

注意
abootはext2パーティションとext3パーティションのみに対応しています。

まずabootをシステムにインストールしてください

root #emerge --ask sys-boot/aboot

次のステップはブートディスクを起動可能にすることです。これはシステムの起動時にabootを開始させます。abootブートローダをディスクの先頭に書き込むことで、ブートディスクのブートテーブルを作成します。

root #swriteboot -f3 /dev/sda /boot/bootlx
root #abootconf /dev/sda 2
注意
もしこの章を通して使用されているパーティション設計とは異なる設計を使用している場合、必要に応じてコマンドを変更する必要があります。適切なマニュアルページ(man 8 swritebootman 8 abootconf)を読んでください。また、ルートファイルシステムにJFSファイルシステムを使用している場合、カーネルオプションにroを追加して、必ず最初は読み取り専用でマウントしてください。

abootはインストールしましたが、まだaboot用に設定ファイルを書く必要があります。abootはそれぞれの設定に一行のみを必要としますので、これで出来ます:

root #echo '0:2/boot/vmlinux.gz root=/dev/sda3' > /etc/aboot.conf

もしLinuxカーネルをビルド中に、起動するためにinitramfsもビルドしたのなら、initramfsファイルを参照し、initramfsに実際のルートデバイスの場所を伝えるために設定を変更する必要があります:

root #echo '0:2/boot/vmlinux.gz initrd=/boot/initramfs-genkernel-alpha-3.16.5-gentoo root=/dev/sda3' > /etc/aboot.conf

加えて、いくつかのSRM変数を設定することでGentooを自動で起動させることが可能です。これらの変数をLinuxから設定してみてください、ただ、SRMコンソール自体から行うほうが簡単かもしれません。

root #cd /proc/srm_environment/named_variables
root #echo -n 0 > boot_osflags
root #echo -n '' > boot_file
root #echo -n 'BOOT' > auto_action
root #echo -n 'dkc100' > bootdef_dev

もちろんdkc100をブートデバイスに置換してください。

将来再びSRMコンソールに入る場合(Gentooインストールを回復させる、変数を扱う、など)、Ctrl+Cを打ち、自動読み込み処理を中断してください。

シリアルコンソールを使用してインストールしている場合、aboot.confにシリアルコンソールの起動フラグを含めるのを忘れないでください。さらなる情報については/etc/aboot.conf.exampleを見てください。

abootを設定し、使用準備が完了したので、システムのリブートに続いてください。

代替案:MILOの使用

続ける前に、どのようにMILOを使用するか決定してください。この章では、MILO起動フロッピーを作成する事にします。ハードディスクのMS-DOSパーティションから起動している場合、コマンドを適切に変更してください。

MILOをインストールするためにemergeを使用します。

root #emerge --ask sys-boot/milo

MILOをインストールしたら、MILOイメージが/opt/milo/にあるはずです。以下のコマンドで、MILOを使うために起動フロッピーを作成します。正しいAlphaシステム用のイメージを使用することを忘れないでください。

root #fdformat /dev/fd0
root #mformat a:
root #mcopy /opt/milo/milo-2.4-18-gentoo-ruffian a:\milo
root #mcopy /opt/milo/linload.exe a:\linload.exe

もしAlphaシステムがRuffianの場合:

root #mcopy /opt/milo/ldmilo.exe a:\ldmilo.exe

最後にこれで終わらせます:

root #echo -ne '\125\252' | dd of=/dev/fd0 bs=1 seek=510 count=2

MILO起動フロッピーがGentoo Linuxを起動するための準備が出来ました。MILOを開始させるためにARCSファームウェアで環境変数を設定することが必要かもしれません。これはすべてMILO-HOWTOで、一般的なシステムでの例や、インタラクティブモード内で使用するコマンド例を含めて説明されています。

MILO-HOWTOを読まないのは悪い考えです。

それではシステムのリブートに続いてください。


システムのリブート

chroot環境を出て、全てのパーティションをアンマウントします。次に、最終かつ真のテストを実行するためのマジカルコマンドrebootを入力しましょう。

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

もちろん、ブートCDを取り出しておいてください。そうしないと新しいGentooではなく、再度CDをブートしてしまいます。

新規にインストールされたGentooをリブートした後は、最終章インストールの締めくくりに進みましょう。





ユーザー管理

毎日使用するためのユーザを追加します

Unix/Linuxシステム上で、rootとして作業するのは危険であり、できるだけ避けるべきです。そのため、日々の使用のためのユーザーを追加することを強くお勧めします。

グループは、そのグループに所属するメンバーができることを定義します。次の表はいくつかの重要なグループを示します。

グループ 説明
audio オーディオデバイスにアクセスできます。
cdrom 光学デバイスに直接アクセスできます。
floppy フロッピーデバイスに直接アクセスできます。
games ゲームができます。
portage Portageの制限されたリソースにアクセスできます。
usb USBデバイスにアクセスできます。
video ビデオキャプチャのためのハードウェアにアクセスして、ハードウェアアクセラレーションを有効にできます。
wheel suを使うことができます。

例えばwheelusersaudioの3グループに所属するlarryというユーザを作成するには、最初にrootとしてログインし(rootだけがユーザを作ることができます)、useraddを実行します。

Login:root
Password: (rootのパスワードを入力してください)
root #useradd -m -G users,wheel,audio -s /bin/bash larry
root #passwd larry
Password: (larryのパスワードを入力してください)
Re-enter password: (確認のためにもう一度パスワードを入力してください)

もし、root で何か作業をする場合は、一時的に root 権限を得るために su - を使います。別の方法は sudo (app-admin/sudo) または doas (app-admin/doas) ユーティリティを使用することです。これらは (正しく設定されれば) とても安全です。

ディスクのクリーンアップ

tarファイルの削除

Gentooのインストールおよびリブート完了後、かつインストールがすべてうまくいった場合、ダウンロードしたステージ3のtarファイルを削除できます。このファイルは/ディレクトリにダウンロードされたことを思いだしましょう。

root #rm /stage3-*.tar.*

次にすることは?

次に何をすればいいかわかりませんか?探索する道が多くあります。Gentooには多くの可能性と共にユーザーが存在します。それゆえ、このwikiや他のGentooに関連するサブドメイン群(下のGentooオンラインを見てください)を探索するため、多くのドキュメント化された機能を使うことができます(記述量は多くないのですが…)。

さらなるドキュメント

重要な注意事項として、Gentoo で採用できる選択肢の多さから、このハンドブックが提供するドキュメントの範囲は一部に限られています。ハンドブックの主眼は、Gentoo システムを構築して基本的な管理活動を行えるようにすることに置いています。ハンドブックはあえて、グラフィカル環境、セキュリティ強化 (hardening) についての詳細、その他重要な管理タスクについての指示を除外しています。とはいえ、基本的な機能に関して読者を助けるため、ハンドブックのセクションをまだいくつか用意しています。

読者は絶対に、ハンドブックの Portage を読むべきです。これにはソフトウェアをどのように最新の状態にしておくのか、追加のソフトウェアパッケージをどのようにインストールするのか、USE フラグや Gentoo の OpenRC 初期システムの詳細や、インストール後の Gentoo システムを扱うことに関する他の様々な有益なトピックについてが説明されています。

ハンドブック以外では、コミュニティから追加提供されるドキュメントを見つけるために、Gentoo wikiの他のコーナーを探索したいと思うでしょう。Gentoo wikiチームは、Documentation topic overviewを提供しています。これは、このWikiにある記事のセレクションをカテゴリー別に一覧にしています。例えば、システムをよりあなたの国に適したものとするためには、ローカライゼーションガイドを参照します(特に英語を第二外国語として話すユーザにとって便利なものです)。

デスクトップ用途で利用したい多数派のユーザは、日常的に使用するためのグラフィカル環境をセットアップすることになるでしょう。対応している デスクトップ環境 (DE)ウィンドウマネージャ (WM) については、コミュニティによって維持されている 'メタ' 記事が多数存在します。それぞれの DE が必要なセットアップ作業は微妙に異なっているため、ブートストラップ作業の複雑性が増えることに注意してください。

その他にも、Gentoo 上で利用可能なソフトウェアについての俯瞰的な概要を提供するメタ記事が多数存在します。

Gentooオンライン

Important
読者は、すべての公式のGentooオンラインサイトがGentooの行動規範によって治められていることに注意するべきです。Gentooのコミュニティで活動することは特権で、権利ではありません。そしてユーザは、行動規範が理由があるために存在することを知っていると見なされます。

Libera.Chatが運営するInternet Relay Chat(IRC)ネットワークと、メーリングリストを除いて、ほとんどのGentooのウェブサイトは質問をしたり、議論を開始したり、バグを報告するために、サイト単位でアカウントを必要とします。

フォーラムとIRC

私たちのGentoo forumsや多くのInternet Relay Chat Channelsの一つに参加することはウェルカムです。新規のGentooのインストールの最中に遭遇した問題が、過去に発見されたか、またその後いくつかのフィードバックの後に解決したかをフォーラムで調べるのは簡単です。初めてのGentoo故に他のユーザがインストールの問題を経験する可能性は驚くべきものです。ユーザはGentooサポートチャンネルで手助けを求める前に、フォーラムやwikiを調べるよう勧められています。

メーリングリスト

フォーラムやIRCでアカウントを作成するよりはむしろ、メール上でサポートやフィードバックを求めるほうがいいというコミュニティメンバーのために、いくつかのメーリングリストが利用可能です。ユーザは特定のメーリングリストを購読するために説明に従う必要があります。

バグ

時々、wikiを見たり、フォーラム内を探したり、IRCチャンネルやメーリングリストにサポートを求めても、問題に対する既知の解決策がない場合があります。一般的にこれは、GentooのBugzillaサイトにバグを公開する合図です。

開発ガイド

Gentooの開発についてより多くのことを学びたいと考えている読者は、開発ガイドを見ると良いでしょう。このガイドにはebuildの書き方、eclassの扱い方についての説明や、Gentooの開発の背後にある、多くの一般概念の定義が載っています.

締めくくり

Gentooは堅固で、柔軟でそして素晴らしく維持されたディストリビューションです。開発者コミュニティは、Gentooをどのようにさらによりよいディストリビューションにするかについてのフィードバックを聞けることを嬉しく思います。

確認として書いておきますが、このハンドブックに対するすべてのフィードバックは、ガイドライン(ハンドブックのはじめにあるどうやってハンドブックを改善しますか?のセクションに詳細があります)に従っているべきです。

We look forward to seeing how our users will choose to implement Gentoo to fit their unique use cases and needs.




Warning: Display title "Gentoo Linux alpha ハンドブック: Gentoo をインストールする" overrides earlier display title "ハンドブック:Alpha/フル/インストール".