ハンドブック:PPC/フル/インストール
はじめに
ようこそ
Gentoo へようこそ! Gentoo は、ほぼすべてのアプリケーションまたはニーズに応じて自動的に最適化してカスタマイズできる、Linux ベースの自由なオペレーティングシステムです。Gentoo は自由なソフトウェアのエコシステムの上に成り立っており、内部をユーザに隠匿することがありません。
オープンさ
Gentoo の主要なツールはシンプルなプログラミング言語から構成されています。Gentoo のパッケージ管理システムである Portage は、Python で書かれています。Portage のためにパッケージ定義を提供する ebuild は、bash で書かれています。Gentoo ユーザは、Gentoo のすべての部分のソースコードを自由に確認、変更、向上させることができます。
デフォルトでは、バグ修正または Gentoo 内での相互運用性のために必要なときだけ、パッケージにパッチが当てられます。上流のプロジェクトが提供するソースコードをバイナリ形式にコンパイルすることによって、パッケージがインストールされます (コンパイル済みバイナリパッケージにも対応はしていますが)。Gentoo の設定はテキストアフィルによって行われます。
上述の理由などから: オープンさは設計原則として組み込まれています。
選択
選択もまた Gentoo の設計原則のひとつです。
Gentoo のインストール中、ハンドブック全体を通して選択は明らかにされます。システム管理者は、完全にサポートされているふたつの init システム (Gentoo 自身による OpenRC と Freedesktop.org の systemd)、ストレージディスクのためのパーティション構造、そのディスクで使うファイルシステム、ターゲットシステムのプロファイル、USE フラグを利用した、グローバルな (システム全体の) レベルまたはパッケージ単位レベルでの機能の削除と追加、ブートローダ、ネットワーク管理ユーティリティ、などなど非常に多くのことに関して選択権を持っています。
開発思想として、Gentoo 開発者はユーザを特定のシステムプロファイルまたはデスクトップ環境を押し付けることが無いように努めています。GNU/Linux のエコシステム内で提供されるものは、Gentoo でもおそらく利用可能です。そうでない場合は、是非確認させてください。新しいパッケージのリクエストのためには、バグレポートを開くか、自身の ebuild リポジトリを作成してください。
性能
Gentoo はソースベースのオペレーティングシステムなので、新しいコンピュータ命令セットアーキテクチャにも移植することができ、かつインストールされたすべてのパッケージを調整された状態にすることができます。この強みはもうひとつの Gentoo の設計原則、性能 の表れでもあります。
Gentoo のインストールとカスタマイズを完了することができれば、システム管理者はソースコードからコンパイルして調整されたオペレーティングシステムを得られます。Portage の make.conf ファイル内に含まれている仕組みを通じて、オペレーティングシステム全体をバイナリレベルで調整することができます。のぞむなら、パッケージ単位またはパッケージグループ単位での調整も行えます。実際のところ、すべての機能は USE フラグを利用して追加または削除することができます。
これらの設計原則が 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 以外の起動可能なメディアを用いる場合などの、ほかのインストール方法については、代替のインストールガイドを読んでください。
また、我々が提供している Gentoo インストールのヒントとトリックという文書も役にたつかもしれません。
トラブルがあったときは
インストール中に (またはインストールを説明しているハンドブックに) 何か問題を見つけたら、バグトラッキングシステムで既知のバグとして報告されていないかどうか、確認してみてください。 もし無いようであれば、私たちが対応できるように、その問題をバグ報告してください。 その (あなたが報告した) バグを担当する開発者たちを恐れないでください。取って喰われるようなことは (滅多に) ありませんから。
あなたが今読んでいる文書は、特定のアーキテクチャ向けということになっていますが、 他のアーキテクチャの情報も、その中に紛れ込んでしまっているかもしれない、ということを一応、先に言っておきます。これはGentooハンドブックの多くの部分が、全てのアーキテクチャに共通のテキストを使用していることに因ります (重複作業を減らすため)。混乱しないように、このような参照は最小限に抑えています。
その問題が、ユーザーの問題 (文書をよく読んだにもかかわらず起きたあなたのミス) なのか、ソフトウェアの問題 (インストール/文書をよくテストしたにもかかわらず起きた私たちのミス) なのか、はっきりしないときには、irc.libera.chat の #gentoo (webchat) チャンネルに気軽に参加してみてください。そんなときじゃなくても全然かまわないんですけどね。
そういえば、Gentoo について何か分からないことがあったら、よくある質問を見てみてください。Gentoo Forums 上にある FAQs もあります。
ハードウェア要件
始める前に、ppcの機械に首尾よくGentooをインストールするために必要なハードウェアの条件を示します。
システム概要 | |
---|---|
Apple NewWorld マシン | iMac、eMac、iBook PowerBook、Xserver、PowerMac 等の、Power/PowerPC マイクロプロセッサ (G3, G4, G5) |
Apple OldWorld machines | Beige G3s, PCI PowerMacs and PCI PowerBooks 等の、Open Firmware リビジョン 3 未満の Apple マシン。PCI ベースの Apple クローンもサポートされているはずです。 |
Genesi | Pegasos I/II、Open Desktop Workstation、Efika |
IBM | RS/6000、i シリーズ、p シリーズ |
要件 | |
メモリ | 少なくとも 64 MB |
ディスク容量 | 1.5 GB (スワップ領域を除く) |
スワップ領域 | 少なくとも 256 MB |
インストールに関連する一般的な問題への解決策や、あるいは単に PowerPC マシンに何があるのか知るためには、Gentoo PPC FAQ を是非読んでください。
Gentoo Linux インストールメディア
非 Gentoo 系の他のインストールメディアを使用しても構いませんが、公式メディアをおすすめします。Gentoo インストールメディアには必要なツールが確実に含まれています。非 Gentoo 系メディアを使う場合は、ディスクの準備に移動してください。
Minimal インストール CD
Gentoo MinimalインストールCDは、自己完結したGentoo環境である、ブート可能イメージです。このCDを使うとLinuxをCDやその他のインストールメディアから起動することができます。起動時、接続されたハードウェアが検出されて適切なドライバが読み込まれます。 このイメージは、Gentooの開発者によってメンテナンスされるもので、インターネット接続さえできれば誰でもGentooをインストールできるようにします。
MinimalインストールCDは、install-ppc-minimal-<release>.isoと呼ばれます。
必要なときに使う Gentoo LiveDVD
必要な場合に使う、Gentooをインストール用の特別なDVDイメージが作成されています。この章で説明する方法は、MinimalインストールCDをターゲットにしているので、LiveDVDから起動する場合と少々の差異があるかもしれません。しかしLiveDVD (または他の公式 Gentoo Linux 環境) は、ターミナル上で単純にsudo su -またはsudo -iを実行するだけで、rootプロンプトの取得を行えます。
Stage とは?
stage3 tarballは、プロファイル特有でかつ最小限のGentoo環境を含んだアーカイブで、このハンドブックに従ってインストールを進めるのに適しています。以前は、このハンドブックでは3つのstage tarballsから1つを選ぶインストール方法を説明していました。Gentooはもうstage1とstage2のtarballをダウンロード用に提供していません。これは、これらが内部使用のためであること、そして新しいアーキテクチャに対するブートストラップとして使用されているためです。
stage3 tarballは、公式Gentooミラーのいずれか のreleases/ppc/autobuilds/からダウンロードできます。stageファイルは頻繁に更新され、公式のインストールイメージの中には含まれていません。
ダウンロード
メディアの入手
Gentoo Linuxが使う既定のインストールメディアは、MinimalインストールCDで、とても小さいブータブルGentoo Linux環境を格納しています。この環境はGentooをインストールするために最適なツールをすべて含んでいます。このCDのイメージは、ダウンロードページから(推奨)か、たくさんの利用可能なミラーのいずれかを自分で選び、そのミラー上でISOが置いてある場所を訪れることで、ダウンロードできます。
ミラーからダウンロードするなら、以下の場所でMinimalインストールCDを見つけられます:
- releases/ディレクトリに行く。
- 関連するターゲットアーキテクチャのディレクトリ(例えばppc/)を選択する。
- autobuilds/ディレクトリを選択する。
- amd64とx86アーキテクチャでは、それぞれcurrent-install-amd64-minimal/ or current-install-x86-minimal/のどちらかを選択する。他のすべてのアーキテクチャでは、current-iso/ディレクトリへ進む。
arm、mips、s390 のような一部のターゲットアーキテクチャには、Minimal インストール CD がありません。現時点では、Gentoo Release Engineering project はこれらのターゲット向けの .iso ファイルの作成をサポートしていません。
この場所の中では、インストールメディアファイルは.isoという接尾辞 (拡張子) を持ちます。例えば、以下の一覧を見てみてください。
[DIR] hardened/ 05-Dec-2014 01:42 - [ ] install-ppc-minimal-20141204.iso 04-Dec-2014 21:04 208M [ ] install-ppc-minimal-20141204.iso.CONTENTS 04-Dec-2014 21:04 3.0K [ ] install-ppc-minimal-20141204.iso.DIGESTS 04-Dec-2014 21:04 740 [TXT] install-ppc-minimal-20141204.iso.asc 05-Dec-2014 01:42 1.6K [ ] stage3-ppc-20141204.tar.bz2 04-Dec-2014 21:04 198M [ ] stage3-ppc-20141204.tar.bz2.CONTENTS 04-Dec-2014 21:04 4.6M [ ] stage3-ppc-20141204.tar.bz2.DIGESTS 04-Dec-2014 21:04 720 [TXT] stage3-ppc-20141204.tar.bz2.asc 05-Dec-2014 01:42 1.5K
上記の例では、install-ppc-minimal-20141204.isoというファイルがMinimalインストールCDそのものです。 しかし見て分かりますが、他の関係ファイルも存在しています:
- .CONTENTSファイルは、インストールメディアで利用可能な全てのファイルの一覧を含むテキストファイルです。このファイルは、インストールメディアをダウンロードする前に、特定のファームウェアまたはドライバが含まれているかどうか調べるために使えます。
- .DIGESTSファイルは、様々なハッシュ形式とアルゴリズムで計算したISOファイルのハッシュ値を含んでいます。このファイルは、ダウンロードしたISOファイルが破損しているか否かを調べるために使われます。
- .ascファイルは、ISOファイルのデジタル署名です。これは両方ともダウンロードしたファイルが破損しているか否かを調べるために使われますが、同様にダウンロードしたものがGentooリリースエンジニアリングチームによって実際に提供されたものであり、改竄されていないかを調べるためにも用います。
今のところ、この場所で利用可能な他のファイルは無視してください。インストールがもっと進んだ後に再登場しますので。.isoファイルをダウンロードし、もしダウンロードの検証が必要であれば、.isoファイル用の.iso.ascファイルも同じようにダウンロードします。 .CONTENTSファイルはダウンロードする必要はありません。これからのインストール手順ではもう参照しないからです。.iso.ascファイル内の署名を検証する場合は、.DIGESTSファイルは不要です。
ダウンロードしたファイルを検証する
これは任意自由選択なステップで、Gentoo Linux をインストールするために必須なものではありません。しかしながら、ダウンロードしたファイルが破損していないことを確かめ、Gentoo インフラストラクチャチームから実際に提供されていることを保証するため、推奨されます。
.asc ファイルは ISO のデジタル署名を提供します。これを検証することで、インストール・ファイルが Gentoo リリースエンジニアリングチームによって提供された状態のまま、変更されていないということを確認できます。
Microsoft Windows 上での検証
まずデジタル署名を検証するには、例えばGPG4Winのようなツールを利用できます。インストール後、Gentooリリースエンジニアリングチームの公開鍵をインポートする必要があります。鍵の一覧は署名のページで提供されています。インポート後、ユーザは.ascファイル内の署名を検証できるようになります。
Linux 上での検証
Linuxシステムでは、デジタル署名を検証する最も一般的な方法はapp-crypt/gnupgソフトウェアを使うことです。このパッケージがインストールされていると、.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 を使用してダウンロードすることも可能です:
user $
gpg --auto-key-locate=clear,nodefault,wkd --locate-key releng@gentoo.org
gpg: key 0x9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported gpg: key 0xBB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported gpg: Total number processed: 2 gpg: imported: 2 gpg: public key of ultimately trusted key 0x58497EE51D5D74A5 not found gpg: public key of ultimately trusted key 0x1F3D03348DB1A3E2 not found gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u pub dsa1024/0x9E6438C817072058 2004-07-20 [SC] [expires: 2024-01-01] D99EAC7379A850BCE47DA5F29E6438C817072058 uid [ unknown] Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org> sub elg2048/0x0403710E1415B4ED 2004-07-20 [E] [expires: 2024-01-01]
または、公式 Gentoo リリースメディアを使用している場合は、(sec-keys/openpgp-keys-gentoo-release によって提供される) /usr/share/openpgp-keys/gentoo-release.asc から鍵をインポートしてください:
user $
gpg --import /usr/share/openpgp-keys/gentoo-release.asc
gpg: directory '/home/larry/.gnupg' created gpg: keybox '/home/larry/.gnupg/pubring.kbx' created gpg: key DB6B8C1F96D8BF6D: 2 signatures not checked due to missing keys gpg: /home/larry/.gnupg/trustdb.gpg: trustdb created gpg: key DB6B8C1F96D8BF6D: public key "Gentoo ebuild repository signing key (Automated Signing Key) <infrastructure@gentoo.org>" imported gpg: key 9E6438C817072058: 3 signatures not checked due to missing keys gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported gpg: key BB572E0E2D182910: 1 signature not checked due to a missing key gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported gpg: key A13D0EF1914E7A72: 1 signature not checked due to a missing key gpg: key A13D0EF1914E7A72: public key "Gentoo repository mirrors (automated git signing key) <repomirrorci@gentoo.org>" imported gpg: Total number processed: 4 gpg: imported: 4 gpg: no ultimately trusted keys found
次にデジタル署名を検証します:
user $
gpg --verify install-ppc-minimal-20141204.iso.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ファイルをダウンロードしただけでは、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-ppc-minimal-20141204.iso
GUIを好むユーザーはkde-apps/k3bパッケージの一部であるK3Bを使うことができます。K3Bでは、ToolsメニューからBurn CD Imageを選択してください。
起動する
Default: Booting the installation CD with yaboot
On NewWorld machines place the Installation CD in the CD-ROM and reboot the system. When the system-start-bell sounds, simply hold down the C until the CD loads.
After the installation CD loaded, a boot prompt will show up at the bottom of the screen.
We provide one generic kernel, ppc32. This kernel is built with support for multiple CPUs, but it will boot on single processor machines as well.
It is possible to tweak some kernel options at this prompt. The following table lists some of the available boot options you can add:
Boot Option | Description |
---|---|
video | This option takes one of the following vendor-specific tags: nvidiafb, radeonfb, rivafb, atyfb, aty128 or ofonly. Follow this tag with the resolution refresh rate and color depth to use. For instance, video=radeonfb:1280x1024@75-32 will select the ATI Radeon frame buffer at a resolution of 1280x1024 with a refresh rate of 75Hz and a color depth of 32 bits. When uncertain about what to choose, and the default doesn't work, video=ofonly will most certainly work. |
nol3 | Disables level 3 cache on some PowerBooks (needed for at least the 17") |
dofirewire | Enables support for IEEE1394 (FireWire) devices, like external harddisks. |
dopcmcia | To use PCMCIA devices during the installation (like PCMCIA network cards) this options needs to be enabled. |
dosshd | Starts sshd. Useful for unattended installs. |
passwd=foo | Sets whatever is after the = as the root password. Use with dosshd for remote installs. |
To use the above options, at the boot prompt, type ppc32
followed by the desired option. In the example below, we'll force the kernel to use the Open Firmware framebuffer instead of the device specific driver.
boot:
ppc32 video=ofonly
If no options are needed, just type ppc32 at this prompt, and a complete Gentoo Linux environment will be loaded from the CD.
Alternative: Booting the installation CD on a Pegasos system
On the Pegasos simply insert the CD and at the SmartFirmware boot-prompt type cd /boot/menu
.
boot
cd /boot/menu
This will open a small bootmenu that allows users to choose between several preconfigured video configs. Any special boot options can be appended to the command-line just like with Yaboot above. For example:
boot
cd /boot/pegasos video=radeonfb:1280x1024@75 mem=256M
The default kernel options (in case something goes wrong) are preconfigured with console=ttyS0,115200 console=tty0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot root=/dev/ram0
.
Alternative: Booting the installation CD with BootX
With an OldWorld Mac the bootable portion of the livecd can't be used. The most simple solution is to use MacOS 9 or earlier to bootstrap into a Linux environment with a tool called BootX.
First, download BootX and unpack the archive. Copy the the BootX Extension from the unpacked archive into Extensions Folder and the BootX App Control Panel into Control Panels, both of which are located in the MacOS System Folder. Next, create a folder called "Linux Kernels" in the System folder and copy the ppc32 kernel from the CD to this folder. Finally, copy ppc32.igz from the Installation CD boot folder into the MacOS System Folder.
To prepare BootX, start the BootX App Control Panel. First select the Options dialog and check Use Specified RAM Disk and select ppc32.igz from the System Folder. Continue back to the initial screen and ensure that the ramdisk size is at least 32000. Finally, set the kernel arguments as shown below:
cdroot root=/dev/ram0 init=linuxrc loop=image.squashfs looptype=squashfs console=tty0
The kernel parameters in the yaboot section above are also applicable here. Append any of those options to the kernel arguments above.
Check once more to make sure the settings are correct and then save the configuration. This saves typing just in case it doesn't boot or something is missing. Press the Linux button at the top of the window. If everything goes correctly, it should boot into the Installation CD.
Setting the keyboard map
After boot, a root ("#") prompt appears on the current console. It is possible to switch to other consoles by pressing Alt + F2, Alt + F3 and Alt + F4. Get back to the first one by pressing Alt + F1. Due to the keyboard layout, it may be necessary to press Alt + fn + F# on Apple machines.
When installing Gentoo on a system with a non-US keyboard, use loadkeys to load the keymap for the keyboard. To list the available keymaps, execute ls /usr/share/keymaps/i386
.
root #
ls /usr/share/keymaps/i386
Now load the keymap of choice:
root #
loadkeys be-latin1
例外的なハードウェア構成
インストールメディアが起動するとき、すべてのハードウェア機器を検出して適切なカーネルモジュールを読み込もうとします。これは非常に多くの場合、とても良い仕事をします。しかしある場合において、システムに必要なカーネルモジュールを自動で読み込まないかもしれません。PCI自動検出機能がシステムのハードウェアを見逃した場合、適切なカーネルモジュールを手動で読み込む必要があります。
次の例は、(ある種類のネットワークインタフェイスをサポートする) 8139tooモジュールを読み込みます:
root #
modprobe 8139too
追加可能: ユーザアカウント
インストール環境に他の人たちがアクセスする必要があったり、インストールメディア上で非rootユーザでコマンドを実行する(例えば、セキュリティ上の理由から、root権限無しでirssiを使ってチャットする)必要があるなら、別のユーザアカウントを作成し、強いrootパスワードを設定する必要があります。
rootパスワードを変更するには、passwdユーティリティを使ってください:
root #
passwd
New password: (新しいパスワードを入力) Re-enter password: (もう一度新しいパスワードを入力)
ユーザーアカウントを作成するためには、まずアカウントの資格情報を、次にパスワードを入力します。このために、useraddとpasswdコマンドを使います。
次の例では、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を押すことで新しい端末 (TTY) を使い始められます。
インストール中、 linksコマンドでGentooハンドブックを閲覧できます。もちろん、インターネット接続が機能し始めた瞬間からですけど。
user $
links https://wiki.gentoo.org/wiki/Handbook:PPC/ja
元々の端末に戻るには、Alt+F1を押してください。
Gentoo minimal または Gentoo 管理環境にブートすると、7 つの TTY が利用できるでしょう。Alt を押しながらファンクションキー F1-F7 を押すことで切り換えることができます。作業が完了するのを待ちながらドキュメントを開きたいときなどは、ターミナルを切り換えると便利でしょう。
GNU Screen
公式 Gentoo インストールメディアにはデフォルトで Screen ユーティリティがインストールされています。熟練の Linux ファンにとっては、上に書いた複数の TTY を使う方法よりも、ペインを分割してインストール指示を読むために screen を使うほうが効率がいいかもしれません。
追加可能:SSH デーモンの開始
他のユーザーがインストール中にシステムにアクセスできるようにする(インストール中のサポートをしたり、あるいは全て遠隔操作で行うため)ためには、(前述の通り)ユーザーアカウントを作成し、SSHデーモンを起動する必要があります。
OpenRC 上で SSH デーモンを始動させるためには、次のコマンドを実行します:
root #
rc-service sshd start
ユーザーがシステムにログオンすると、(指紋・fingerprint と呼ばれるもので) ホスト鍵を確認するようメッセージが表示されると思います。これはSSHサーバーへの最初の接続では期待される典型的な挙動です。ところが、この後の手順でシステムのセットアップが完了した後、改めてログオンしようとすると、SSHクライアントはホスト鍵が変更されていると警告します。SSH的には別のサーバー (現在インストールに使っているLive環境ではなく、新しくインストールされた Gentoo システム) にログオンしようとしているように見えるのです。この場合は画面上の指示に従い、クライアント側で記憶しているホスト鍵を更新しましょう。
sshd を使えるようにするには、ネットワークを適切に機能させる必要があります。ネットワーク設定の章を参照してください。
ネットワークの自動検出
動いているかも?
もしあなたのシステムが、DHCPサーバを持つEthernetネットワークに接続されているなら、おそらく既にネットワーク設定は自動的に完了しているでしょう。その場合には、ssh、scp、ping、irssi、wget、linksなど、インストールメディアに含まれるネットワーク接続が必要な多くのコマンドはすぐに使うことができるでしょう。
インターフェース名を決定する
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とはかなり違うものになっているかもしれません。最近のインストールメディアはeno0やens1やenp5s0など、命名規則に則ったネットワークインターフェース名を表示するかもれません。ifconfigの出力から、あなたのローカルネットワーク上のIPアドレスが設定されたインターフェースを探してください。
標準の 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"
ユーザ名とパスワードが必要ならば、次の構文で変数を設定します:
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用)などのツールが含まれているなら、それらを使って設定できます。
お使いのインストールメディアがこれらのツールを含んでいない場合は、手動でのネットワーク設定へ進んでください。
- 通常の Ethernet ユーザはデフォルト: net-setup を使うへ
- ADSL ユーザは代替案: PPPを使うへ
- 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をもう一度試してください(今度はうまくいくはずです)。しかし上級者のために、手動でのネットワーク設定についても説明していきます。
あなたのネットワーク構成に応じて、次の節のうちからひとつを選んでください:
- 自動で IP を取得するために DHCP を使う
- 無線ネットワークを使用するために無線接続を準備する
- ネットワーク用語を理解するではネットワーク接続の基礎を説明します
- ifconfig と route を使うではネットワーク接続を手動で設定する方法を説明します
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してみましょう)、設定は完了です。次に進む準備ができました。この節の残りの部分を飛ばして、ディスクの準備に進みましょう。
無線接続を準備する
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
無線カードのデバイス名は、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
無線ネットワークが WPA または WPA2 で設定されている場合には、wpa_supplicant を使う必要があります。Gentoo Linux でのネットワーク設定のさらなる情報については、Gentoo ハンドブックの無線ネットワークの章を読んでください。
iw dev wlp9s0 link を使って、無線の設定ができたか確認してください。無線が機能したら、次節(ネットワーク用語を理解する)に示す、IP レベルのネットワークオプションの設定に進むか、先に示した net-setup ツールを使ってください。
ネットワーク用語を理解する
IP アドレス、ブロードキャストアドレス、ネットマスクやネームサーバーのことを知っているなら、このサブセクションを飛ばして ifconfig と route を使うに進んでください。
もし上記のすべてが失敗したら、ネットワークは手動で設定される必要があります。これは少しも難しくありませんが、幾ばくかのネットワーク用語と基礎的な概念の知識は必要でしょう。この章を読んだあとには、ユーザーはゲートウェイが何で、ネットマスクがなんの役に立っていて、ブロードキャストアドレスがどのように作られてなぜシステムがネームサーバーを必要とするのかがわかるでしょう。
ネットワーク内部では、ホストはIPアドレス(インターネットプロトコルアドレス)によって識別されます。少なくともIPv4 (IP バージョン4)を使うときは、そのようなアドレスは0から255の間の4つの数字の組み合わせです。実際は、IPv4アドレスは32ビット(0と1の集合)からできています。例をみてみましょう。
IP Address (数字): 192.168.0.2 IP Address (ビット): 11000000 10101000 00000000 00000010 -------- -------- -------- -------- 192 168 0 2
IPv4の後継であるIPv6は128ビット(0と1の集合)を使っています。この章ではIPv4アドレスに焦点を合わせています。
そのようなIPアドレスはすべての接続可能なネットワークが関わっている範囲で一意に定まっています。つまり到達可能でありたいホストはどれも、唯一なIPアドレスを持たなければならないということです。ネットワークの内部と外部を区別するために、IPアドレスはネットワーク部とホスト部の2つの部分に分かれています。
0の並びのあとに1の並びが続くネットマスクによって、その分かれ目は記録されています。1が位置しているIPの部分はネットワーク部で、そうでない部分はホスト部です。普通は、ネットマスクはIPアドレスとして記録されるでしょう。
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アドレスで通信を受けられます。このアドレスは、パケットをブロードキャストするためだけに存在します。
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つのステップで手動でネットワークの設定ができます。
- ifconfigコマンドを使ってIPアドレスを割り当てる
- routeコマンドを使ってゲートウェイへのルーティングを設定する
- 正しいネームサーバの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アドレスに置き換えてください。複数のネームサーバを追加することが可能です:
/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 バス、SCSI、USB バスを介してブロックストレージとして接続されます。例えば、最初の 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) ごとの連続領域としてアドレッシングできます。
パーティション
Although it is theoretically possible to use a full disk to house a Linux system, this is almost never done in practice. Instead, full disk block devices are split up in smaller, more manageable block devices. On most systems, these are called partitions.
In the remainder of the installation instructions, we will use the Pegasos example partition layout. Adjust to personal preference.
パーティション構成の設計
パーティション数とサイズ
ディスクのパーティションレイアウトの設計は、システムに対する要求と、デバイスに適用されるファイルシステムに大きく依存します。多数のユーザがいる場合、セキュリティを向上し、バックアップの作成とその他のメンテナンスを容易にするために、/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 個までしかパーティションを作れません。
サービスおよび init システムとして systemd を使うつもりのインストールでは、/usr ディレクトリはルートファイルシステムの一部とするか、または initramfs によりマウントされるようにして、ブート時に利用できるようにしなくてはなりません。
スワップ領域について
スワップ領域のサイズについて完璧な値というものはありません。スワップ領域の目的は、メインメモリ(RAM)が逼迫した際、カーネルにディスク領域を提供するためにあります。スワップ領域があれば、カーネルは最近最も使われていないメモリページをディスクに書き出し(スワップもしくはページアウト)、現在のタスクのために RAM 上に置かれたメモリを開放します。もちろん、もしディスクにスワップされたページが急に必要になった場合は、これらのページはメモリに戻す(ページイン)必要があります。これには、RAM から読み込むより相当長い時間がかかります(メインメモリと比較してディスクはとても遅いためです)。
システムがメモリを大量に消費するアプリケーションを実行しないとき、またシステムが多くの RAM を持っているときは、それほど大きいスワップ領域は必要ではありません。しかし、ハイバネーションの際に、スワップ領域はメモリの内容すべてを保存するために使われる(サーバシステムよりも、デスクトップやラップトップシステムでよくあることです)ことに留意してください。システムにハイバネーションのサポートが必要な場合は、メモリの全体量以上のサイズのスワップ領域が必要です。
一般的なルールとして、スワップ領域のサイズは内部メモリ (RAM) の 2 倍であることが推奨されます。複数のハードディスクを備えるシステムでは、並列して読み込み/書き込み操作が行えるように、それぞれのディスクに 1 つずつスワップパーティションを作成するのが賢い方法です。スワップ空間内のデータにアクセスしなくてはならないときに、ディスクがより高速にスワップできるほど、システムもより高速に動作するでしょう。回転式ディスクとソリッドステートディスクを比較すると、SSD 上にスワップを置いたほうが高いパフォーマンスが発揮できます。また、スワップパーティションの代わりにスワップファイルを使用することもできます。これは主にディスク容量が非常に限られたシステムで興味深いものです。
Apple New World
Apple New World machines are fairly straightforward to configure. The first partition is always an Apple Partition Map (APM). This partition keeps track of the layout of the disk. It is not possible to remove this partition. The next partition should always be a bootstrap partition. This partition contains a small (800KiB) HFS filesystem that holds a copy of the bootloader Yaboot and its configuration file. This partition is not the same as a /boot partition as found on other architectures. After the boot partition, the usual Linux filesystems are placed, according to the scheme below. The swap partition is a temporary storage place for when the system runs out of physical memory. The root partition will contain the filesystem that Gentoo is installed on. To dual boot, the OSX partition can go anywhere after the bootstrap partition to insure that yaboot starts first.
There may be "Disk Driver" partitions on the disk such as Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, and Apple_Patches. These are used to boot MacOS, so if there is no need for this, they can be removed by initializing the disk with mac-fdisk's i option. Be careful, this will completely erase the disk! If in doubt do not remove them.
If the disk is partitioned with Apple's Disk Utility, there may be 128 MiB spaces between partitions which Apple reserves for "future use". These can be safely removed.
Partition | Size | Filesystem | Description |
---|---|---|---|
/dev/sda1 | 32KiB | None. | Apple Partition Map (APM). |
/dev/sda2 | 800KiB | HFS | Apple bootstrap. |
/dev/sda3 | 512 MiB | swap | Linux swap (type 0x82). |
/dev/sda4 | Rest of the disk. | ext4, xfs, etc. | Linux root. |
Apple Old World
Apple Old World machines are a bit more complicated to configure. The first partition is always an Apple Partition Map (APM). This partition keeps track of the layout of the disk. It is not possible to remove this partition. When using BootX, the configuration below assumes that MacOS is installed on a separate disk. If this is not the case, there will be additional partitions for "Apple Disk Drivers" such as Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches and the MacOS install. When using Quik, it is necessary to create a boot partition to hold the kernel, unlike other Apple boot methods. After the boot partition, the usual Linux filesystems are placed, according to the scheme below. The swap partition is a temporary storage place for when the system runs out of physical memory. The root partition will contain the filesystem that Gentoo is installed on.
When using an OldWorld machine, it is necessary to keep MacOS available. The layout here assumes MacOS is installed on a separate drive.
Example partition layout for an Old World machine:
Partition | Size | Filesystem | Description |
---|---|---|---|
/dev/sda1 | 32KiB | None. | Apple Partition Map (APM). |
/dev/sda2 | 32MiB | ext2 | Quik Boot Partition (quik only). |
/dev/sda3 | 512MiB | swap | Linux swap (type 0x82). |
/dev/sda4 | Rest of the disk. | ext4, xfs, etc. | Linux root. |
Pegasos
The Pegasos partition layout is quite simple compared to the Apple layouts. The first partition is a boot partition, which contains kernels to be booted along with an Open Firmware script that presents a menu on boot. After the boot partition, the usual Linux filesystems are placed, according to the scheme below. The swap partition is a temporary storage place for when the system runs out of physical memory. The root partition will contain the filesystem that Gentoo is installed on.
Example partition layout for Pegasos systems:
Partition | Size | Filesystem | Description |
---|---|---|---|
/dev/sda1 | 32MiB | affs1 or ext2 | Boot partition. |
/dev/sda2 | 512MiB | swap | Linux swap (type 0x82). |
/dev/sda3 | Rest of the disk. | ext4, xfs, etc. | Linux root. |
IBM PReP (RS/6000)
The IBM PowerPC Reference Platform (PReP) requires a small PReP boot partition on the disk's first partition, followed by the swap and root partitions.
Example partition layout for the IBM PReP:
Partition | Size | Filesystem | Description |
---|---|---|---|
/dev/sda1 | 800KiB | None | PReP boot partition (type 0x41). |
/dev/sda2 | 512MiB | swap | Linux swap (type 0x82). |
/dev/sda3 | Rest of the disk | ext4, xfs, etc. | Linux root (type 0x83). |
parted is able to resize partitions including HFS+. Unfortunately there may be issues with resizing HFS+ journaled filesystems, so, for the best results, switch off journaling in Mac OS X before resizing. Remember that any resizing operation is dangerous, so attempt at own risk! Be sure to always have a backup of all data before resizing!
Using mac-fdisk (Apple)
At this point, create the partitions using mac-fdisk:
root #
mac-fdisk /dev/sda
If Apple's Disk Utility was used prior to leave space for Linux, first delete the partitions that might have been created previously to make room for the new install. Use d in mac-fdisk to delete those partition(s). It will ask for the partition number to delete. Usually the first partition on NewWorld machines (Apple_partition_map) cannot be deleted. To start with a clean disk, simply initialize the disk by pressing i. This will completely erase the disk, so use this with caution.
Second, create an Apple_Bootstrap partition by using b. It will ask for what block to start. Enter the number of the first free partition, followed by a p. For instance this is 2p.
This partition is not a /boot partition. It is not used by Linux at all; there is no need to place any filesystem on it and it should never be mounted. Apple users don't need an extra partition for /boot.
Now create a swap partition by pressing c. Again mac-fdisk will ask for what block to start this partition from. As we used 2 before to create the Apple_Bootstrap partition, now enter 3p. When sked for the size, enter 512M (or whatever size needed - a minimum of 512MiB is recommended, but 2 times the physical memory is the generally accepted size). When asked for a name, enter swap.
To create the root partition, enter c, followed by 4p to select from what block the root partition should start. When asked for the size, enter 4p again. mac-fdisk will interpret this as "Use all available space". When asked for the name, enter root.
To finish up, write the partition to the disk using w and q to quit mac-fdisk.
To make sure everything is okay, run mac-fdisk -l and check whether all the partitions are there. If not all partitions created previously are shown, or the changes made are not reflected in the output, reinitialize the partitions by pressing i in mac-fdisk. Note that this will recreate the partition map and thus remove all existing partitions.
Using parted (Pegasos and RS/6000)
parted, the partition editor, can now handle HFS+ partitions used by Mac OS and Mac OS X. With this tool it is possible to resize the Mac partitions and create space for the Linux partitions. Nevertheless, the example below describes partitioning for Pegasos machines only.
To begin let's fire up parted:
root #
parted /dev/sda
If the drive is unpartitioned, run mklabel amiga to create a new disklabel for the drive.
It is possible to type print at any time in parted to display the current partition table. To abort parted, press Ctrl+c.
If next to Linux, the system is also meant to have MorphOS installed, then create an affs1 filesystem at the start of the drive. 32MB should be more than enough to store the MorphOS kernel. With a Pegasos I, or when Linux will use any filesystem besides ext2 or ext3, then it is necessary to also store the Linux kernel on this partition (the Pegasos II can only boot from ext2/ext3 or affs1 partitions). To create the partition run mkpart primary affs1 START END
where START and END should be replaced with the megabyte range (e.g. 0 32) which creates a 32 MB partition starting at 0MB and ending at 32MB. When creating an ext2 or ext3 partition instead, substitute ext2 or ext3 for affs1 in the mkpart command.
Create two partitions for Linux, one root filesystem and one swap partition. Run mkpart primary START END
to create each partition, replacing START and END with the desired megabyte boundaries.
It is generally recommended to create a swap partition that is two times bigger than the amount of RAM in the computer, but at least 512MiB is recommended. To create the swap partition, run mkpart primary linux-swap START END
with START and END again denoting the partition boundaries.
When done in parted simply type quit
.
ファイルシステムを作成する
はじめに
パーティションが作成できたら、その上にファイルシステムを作成します。次の節ではLinuxがサポートする各種ファイルシステムを紹介します。どのファイルシステムを使うかをすでに決めているなら、パーティションにファイルシステムを適用するへ進みましょう。そうでなければ、次の節を読んで利用可能なファイルシステムについて知るのがよいでしょう。
ファイルシステム
Linux は多くのファイルシステムをサポートしていますが、それらの多くは特定の目的をもって配備するのが賢明なものです。特定のファイルシステムのみが ppc アーキテクチャ上で安定して動作するとされています - 重要なパーティションに実験的なファイルシステムを選択するときは、事前にファイルシステムのサポート状況を十分に知っておくことを推奨します。ext4 はすべてのプラットフォームで、すべての目的で推奨されるファイルシステムです。以下は、網羅的ではないリストです
- btrfs
- スナップショット、チェックサムによる自己修復、透過的圧縮、サブボリューム、RAIDの統合など、多くの先進機能を提供する次世代のファイルシステムです。 深刻な問題への対処がより新しい LTS カーネルブランチのリリースにしか含まれていないので、5.4.y より前のカーネルを btrfs と実運用するのは安全性の保証がありません。さらに古いカーネルブランチではファイルシステム破損の問題はよくあることで、4.4.y より古いものは特に危険で破損しやすいです。古い (5.4.y より前の) カーネルでは、圧縮が有効化されているとより破損が発生しやすいです。RAID 5/6 とクオータグループは、btrfs のすべてのバージョンで安全ではありません。さらに btrfs では内部断片化 (空き領域が DATA + SYSTEM チャンクにピン留めされているが、METADATA チャンクが必要としている) のために、df が空き領域を報告したのに ENOSPC でファイルシステムの操作に失敗するという、直感に反することが起きることがあります。加えて、a single 4K reference to a 128M extent inside btrfs は、空き領域が存在するが割り当てには利用できないということを引き起こすことがあります。これも df が空き領域を報告するのに btrfs は ENOSPC を返す原因になり得ます。sys-fs/btrfsmaintenance をインストールして定期的に実行するスクリプトを構成することで、btrfs をリバランスして ENOSPC 問題の可能性を減らすことができますが、空き領域が存在するのに ENOSPC のリスクは消えはしないでしょう。ENOSPC が発生するかは用途によります。運用中の ENOSPC のリスクが許容できない場合は、別のものを使うべきです。btrfs を使うなら、問題が発覚している構成を避けることを確実にしてください。ENOSPC は例外として、最新のカーネルブランチに存在する問題についての情報は btrfs wiki status page で確認できます。
- 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+木ベースのファイルシステムで、様々な条件で良いパフォーマンスが出ます。
- XFS
- メタデータジャーナリングのあるファイルシステムで、堅牢な機能セットを持ち、スケーラビリティに最適化されています。XFSはどうやら、様々なハードウェアの問題に対してはあまり寛大ではないようですが、継続的に新しい機能を取り入れるようにアップグレードしてきています。
- VFAT
- 別名FAT32。Linuxでサポートされていますが、標準的なUNIXパーミッションの設定をサポートしていません。ほとんど、他のOS(Microsoft WindowsまたはApple macOS)との相互運用性/交換のために使われていますが、いくつかのシステムブートローダーファームウェア(たとえばUEFI)でも必要になります。UEFIシステムを使用している場合は、システムをブートするためにはVFATでフォーマットされたEFIシステムパーティションが必要になるでしょう。
- NTFS
- この "New Technology" ファイルシステムは、Windows NT 3.1以降のMicrosoft Windowsのフラッグシップファイルシステムです。VFATと同様、BSDやLinuxが正しく動作するために必要なUNIXパーミッション設定や拡張属性を保持しないため、ほとんどの場合ルートファイルシステムとして使うべきではありません。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
上述のコマンドで、スワップを作成して有効化しましょう。
ルートパーティションのマウント
非 Gentoo インストールメディアを利用している場合、次を実行してマウントポイントを作成する必要があります:
root #
mkdir --parents /mnt/gentoo
パーティションが初期化され、ファイルシステムを格納したので、それらのパーティションをマウントする時です。 mount コマンドを使用しますが、作成されたすべてのパーティションに必要なマウントディレクトリを作成することを忘れないでください。例として、 rootパーティションをマウントします。
root #
mount /dev/sda3 /mnt/gentoo
もし/tmp/を別のパーティションに置く必要があるなら、マウントしたあと権限の変更を忘れずに行ってください:
root #
chmod 1777 /mnt/gentoo/tmp
このあと解説の中で、proc ファイルシステム (仮想的なカーネルとのインターフェース) が、他のカーネル擬似ファイルシステムと同様にマウントされますが、まず最初は、Gentoo インストールファイルをインストールします。
stage tarballをインストールする
日時を設定する
Gentoo をインストールする前に、時刻を正しく設定しなくてはなりません。Gentoo のウェブベースのサービスではセキュリティ証明書を利用しているため、システム時刻があまりにもずれていると、インストール用ファイルをダウンロードできないかもしれません。また、初期のインストールが完了した後で時刻を修正した場合、未来の日付で保存されたファイルがおかしなエラーを引き起こすことがあるかもしれません。
date コマンドを実行して、現在の日付と時刻が正しいか確認してください。
root #
date
Mon Oct 3 13:16:22 PDT 2021
表示された日時が 2、3 分以上ずれている場合は、正確を期すため、以下に示す方法のうちいずれかに従って更新してください。
自動
ほとんどの読者は、タイムサーバを利用してシステムに自動で時刻を更新させることを望むでしょう。
一部のマザーボードは、システムの電源がオフになっている間も比較的正確な時刻を保つための、リアルタイムクロック (RTC) を搭載していないことがあります。これらのシステムでは、システム起動のたびに、そしてその後定期的に、システム時刻を時刻サーバと自動的に同期するように設定するのがとても重要です。これは RTC を搭載しているけれど、バッテリーがだめになってしまったシステムについても、同様に重要です。
公式 Gentoo live 環境には、ntpd コマンド (net-misc/ntp パッケージを通して利用可能です) と、ntp.org 時刻サーバを指定した設定ファイルも含まれています。これによって、時刻サーバを利用して、システム時刻を UTC 時刻と自動で同期することができます。この方法はネットワーク設定を必要とし、アーキテクチャによっては利用できないかもしれません。
自動時刻同期によって犠牲になるものもあります。例えば、システムの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を選択する
すべてのアーキテクチャが 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 リポジトリにはデーモンを起動するソリューションがあるということです。
systemd
systemd は SysV スタイルの init と rc の、Linux システム向けの現代的な代替です。Linux ディストリビューションの大多数では、第一の init システムとして使用されています。systemd は Gentoo で完全にサポートされており、その意図した目的に合うように動作します。もし systemd インストールパスについて、何かがハンドブックから欠けているようであれば、助けを求める前に systemd の記事 を確認してください。
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_proxyやftp_proxy変数をexportしてください。
root #
export http_proxy="http://proxy.server.com:port"
root #
export ftp_proxy="http://proxy.server.com:port"
ミラーリストから、近くのミラーを選んでください。通常はHTTPミラーで十分ですが、他のプロトコルも使えます。releases/ppc/autobuilds/ ディレクトリに移動してください。入手可能なすべてのstageファイルが列挙されています。ファイルは、サブアーキテクチャにちなんだ名前のサブティレクトリの中にあることもあります。ファイルを選び、dを押してダウンロードしてください。
stage ファイルのダウンロードが完了したら、整合性を検証して stage tarball のコンテンツが正当か確認することができます。興味のあるひとは次節へ進んでください。
stage ファイルの検証と確認に興味が無いひとは、q を押すことでコマンドラインブラウザを終了して、stage tarball を展開する節へすぐに進むことができます。
検証して確認する
今では、ほとんどの 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-ppc-<release>-<init>.tar.xz
sha512sumコマンドを使う方法もあります。
root #
sha512sum stage3-ppc-<release>-<init>.tar.xz
Whirlpoolチェックサムを検証する場合は以下を入力します。
root #
openssl dgst -r -whirlpool stage3-ppc-<release>-<init>.tar.xz
これらのコマンドの出力を.DIGESTS(.asc)ファイルに記録されている値と比較してください。これらの値は合致している必要があります。合致していないのなら、ダウンロードしたファイルか、ダイジェストファイルが壊れているかもしれません。
ISOファイルと同様に、チェックサムが改竄されていないことを確認するために、gpgを使って.DIGESTS.ascファイルの電子署名を検証することもできます:
root #
gpg --verify stage3-ppc-<release>-<init>.tar.xz{.DIGESTS.asc,}
リリースメディアに署名するのに使用された OpenPGP 鍵のフィンガープリントは、Gentoo ウェブサーバのリリースメディアの署名ページで確認できます。
stage tarball を展開する
ここで、ダウンロードした stage を解凍しましょう。tar ユーティリティを使ってください:
root #
tar xpvf stage3-*.tar.xz --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 による設定は永続的なものではありません。
シェルのプロファイルまたは rc ファイルを利用して変数を export することは技術的には可能ですが、これは基本的なシステム管理の方法としてはベストプラクティスではありません。
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
CFLAGSとCXXFLAGS変数はそれぞれ、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
を使うと、必要の無い場合にはフレームポインタをレジスタに保持しなくなります。これはアプリケーションのデバッグ時に深刻な影響を与えるかもしれません。
CFLAGSとCXXFLAGS変数を定義するときには、最適化フラグは1つの文字列として結合してください。stage3アーカイブから解凍したデフォルト値で十分でしょう。以下に例を示します:
# すべての言語において設定するコンパイラフラグ COMMON_FLAGS="-O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe" # 同じ設定を両方の変数に使用 CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}"
各種コンパイルオプションがどのようにシステムに影響するかについては GCC の最適化 の記事に詳しい情報がありますが、初心者がシステムの最適化を始めるには Safe CFLAGS の記事のほうがもっと実践的な場所かもしれません。
MAKEOPTS
MAKEOPTS 変数は、パッケージのインストール時にどれだけ並行してコンパイルを走らせるかを定義します。Portage バージョン 3.0.31[1] 時点において、未定義のままの場合、Portage のデフォルトの挙動では MAKEOPTS 値は nproc が返すスレッド数と同じ数に設定されます。
CPU のスレッド数か、システム全体の RAM 容量を 2 GiB で割った数のうち、小さい方を選択するのがよい選択とされています。
ジョブ数を大きくすると、メモリ使用量にきわめて大きな影響を及ぼします。目安は、指定したジョブ数の各ジョブに対し、最低 2 GiB の RAM が割り当てられるようにすることです (つまり、例えば
-j6
は最低でも 12 GiB を要求します)。メモリが枯渇しないようにするには、利用可能なメモリ容量に合うようにジョブ数を減らしてください。並列 emerge を使用する (
--jobs
) と、実効的なジョブ数が指数関数的に (make ジョブ数 × emerge ジョブ数まで) 増大することがあります。これに対しては、localhost-only distcc 構成によって、ホスト当たりのコンパイラインスタンス数を制限することで対処することができます。/etc/portage/make.conf
make.confのMAKEOPTSの設定例# 未定義のままの場合、Portage のデフォルトの挙動では MAKEOPTS 値は `nproc` が返すスレッド数と同じ数に設定されます MAKEOPTS="-j4"
さらなる詳細については man 5 make.conf 内で MAKEOPTS を検索してください。
よーい、ドン!
好みの設定に合わせて /mnt/gentoo/etc/portage/make.conf を変更し、保存してください。nano では Ctrl+o で変更を保存して、Ctrl+x で終了できます。
それでは Gentoo ベースシステムのインストールに進んでください。
chroot する
任意自由選択: ミラーサーバーを選択する
ディストリビューションファイル
非 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フォーマットで、以下のような記述になっているはずです。
/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ミラーを使わない限り、そのままにしておくことが推奨されます。
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/ 同様、擬似ファイルシステムです。{{Path|/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
が必要です。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ステップで実行されます。
- chrootコマンドによって、最上位ディレクトリを(インストールメディアの)/から(パーティションをマウントしている)/mnt/gentoo/に変更する。
- /etc/profileのいくつかの設定をsourceコマンドでリロードする。
- chroot環境であることを忘れないようするために、シェルのプロンプトを変更する。
root #
chroot /mnt/gentoo /bin/bash
root #
source /etc/profile
root #
export PS1="(chroot) ${PS1}"
この時から、すべての操作は新しい Gentoo Linux 環境で実行されます。
これ以降の時点で 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に固有のユーティリティで、システム管理のための共通の管理インターフェースを提供します。この場合、eselectはnews
モジュールを使うことを指示されます。
news
モジュールに対しては、主に3つの操作が使用されます。
list
を指定すると、現在有効なニュースアイテムの概要が表示されます。read
を指定すると、そのニュースアイテムを読むことができます。purge
を指定すると、一度購読したニュースを削除することができます。これにより、それらのニュースを二度と目にすることはないでしょう。
root #
eselect news list
root #
eselect news read
ニュースリーダーに関するほとんどの情報はマニュアルページを通じて得ることができます。
root #
man news.eselect
適切なプロファイルを選ぶ
デスクトッププロファイルはデスクトップ環境のためだけのものではありません。i3 や sway のようなミニマルなウィンドウマネージャにも適しています。
プロファイルはあらゆるGentooシステムの基礎を構成します。プロファイルはUSE、CFLAGS等の重要な変数の初期値を決めるだけではありません。プロファイルは、パッケージのバージョンを決まった範囲に固定する役目を持っています。プロファイルはGentooのPortage開発者によって完全にメンテナンスされています。
現在使用中のプロファイルを確認するには、eselect を profile
モジュールを指定して実行してください:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/ppc/ * [2] default/linux/ppc//desktop [3] default/linux/ppc//desktop/gnome [4] default/linux/ppc//desktop/kde
コマンドの出力は一例で、常に更新されています。
systemd を使用するには、名前に "systemd" を含んだプロファイルを選択してください。逆もまた然りです。
いくつかのアーキテクチャではデスクトップ向けのサブプロファイルが見られるでしょう。
プロファイルのアップグレードは軽々と行われるものではありません。初期プロファイルを選択する時、確実に stage3 がはじめに使用していたものと同じバージョン(例えば )を使用してください。新しいプロファイルのバージョンは、移行方法を含むニュース項目を通して発表されます。新しいプロファイルに移行する前にはその説明に従ってください。
ppcアーキテクチャで利用可能なプロファイルを確認後、別のプロファイルを選択できます。
root #
eselect profile set 2
developer
サブプロファイルはGentoo Linux開発向けの固有のプロファイルであり、通常のユーザーが使用するものではありません。@worldの更新
この時点で、@world 集合をアップデートするとよいでしょう。それによりベースシステムが構築されます。
このステップは必須で、これによってシステムはアップデートや、stage3が構築された時やプロファイルの選択以降のUSEフラグの変更を適用できます。
root #
emerge --ask --verbose --update --deep --newuse @world
フルスケールのデスクトップ環境を選択した場合、このプロセスはインストール時間を格段に長くしてしまうかもしれません。時間に追われている人は次の経験則が成り立つでしょう。「名前が短く、特定のシステムを示さないプロファイルの @world 集合を選択する」、「もっとも一般的な @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
/etc/portage/make.conf
DVD、ALSA、CD書き込みをサポートしたKDE/Plasmaベースのフラグ設定USE="-gtk -gnome qt5 kde dvd alsa cdr"
/etc/portage/make.conf で USE の値を定義すると、その値はシステムの USE フラグリストに追加されます。USE フラグは、リスト中の値の前に - マイナス記号を追加することで、グローバルに削除することができます。例えば、X グラフィカル環境のサポートを無効化するには、-X
を設定することでこれを行えます:
/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 変数があります。
これは、通常手書きなどで書かれた特定のアセンブリコードや intrinsics 等を含めるようにビルドを構成するために使用されるもので、特定の CPU 機能のために最適化されたコードを出力するようにコンパイラに指示する (-march=
等) のとは異なります。
COMMON_FLAGS を希望に応じて設定するのに加えて、この変数も設定すべきでしょう。
これをセットアップするにはいくつかのステップが必要です:
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 ファイルによって、パッケージ単位で。
- /etc/portage/package.license/ ディレクトリのファイルによって、パッケージ単位で。
Portage は、どのパッケージのインストールを許可するか判断するために、ACCEPT_LICENSE を検索します。 システム全体での現在の設定値を表示するには、以下を実行してください:
user $
portageq envvar ACCEPT_LICENSE
@FREE
必要であれば、/etc/portage/make.conf を変更することで、プロファイル内でシステム全体として受諾されているデフォルトを上書きしてください。
/etc/portage/make.conf
システム全体で ACCEPT_LICENSE でライセンスを受諾する方法の例ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"
必要であれば、次のファイル例を含むディレクトリで示すように、パッケージごとに受諾するライセンスを定義することもできます。package.license ディレクトリが存在しない場合は作成しておく必要があります:
root #
mkdir /etc/portage/package.license
/etc/portage/package.license/kernel
ライセンス承諾の例app-arch/unrar unRAR sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE sys-firmware/intel-microcode intel-ucode
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"や明示的な承諾を必要とするものよりも拘束的です. |
タイムゾーン
このステップは musl libc を使う場合は適用されません。それがどういう意味か分からない場合は、このステップを実行すべきです。
タイムゾーンを選択します。/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 コマンドで設定することができます。
ロケールの設定
このステップは musl libc を使う場合は適用されません。それがどういう意味か分からない場合は、このステップを実行すべきです。
ロケールの生成
ほとんどのユーザは、一つもしくは二つのロケールを必要とします。
ロケールはシステムで使用する言語を指定するだけではなく、単語のソート順や日付、時間等のルールにも使用されます。ロケールは大文字小文字を区別するので、記載とまったく同じように表現する必要があります。利用可能なロケールの一覧は /usr/share/i18n/SUPPORTED ファイルで確認できます。
サポートされるシステムロケールは、/etc/locale.gen ファイルに定義する必要があります。
root #
nano -w /etc/locale.gen
次のロケールの例では、英語(米国)とドイツ語(ドイツ)を(UTF-8のような)文字コードと共に指定しています。
/etc/locale.gen
USと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 を必要とします。
次に locale-gen コマンドを実行します。このコマンドは /etc/locale.gen ファイルに記載されているすべてのロケールを生成します。
root #
locale-gen
現在使用可能なすべてのロケールを確認するためには、locale -aを実行してください。
systemd を使用しているシステムでは、localectl を使用できます。localectl set-locale ... または localectl list-locales のように。
ロケールの選択
この時点で、システム全体で有効になるロケールを設定できます。eselectをlocale
モジュールと共に使いましょう。
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 ファイルも編集してください。
/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 ガイドもお読みください。
任意自由選択: ファームウェアとマイクロコードのインストール
ファームウェア
カーネルコンフィグの節へ進む前に知っておいたほうが良いこととして、一部のハードウェアデバイスは、それを適切に動作させるために追加の (時として FOSS ライセンスに準拠しない) ファームウェアをインストールする必要がある、ということがあります。これはデスクトップとラップトップの両方で広く見られる、無線ネットワークインターフェースで必要になることが多いです。AMD、Nvidia、Intel などのベンダによる最近のビデオチップも、完全に機能させるには外部のファームウェアが必要になることが多いです。最近のハードウェアデバイスのためのファームウェアの多くは sys-kernel/linux-firmware パッケージ内で見つかるかもしれません。
最初のシステムリブートの前に、もし必要だった場合にファームウェアを使えるようにしておくために、sys-kernel/linux-firmware パッケージをインストールしておくことが推奨されます:
root #
emerge --ask sys-kernel/linux-firmware
一部のファームウェアパッケージのインストールには、関連するファームウェアライセンスを受諾する必要があることがよくあります。必要であれば、ライセンスの受諾についてはハンドブックのライセンスの取り扱いの節を確認してください。
モジュールとしてビルド (M) されたカーネルシンボルは、カーネルにロードされたときに、関連するファームウェアファイルをファイルシステムからロードすることに注意してください。モジュールとしてロードされるシンボルに関しては、デバイスのファームウェアファイルをカーネルのバイナリイメージに含める必要はありません。
マイクロコード
個別のグラフィックスハードウェアやネットワークインターフェースに加えて、CPU もまたファームウェアアップデートを必要とすることがあります。こうしたファームウェアは典型的にはマイクロコードと呼ばれます。新しいリビジョンのマイクロコードは、動作の不安定さ、セキュリティ上の懸念、その他の CPU ハードウェアのさまざまなバグに対するパッチとして、必要になることがあります。
AMD CPU に対するマイクロコードアップデートは、先述の sys-kernel/linux-firmware パッケージとともに配布されます。Intel CPU に対するマイクロコードは sys-firmware/intel-microcode パッケージ内で見つかりますので、これを個別にインストールする必要があります。マイクロコードアップデートを適用する方法についてのさらなる情報は、マイクロコードの記事を確認してください。
カーネルのコンフィギュレーションとコンパイル
これで、カーネルソースを設定、コンパイルする準備が整いました。インストールの目的に応じてカーネルの管理のためのアプローチを 3 通り紹介しますが、インストール完了後はいつでも別のアプローチを採用し直すことができます。
簡単なものから込み入ったものへ、順に並べると:
- 完全自動アプローチ: ディストリビューションカーネル
- ディストリビューションカーネルは、Linux カーネル、関連するモジュール、および (必須ではありませんがデフォルトでは有効化されている) initramfs ファイルを、設定、自動でビルド、インストールするために利用されます。将来のカーネル更新はパッケージマネージャを介して扱われるため、他のシステムパッケージとまったく同様に完全に自動で行われます。カスタマイズが必要な場合はカスタムのカーネルコンフィグファイルを提供することも可能です。これが最も簡単なプロセスで、すぐ動作するものが手に入りシステム管理者による関与を最小にできるため、新規の Gentoo ユーザには完璧です。
- ハイブリッドアプローチ: Genkernel
- 新しいカーネルのソースがシステムパッケージマネージャを通じてインストールされます。システム管理者は Linux カーネル、関連するモジュール、および (必須ではありませんがデフォルトでは有効化されていない) initramfs ファイルを、ジェネリックに設定、自動でビルド、インストールするために Gentoo の genkernel ツールを使用します。カスタマイズが必要な場合はカスタムのカーネルコンフィグファイルを提供することも可能です。将来のカーネル設定、コンパイル、インストールには、アップデートのたびに eselect kernel、genkernel、およびもし必要であれば他のコマンドを実行する形で、システム管理者による関与が必要です。
- 完全手動アプローチ
- 新しいカーネルのソースがシステムパッケージマネージャを通じてインストールされます。カーネルは eselect kernel と無数の make コマンドを利用して、手動で設定、ビルド、インストールされます。将来のカーネル更新はカーネルファイルの設定、ビルド、インストールの手動プロセスを繰り返して行います。これが最も込み入ったプロセスですが、カーネル更新プロセスに関して最大限の制御を行えます。
すべてのディストリビューションが構築されるその中心にあるのが Linux カーネルです。カーネルレイヤーはユーザのプログラムとハードウェアの間に存在します。ハンドブックではカーネルソースについていくつかの可能な選択肢を提供しますが、より詳しい説明付きで、より完全なカーネルソースのリストは、カーネルの概要のページで見ることができます。
カーネルソースのインストール
この節の内容は、これ以降の部分で示す genkernel (ハイブリッド) アプローチか、マニュアルカーネル管理のアプローチを採用したときのみ関係があります。
ppc ベースのシステムにカーネルを手動でインストールしてコンパイルする場合には、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
別の方法: Genkernel
すべてをマニュアルで設定することが困難だと思われる場合は、システム管理者はカーネル管理のためのハイブリッドアプローチとして、genkernel を使うことを考えてみるべきです。
Genkernel はジェネリックカーネルコンフィギュレーションファイルを提供し、自動的にカーネル (kernel)、initramfs、および関連するモジュールを生成 (generate) し、生成されたバイナリを適切な場所にインストールします。これによりシステムの初回起動のための最小限かつジェネリックなハードウェアサポートが得られ、さらなる更新の制御と、将来のカーネル設定のカスタマイズが可能になります。
注意: システム管理者はカーネルの保守のために genkernel を使うことで、システムのカーネル、initramfs、その他のオプションに関する更新をより制御できるようになります。その一方で、将来的に新しいソースがリリースされてカーネル更新を実施するときには、時間と労力をかけた献身が確実に必要となるでしょう。システム任せのカーネル保守アプローチを求めているのなら、ディストリビューションカーネルを使用するべきです。
もう一点明確にしておくと、genkernel が自動的に実行中のハードウェアのためにカスタマイズされたカーネルコンフィギュレーションを生成すると信じているなら、それは誤解です。genkernel は、大部分の汎用的なハードウェアをサポートするように事前に決定されたカーネルコンフィギュレーションを使用して、カーネル、関連するモジュール、そして initramfs ファイルをアセンブルしてインストールするために必要な make コマンドを、自動で操作します。
バイナリ再配布可能なソフトウェアのライセンスグループ
linux-firmware パッケージが以前にインストールされているなら、インストールの節に進んでください。
前提条件として、sys-kernel/genkernel パッケージの firwmare
USE フラグがデフォルトで有効化されているため、パッケージマネージャは sys-kernel/linux-firmware パッケージを取り込もうとするでしょう。linux-firmware をインストールする前に、バイナリ再配布可能なソフトウェアライセンスを受諾する必要があります。
このライセンスグループは、/etc/portage/make.conf ファイル内で ACCEPT_LICENSE の値として @BINARY-REDISTRIBUTABLE
を追加することで、すべてのパッケージに対してシステム全体で受諾することができます。/etc/portage/package.license/linux-firmware ファイルで個別の受諾を追加することで、linux-firmware パッケージのみに対して受諾することもできます。
必要であれば、ハンドブックのベースシステムのインストールの章で利用可能な、ソフトウェアライセンスを受諾する方法を再確認して、受け入れられるソフトウェアライセンスのために変更を加えてください。
分析麻痺に陥ってきたなら、次のようにすればよいでしょう:
root #
mkdir /etc/portage/package.license
/etc/portage/package.license/linux-firmware
linux-firmware パッケージのためにバイナリ再配布可能ライセンスを受諾するsys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
インストール
説明や前提条件はさておき、sys-kernel/genkernel パッケージをインストールしてください:
root #
emerge --ask sys-kernel/genkernel
生成
genkernel all を実行してカーネルソースをコンパイルしましょう。ただ、genkernel は多種多様に異なるコンピュータアーキテクチャのために、幅広いハードウェアをサポートするカーネルを生成するため、コンパイルが完了するまでにかなりの時間がかかることがあるということに注意しましょう。
もしルートパーティションまたはボリュームが ext4 以外のファイルシステムを使用している場合、おそらく genkernel --menuconfig all を使ってマニュアルでカーネルを設定し、その特定のファイルシステムのためのサポートを (モジュールとしてファイルシステムをビルドするのではなく) カーネルに組み込む必要があるでしょう。
LVM2 のユーザは以下の genkernel コマンドの引数に
--lvm
を加えるべきです。root #
genkernel --mountboot --install all
genkernel が完了したら、カーネルと初期 RAM ファイルシステム (initramfs) が生成され、/boot ディレクトリにインストールされていることでしょう。関連するモジュールは /lib/modules ディレクトリにインストールされるでしょう。initramfs は、(live ディスクイメージ環境でそうであるように) ハードウェアの自動検出を行うために、カーネルをロードした後すぐに開始されます。
root #
ls /boot/vmlinu* /boot/initramfs*
root #
ls /lib/modules
別の方法: マニュアル設定
はじめに
カーネルのマニュアル設定は、しばしば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 固有のコンフィギュレーションオプションを有効化することを強く推奨します。これらは、正しく機能するために必要な最小限のカーネルの機能が有効化されることを確実にします:
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 システムの選択(OpenRC か systemd か)に依存します。両方の init システムへのサポートを有効化しても害はありません。
もし sys-kernel/vanilla-sources を使用する場合は、この init システムに関する追加の選択項目は利用できないでしょう。サポートを有効化することは可能ですが、このハンドブックの範囲からは外れることです。
典型的なシステムコンポーネントへのサポートを有効化する
システムのブートに必須となるドライバ (SATA コントローラ、NVMe ブロックデバイスサポート、ファイルシステムサポート等) は、モジュールではなく、カーネルの一部としてコンパイルしなければなりません。そうしないと、システムがまったくブートできない場合があります。
次に正確なプロセッサタイプを選択します。このとき、もし使えるのであればMCE機能を有効にすることが推奨されます。これによりハードウェアの異常が通知されるようになるでしょう。いくつかのアーキテクチャ(x86_64)で、これらのエラーはdmesgでは確認できませんが、/dev/mcelogにログが残ります。この機能を有効にするためにapp-admin/mcelogパッケージが必要になります。
また、Maintain a devtmpfs file system to mount at /devを選択することで、必須となるデバイスファイルがブートプロセスの初期段階で使えるようになります (CONFIG_DEVTMPFS と CONFIG_DEVTMPFS_MOUNT):
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):
Device Drivers ---> SCSI device support ---> <*> SCSI device support <*> SCSI disk support
Device Drivers ---> <*> Serial ATA and Parallel ATA drivers (libata) ---> [*] ATA ACPI Support [*] SATA Port Multiplier support <*> AHCI SATA support (ahci) [*] ATA BMDMA support [*] ATA SFF support (for legacy IDE and PATA) <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)
基本的な NVMe サポートが有効になっているか確認してください:
Device Drivers ---> <*> NVM Express block device
Device Drivers ---> NVME Support ---> <*> NVM Express block device
以下の追加の NVMe サポートを有効化しても害はありません:
[*] NVMe multipath support [*] NVMe hardware monitoring <M> NVM Express over Fabrics FC host driver <M> NVM Express over Fabrics TCP host driver <M> NVMe Target support [*] NVMe Target Passthrough support <M> NVMe loopback device support <M> NVMe over Fabrics FC target driver < > NVMe over Fabrics FC Transport Loopback Test driver (NEW) <M> NVMe over Fabrics TCP target support
次にFile Systemsで、システムが使用するファイルシステムに必要なサポートを選択しましょう。ルートファイルシステムに使われるファイルシステムをモジュールとしてコンパイルしてはいけません。モジュールにした場合、システムがパーティションをマウントできないおそれがあります。また、ここでVirtual memoryと/proc file systemも選択してください。システムの必要に応じて以下の選択肢から1個以上を選択してください:
File systems ---> <*> Second extended fs support <*> The Extended 3 (ext3) filesystem <*> The Extended 4 (ext4) filesystem <*> 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):
Device Drivers ---> Network device support ---> <*> PPP (point-to-point protocol) support <*> PPP over Ethernet <*> PPP support for async serial ports <*> PPP support for sync tty ports
2つの圧縮オプションは選択しても差し支えありませんが、必須というわけでもありません。PPP over Ethernetオプションも同様です。これはカーネルモードのPPPoEをするために設定された時だけにpppによって使用されるものです。
カーネルにネットワークカード(イーサネットもしくはワイヤレス)のサポートを組み込むことを忘れてはいけません。
多くのシステムではマルチコアを使用できます。Symmetric multi-processing supportを有効にすることは重要です (CONFIG_SMP):
Processor type and features ---> [*] Symmetric multi-processing support
マルチコアシステムでは、それぞれのコアが1プロセッサとカウントされます。
USB接続の入力装置(キーボードやマウス)などの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 <*> Unified support for USB4 and Thunderbolt --->
Architecture specific configuration
Before starting to configure the Linux kernel, run
make pmac32_defconfig
to make sure a kernel is created that boots on most 32-bit PowerPC systems:
root #
cd /usr/src/linux
root #
make pmac32_defconfig
root #
make menuconfig
Make sure to enable support for Amiga partitions if using a Pegasos system, or Macintosh partitions when using an Apple computer.
Users of NewWorld and OldWorld machines will want HFS support as well. OldWorld users require it for copying compiled kernels to the MacOS partition. NewWorld users require it for configuring the special Apple_Bootstrap partition:
File Systems ---> Miscellaneous filesystems ---> <M> Apple Macintosh file system support <M> Apple Extended HFS file system support
Don't forget to include support in the kernel for the right Ethernet card! Most newer Apple computers use the SunGEM ethernet driver. Older iMacs commonly use the BMAC driver.
Device Drivers ---> Network device support ---> Ethernet (10 or 100Mbit) ---> [*] Ethernet (10 or 100Mbit) <*> Generic Media Independent Interface device support <*> MACE (Power Mac ethernet) support <*> BMAC (G3 ethernet) support <*> Sun GEM support
When booting from FireWire, enable the following options.
Device Drivers ---> IEEE 1394 (FireWire) support ---> <*> IEEE 1394 (FireWire) support <*> OHCI-1394 support <*> SBP-2 support (Harddisks etc.)
Do not turn off kernel framebuffer support as it is required for a successful boot. When using an NVIDIA based chipset,use the Open Firmware framebuffer. When using an ATI based chipset, select the framebuffer driver based upon the right chipset (Mach64, Rage128 or Radeon).
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices [*] Open Firmware frame buffer device support <*> ATI Radeon display support <*> ATI Rage128 display support <*> ATI Mach64 display support Console display driver support ---> <*> Framebuffer Console support
To select more than one framebuffer device, it may default to a less than optimal driver. Either use only one framebuffer device or specify which to use by passing the driver to use to the kernel on boot by appending a video line such as
video=radeonfb
.コンパイルおよびインストール
With the kernel is configured, it is time to compile and install it. Exit the configuration menu and run the following commands:
root #
make && make modules_install
It is possible to enable parallel builds using
make -jX
with X being the number of parallel tasks that the build process is allowed to launch. This is similar to the instructions about /etc/portage/make.conf earlier, with the MAKEOPTS
variable.When the kernel has finished compiling, copy the kernel image to /boot/ as shown below. When using a separate boot partition, as on Pegasos computers, be sure that it is mounted properly. When using BootX to boot, we'll copy the kernel later.
Yaboot and BootX expect to use an uncompressed kernel unlike many other boot loaders. The uncompressed kernel is called vmlinux and it is placed in /usr/src/linux/ after the kernel has finished compiling. When using a Pegasos machine, the Pegasos firmware requires a compressed kernel called zImage which can be found in /usr/src/linux/arch/powerpc/boot/images/.
root #
cd /usr/src/linux
Apple または IBM の場合:
root #
cp vmlinux /boot/kernel-3.16.5-gentoo
Pegasos の場合:
root #
cp arch/powerpc/boot/images/zImage /boot/kernel-3.16.5-gentoo
任意自由選択: initramfsのビルド
いくつかの特別なケースで initramfs - initial ram-based file system (訳注: 起動時の RAM ベースのファイルシステム) のビルドが必要になります。最もよくある理由は、重要なディレクトリ(/usr/、/var/等)が別パーティションにある場合です。initramfsがあれば、initramfsの中にあるツールを使うことで、これらのパーティションをマウントすることができます。
initramfs が無いと、ファイルシステムをマウントするツールがまだマウントされていないファイルシステムの中にある情報を必要としている場合、システムが正しく起動できないリスクがあります。initramfs はカーネルブートの直後かつ制御が init ツールに移る前に必要なファイルをアーカイブに引き込みます。initramfs のスクリプトはシステムがブートを継続するために必要なパーティションを正しくマウントすることを保証します。
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*
次はカーネルモジュールです。
カーネルモジュール
利用可能なカーネルモジュールを一覧表示する
ハードウェアモジュールを手作業で列挙する必要はありません。ほとんどの場合、udev は接続を検出したハードウェアのモジュールを自動でロードします。ですが、自動でロードされるであろうモジュールを列挙することは特に有害ではありません。モジュールが二度ロードされることはありません。モジュールの状態は、ロードされているかいないか、どちらかしかありません。時として変なハードウェアは、ドライバをロードするのにこうした手助けが必要になることがあります。
/etc/modules-load.d/*.conf ファイルに、ブート時に毎回ロードしなければならないモジュールを、1 行ごとに 1 モジュールのフォーマットで追加することができます。モジュールに追加のオプションを与える必要があれば、ここではなく /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
モジュールの .ko ファイル拡張子はロード機構にとって重要ではなく、設定ファイルから除かれるということに注意してください:
/etc/modules-load.d/network.conf
強制的に3c59x モジュールをロードする3c59x
では、システムの設定に進み、インストールを続けましょう。
ファイルシステムの情報
fstab について
Linuxでは、システムで使用するすべてのパーティションは/etc/fstabに記載されていなければなりません。このファイルは、これらパーティションのマウントポイント(これらはファイルシステムに存在しなければなりません)、どのようにマウントされるべきか、また特別なオプション(自動マウントかそうでないか、ユーザー権限でマウントできるかどうか等)を定義します。
fstab ファイルを作成する
/etc/fstabファイルは表のように記述します。それぞれの行はホワイトスペース(一つまたは複数のスペース、タブ、もしくはその 2 種の組み合わせ)で区切られる 6 つのフィールドを持ちます。それぞれのフィールドの意味は以下の通りです。
- 最初のフィールドはマウントされるブロックスペシャルデバイスやリモートファイルシステムを示します。デバイスファイルへのパスや、ファイルシステムラベルやファイルシステムUUID,そしてパーティションラベルやパーティションUUIDを含む、いくつかの種類のデバイスIDがブロックスペシャルデバイスノードとして使用可能です。
- 2番目のフィールドはそのパーティションがマウントされるマウントポイントを示します。
- 3番目のフィールドはそのパーティションのファイルシステムの種類を示します。
- 4番目のフィールドは、そのパーティションをマウントするmountコマンドが使用するオプションを示します。すべてのファイルシステムは、固有のマウントオプションを持っています。システム管理者はマウントコマンドのmanページ(man mount)を参照することですべてのオプションを確認できます。複数のマウントオプションを記述する場合はカンマで区切ります。
- 5番目のフィールドはそのパーティションをdumpでダンプするかどうかを示しています。このフィールドは通常
0
(ゼロ)のままにしておいてかまいません。 - 6番目のフィールドは、直前のシャットダウンが正常に完了しなかったときに、fsckが各パーティションをどの順番でチェックするか示しています。ルートファイルシステムは
1
であるべきです。残りのファイルシステムは2
(ファイルシステムチェックが不要であれば0
)に設定しましょう。
Gentoo stage ファイルに含まれるデフォルトの /etc/fstab ファイルは有効な fstab ではなく、関連する値を入力するために使用できるテンプレートです。
root #
nano /etc/fstab
これ以降、パーティション識別子として、デフォルトのブロックデバイスファイルである/dev/sd*を使います。
ファイルシステムラベルと UUID
MBR(BIOS)とGPTの両方が、ファイルシステムラベルとファイルシステムUUIDをサポートしています。これらの属性は、ブロックデバイスを探しマウントするために使用されるmountコマンドの代用として、/etc/fstab内で定義することができます。ファイルシステムラベルやファイルシステムUUIDはそれぞれLABELとUUID接頭辞で識別され、blkidコマンドで確認することができます:
root #
blkid
もし、パーティション内のファイルシステムが消滅すると、ファイルシステムのラベルとUUIDの値は後に変更されるか除去されます。
一意性のため、MBRスタイルのパーティションテーブルを使用している読者は、/etc/fstab内で、マウント可能なボリュームを定義するのにラベルよりもUUIDを用いることを推奨します。
LVM ボリューム上に置かれたファイルシステムの UUID と、LVM ボリュームの LVM スナップショットの UUID は同じなので、LVM ボリュームをマウントするために UUID を使用するのは避けるべきです。
パーティションラベルと UUID
GPTルートを選択した人は、/etc/fstab でパーティションを定義する際に '頑丈' な方法を使うことができます。パーティション自体にどのファイルシステムが使用されているかにかかわらず、ブロックデバイスの個々のパーティションを識別するのにパーティションラベルやパーティションのUUIDを使うことができます。パーティションラベルとパーティションのUUIDはそれぞれPARTLABEL、PARTUUID接頭辞で識別され、そして端末で blkid コマンドを実行すると簡単に調べられます:
root #
blkid
パーティションラベルも絶対にとは言えないのに対し、fstab でUUIDを使ったパーティション指定を使えば、たとえ将来ファイルシステムが変更されるとしても、ブートローダーがボリューム検出に迷うことはありません。従来のブロックデバイスファイル (/dev/sd*N) を使った指定は、SATAブロックデバイスの追加・削除とシステムの再起動が頻繁に行われるシステムでは危険です。
ブロックデバイスのファイル名は様々な要素 (ディスクがどんな順番でいくつ接続されているかを含む) によって変化します。またファイル名の順番についても、初期起動プロセス中にカーネルがどのデバイスを最初に検知するかによって変化します。つまり、ディスクの順序を頻繁にいじったりしない限りは、デフォルトのブロックデバイスファイルを使うのはシンプルで素直な方法です。
では、/boot/パーティションをどのように記述すればよいか見てみましょう。これは一つの例です。実際はインストール手順の最初に決めたパーティション構成通りに修正しなければなりません。ここでは ppc のパーティション構成の例として、ext4 ファイルシステムを使う/dev/sda1パーティションを/boot/にします。このパーティションはブート中にチェックされなければなりません。fstabは以下のようになるでしょう。
/etc/fstab
/etc/fstabの/boot行の例# Adjust any formatting difference from the Preparing the disks step /dev/sda1 /boot defaults 0 2
あるユーザーはセキュリティを向上させるために/boot/パーティションを自動的にマウントしたくないかもしれません。その場合はdefaultsをnoautoで置き換えてください。これは、そのパーティションを使いたいときは都度手動でマウントしなければならないことを意味します。
実際のパーティション構成にあわせたルールや、CD-ROMドライブのためのルールを追加してください。他にパーティションやドライブがあれば、それも忘れずに追加しておきましょう。
以下は、より詳細な/etc/fstabの例です。
/etc/fstab
完全な/etc/fstabの例# Adjust any formatting difference and additional partitions created from the Preparing the disks step /dev/sda1 /boot 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) を持つシステムでもこれはおすすめです。
パフォーマンスを低下させるため、/etc/fstab 内で
discard
マウントオプションを定義させるのは推奨されません。cron または timer (systemd) のようなジョブスケジューラを使用して、定期的にブロックの破棄をスケジュールするほうが、一般的により良い方法です。さらなる情報については、Periodic fstrim jobs を確認してください。再度/etc/fstabを確認して、保存、エディタを終了します。
ネットワーク接続のための情報
重要な注意点として、このセクションは読者がシステムをローカルエリアネットワークに手っ取り早く参加させることができるように、提供しています。
OpenRC を動かしているシステムについては、ネットワーク設定のためのより詳細なリファレンスが、ハンドブックの終わりのほうの高度なネットワーク設定のセクションでカバーされています。より詳細なネットワーク要件のあるシステムは一度そちらへ飛んで、それからここに戻ってきて残りのインストール作業を続ける必要があるかもしれません。
より詳細な systemd のネットワーク設定については、systemd の記事のネットワークの箇所を確認してください。
ホスト名
さて、PCには名前をつけなければいけません。至極簡単に思えますが多くのシステム管理者はホスト名として適切な名前を付けるのに苦労しています。事を早く進めるために、選んだ名前は後で変更できることを知っておいてください。判りやすいように、ここでは単にマシンをtuxと呼ぶことにします。
ホスト名を設定する (OpenRC または systemd)
root #
echo tux > /etc/hostname
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)
ネットワークを設定する
Gentoo Linux をインストールしている間、ネットワークが使えるように設定されています。しかし、それは live 環境のためのネットワーク設定であり、インストールされた環境のためのものではありません。では、インストールされた Gentoo Linux のネットワークを設定しましょう。
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 /etc/conf.d/net
IPアドレスとルーティングを設定するのはconfig_eth0とroutes_eth0です。
ここではネットワークインターフェイスがeth0であると仮定していますが、これはシステムによって違います。もし、最近のインストールメディアから起動しているのであれば、インストール時と同じインターフェイス名が使われると思ってよいでしょう。より詳しい情報はネットワークインターフェースの命名セクションを参照してください。
/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を設定してください。
/etc/conf.d/net
DHCPの定義config_eth0="dhcp"
さらなる設定オプションのリストについては、/usr/share/doc/netifrc-*/net.example.bz2を参照してください。もし特定のDHCPを設定しなければならないときは、DHCPクライアントのmanページも必ず読みましょう。
もし、システムが複数のネットワークインターフェースを持っている場合は、config_eth1、config_eth2、…に対して上記の手順を繰り返してください。
設定を保存し、エディタを終了しましょう。
起動時に自動でネットワーク接続する
ブート時にネットワークインターフェースを有効にする場合は、デフォルトランレベルにそれらを追加する必要があります。
root #
cd /etc/init.d
root #
ln -s net.lo net.eth0
root #
rc-update add net.eth0 default
もし、複数のネットワークインターフェースがある場合は、net.eth0と同じ方法で、適切なnet.*ファイルを作成しなければなりません。
もし、ブート後、ネットワークインターフェース名(現在、このドキュメントではeth0
と記述)が間違っていた場合、次の手順で修正してください。
- 正しいインターフェース名で/etc/conf.d/netファイルを更新します。(例えば
eth0
をenp3s0
またはenp5s0
と修正) - 新しいシンボリックリンクを作成。(例えば/etc/init.d/net.enp3s0)
- 古いシンボリックリンクを消去。(rm /etc/init.d/net.eth0)
- 新しいスクリプトをデフォルトランレベルに追加。
- rc-update del net.eth0 defaultで古いスクリプトを消去。
hosts ファイル
次に、ネットワーク環境をLinuxに伝えます。これは/etc/hostsに定義され、ネームサーバでは解決できないホストについて、ホスト名からIPアドレスを決められるようになります。
root #
nano /etc/hosts
/etc/hosts
ネットワーク情報の記述# 以下は本システムの定義です。必ず設定されなければなりません。 127.0.0.1 tux.homenetwork tux localhost # ネットワーク上にあるその他のホストの定義です。任意設定です。 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny
設定をセーブし、エディタを終了しましょう。
システム情報
root パスワード
passwdコマンドでルートのパスワードを設定します。
root #
passwd
後で、日常の作業のための一般ユーザーアカウントを作成します。
init と boot 設定
OpenRC
Gentoo で OpenRC を使用しているときは、OpenRC はシステムのサービス、スタートアップ、シャットダウンの設定に /etc/rc.conf を使います。/etc/rc.conf を開いて、ファイル中のすべてのコメントを楽しみましょう。設定をレビューして、必要な箇所を変更してください。
root #
nano /etc/rc.conf
次に、キーボードを設定するために/etc/conf.d/keymapsを開いて、正しいキーボードを選択、設定します。
root #
nano /etc/conf.d/keymaps
keymap変数に特に注意してください。もしキーマップを間違えた場合、キーボードを叩くたびに、奇妙な現象が起こるでしょう。
最後に、クロック設定をするために/etc/conf.d/hwclockを編集します。個々の好みに合わせて設定できます。
root #
nano /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 --preset-mode=enable-only
完全にプリセットにするには次で行えますが、これまでのプロセスで既に設定したすべてのサービスもリセットするかもしれません:
root #
systemctl preset-all
live 環境からインストール先の最初のブートへのシームレスな移行を確実に行うために、これらの 2 ステップは有用でしょう。
システムロガー
OpenRC
同じ機能が複数のパッケージによって提供されるツールがいくつかあります。そういったツールはstage3アーカイブには含まれていません。どのパッケージをインストールしたいのかをあなた次第で選んでください。
まずシステムにロギング機構を提供するツールを決定しましょう。UnixとLinuxでは歴史をかけて素晴らしいログ機能を発展させてきました -- お望みならログファイルにシステムで起こった全てを記録できます。
Gentooでは複数のシステムロガーから使いたいものを選択することができます。このうちのいくつかを紹介します。
- app-admin/sysklogdは、システムのログを取得するための伝統的なデーモンを集めたものです。デフォルトのログ設定をそのまま使ってもうまく働くので、このパッケージは初心者にはいい選択肢です。
- app-admin/syslog-ngは、進化したシステムロガーです。1つの大きなファイルにログを取る以上のことをするには、何らかの設定が必要です。更に上級のユーザは、ロギングの発展性に基いてこのパッケージを選択できます。スマートなロギングのためには追加の設定が必要になることに注意してください。
- app-admin/metalogは、高度な設定ができるシステムロガーです。
Gentoo ebuild リポジトリにはまだまだ他のシステムロガーがあることでしょう。日毎に利用可能なパッケージは増えていますから。
もし syslog-ng を使おうと思っているなら、後で logrotate をインストールして設定しましょう。syslog-ng にはログファイルをローテーションする機構がありません。一方で、より新しいバージョン (>= 2.0) の sysklogd は自身でログローテーションを行います。
選択したシステムログツールをインストールするには、それを emerge してください。OpenRC では、rc-update を使ってデフォルトのランレベルにスクリプトを追加してください。次の例では app-admin/sysklogd をインストールして、それをシステムの syslog ユーティリティとして有効化します:
root #
emerge --ask app-admin/sysklogd
root #
rc-update add sysklogd default
systemd
ここまで OpenRC ベースのシステムのためにロギング機構の選択肢を提示しましたが、一方 systemd には systemd-journald という組み込みのロガーが含まれています。systemd-journald サービスは、上のシステムロガーの節で概説したロギング機能のほとんどを取り扱うことができます。つまり、システムマネージャおよびサービスマネージャとして systemd を実行するシステムのほとんどでは、追加の syslog ユーティリティを追加する部分を問題無く省略することができます。
journalctl を利用したシステムログの検索、閲覧についての詳細は、man journalctl を参照してください。
中央ホストへログを転送する場合などさまざまな理由により、systemd ベースのシステム上で冗長なシステムロギング機構を含めたいことがあるかもしれません。これはハンドブックの典型的想定読者にとっては一般的な事態ではなく、高度なユースケースであるとみなします。そのため、ハンドブックでは取り扱いません。
任意自由選択: cronデーモン
OpenRC
cronデーモンは入れても入れなくてもよく、システムに必須ではありませんが、インストールしておくのが賢明でしょう。
cron デーモンは、予定された間隔を空けてコマンドを実行します。間隔は毎日、毎週、毎月、毎火曜日、隔週、などで設定できます。賢明なシステム管理者は、定型的なシステム管理タスクを、cron デーモンを活用して自動化するでしょう。
すべての cron デーモンは予定されたタスクのための高いレベルの粒度をサポートしており、また通常は、予定されたタスクが期待通り完了しなかった場合に、e メール等の形式で通知を送信する機能を含んています。
Gentoo ではいくつもの cron デーモンを提供しています:
- sys-process/cronie - cronie はオリジナルの cron をベースとしていて、PAM と SELinux を使用できるなど、セキュリティと設定の改良がなされています。
- sys-process/dcron - この軽量な cron デーモンは、利便性を損わない範囲で、簡潔で安全であることを目標としています。
- sys-process/fcron - cron および anacron の機能を含めて拡張されたコマンドスケジューラ。
- sys-process/bcron - 安全な操作を念頭に入れて設計された、比較的新しい cron システム。これを実現するために、システムは複数の独立したプログラムに分けられていて、それぞれが独立したタスクに責任を持ち、プログラム間の通信は厳密に制御されています。
cronie
次の例では sys-process/cronie を使用します:
root #
emerge --ask sys-process/cronie
電源投入時に自動で cronie を開始するために、cronie を default システムランレベルに追加してください:
root #
rc-update add cronie default
代替案: dcron
root #
emerge --ask sys-process/dcron
cron エージェントとして dcron を使う場合、初期設定のための追加コマンドが必要です。
root #
crontab /etc/crontab
代替案: fcron
root #
emerge --ask sys-process/fcron
スケジュールされたタスクハンドラとして fcron を選択した場合、追加で emerge ステップが必要です:
root #
emerge --config sys-process/fcron
代替案: bcron
bcron は組み込みの特権分離を持つ、新しい cron エージェントです。
root #
emerge --ask sys-process/bcron
systemd
システムロギングと同様に、sysmted ベースのシステムには予定されたタスクのためのサポートが、タイマーという形ですぐ使える状態で含まれています。systemd タイマーはシステムレベルでもユーザレベルでも実行することができ、伝統的な cron デーモンが提供するものと同じ機能を含んでいます。冗長な可能性が必要でない限り、cron デーモンのような追加のタスクスケジューラをインストールすることは通常は不要で、問題無く省略することができます。
任意自由選択: ファイルのインデックスを作成
より高速なファイル検索のためにファイルシステム中の各ファイルのインデックスを作成するときは、sys-apps/mlocateをインストールしてください。
root #
emerge --ask sys-apps/mlocate
任意自由選択: リモートシェルアクセス
opensshd のデフォルト設定は、リモートユーザとして root にログインすることを許可していません。必要であれば非 root ユーザを作成して、インストール完了後にアクセスできるように適切に設定するか、root を許可するように /etc/ssh/sshd_config を修正してください。
インストール後、システムにリモートからアクセスできるようにするためには、ブート時に sshd を開始するように設定する必要があります。
OpenRC
OpenRC で sshd init スクリプトを default ランレベルに追加するには:
root #
rc-update add sshd default
(たとえばリモートサーバで)シリアルコンソールからアクセスしなければならない場合、agetty を設定する必要があります。
/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
SSH サーバを有効化するには、次を実行してください:
root #
systemctl enable sshd
シリアルコンソールサポートを有効化するには、次を実行してください:
root #
systemctl enable getty@tty1.service
時刻同期
システム時刻を同期する方法を利用することは重要です。これは通常 NTP プロトコルおよびソフトウェアによってなされます。Chrony など、NTP プロトコルを使用する他の実装もあります。
例えば、Chrony をセットアップするには:
root #
emerge --ask net-misc/chrony
OpenRC
OpenRC では、次を実行してください:
root #
rc-update add chronyd default
systemd
systemd では、次を実行してください:
root #
systemctl enable chronyd.service
代わりに systemd ユーザは、デフォルトでインストールされている、よりシンプルな systemd-timesyncd NTP クライアントを利用したいかもしれません。
root #
systemctl enable systemd-timesyncd.service
ファイルシステムツール
使っているファイルシステムよって、(ファイルシステムの整合性をチェックしたり、追加のファイルシステムを作成する等のために) 必須のファイルシステムツールをインストールする必要があります。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 |
Gentooのファイルシステムについてのさらなる情報は、ファイルシステムの記事を参照してください。
ネットワークツール
もし、以前のシステムの設定のステップでネットワークが構成されていて、それでネットワーク設定が完了している場合は、この 'ネットワークツール' のセクションは飛ばして問題ありません。その場合はブートローダーの設定に進みましょう。
DHCP クライアントをインストールする
多くのユーザはネットワークに接続するために DHCP クライアントが必要になるでしょう。もし DHCP クライアントがひとつもインストールされていない場合、ネットワークに接続できないことになり、これにより DHCP クライアントを後でダウンロードすることができなくなってしまいます。
DHCP クライアントは、netifrc スクリプトを使用して、一つ以上のネットワークインターフェースのために自動的に IP アドレスを取得します。net-misc/dhcpcdがお薦めです (dhcpcd も参照してください):
root #
emerge --ask net-misc/dhcpcd
任意自由選択: 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
次はブートローダーの設定です。
選択する
Now that the kernel is configured and compiled and the necessary system configuration files are filled in correctly, it is time to install a program that will fire up the kernel when the system is started. Such a program is called a boot loader.
The boot loader to use depends upon the type of PPC machine.
For a NewWorld Apple or IBM machine, yaboot needs to be selected. OldWorld Apple machines have two options, BootX (recommended) and quik. The Pegasos does not require a boot loader, but it is necessary to emerge bootcreator to create SmartFirmware boot menus.
Default: Using yaboot
はじめに
yaboot can only be used on NewWorld Apple and IBM systems!
In order to find the boot devices, yaboot needs access to the device nodes created by udev on startup and the sysfs filesystem. These two filesystems are found at /dev/ and /sys/ respectively. Early in the installation, these locations have already been bind-mounted into the chroot.
To set up yaboot, either use yabootconfig to automatically create a configuration file or manually configure the boot loader. When installing Gentoo on a G5 (where yabootconfig does not always work), or when the system needs to boot from FireWire or USB, then manually configuring yaboot is mandatory.
It is necessary to manually edit the yaboot.conf when using genkernel, even if yabootconfig is used. The kernel image section of yaboot.conf should be modified as follows (using vmlinux and initrd as the name of kernel and initrd image):
yaboot.conf
Adding genkernel boot arguments########################################################### ## This section can be duplicated if you have more than one ## kernel or set of boot options - replace the image and initrd ## with the exact filename of your kernel and initrd image. ########################################################### image=/boot/kernel-genkernel-ppc-3.4.9-gentoo label=Linux root=/dev/sda3 partition=3 initrd=/boot/initramfs-genkernel-ppc-3.4.9-gentoo # You can add additional kernel arguments to append such as # rootdelay=10 for a USB/Firewire Boot append="root=/dev/sda3" read-only ##########################################################
Default: Using yabootconfig
yabootconfig will auto-detect the partitions on the machine and will set up dual and triple boot combinations with Linux, Mac OS, and Mac OS X.
To use yabootconfig, the drive must have an Apple_Bootstrap partition, and /etc/fstab must be configured to reflect the Linux partitions (note that the Bootstrap partition should not be in the fstab file). These steps should have already been completed before, but check /etc/fstab before proceeding. Now, install yaboot.
root #
emerge --ask sys-boot/yaboot
Now exit the chroot and run yabootconfig --chroot /mnt/gentoo. First, the program will confirm the location of the bootstrap partition. When using the suggested disk partitioning scheme, the bootstrap partition should be /dev/sda1. Type Y if the output is correct. If not, double check the /etc/fstab file. yabootconfig will then scan the system setup, create /etc/yaboot.conf and run mkofboot. mkofboot is used to format the Apple_Bootstrap partition, and install the yaboot configuration file into it. After this enter the chroot again.
root #
chroot /mnt/gentoo /bin/bash
root #
/usr/sbin/env-update && source /etc/profile
Verify the contents of /etc/yaboot.conf. When making changes to /etc/yaboot.conf (like setting the default/boot OS), make sure to rerun ybin -v to apply changes to the Apple_Bootstrap partition. Whenever ya change is made to yaboot.conf, like when testing a new kernel, always remember to run ybin -v to update the bootstrap partition.
Alternative: Manual yaboot configuration
First, install yaboot on the system:
root #
emerge --ask sys-boot/yaboot
An example yaboot.conf file is given below, but it will need to be altered to fit personal preference.
/etc/yaboot.conf
Example configuration## /etc/yaboot.conf ## ## run: "man yaboot.conf" for details. Do not make changes until you have!! ## see also: /usr/share/doc/yaboot/examples for example configurations. ## ## For a dual-boot menu, add one or more of: ## bsd=/dev/sdaX, macos=/dev/sdaY, macosx=/dev/sdaZ ## The bootstrap partition: boot=/dev/sda2 ## ofboot is the Open Firmware way to specify the bootstrap partition. ## If this isn't defined, yaboot fails on the G5 and some G4s (unless ## you pass the necessary arguments to the mkofboot/ybin program). ## hd:X means /dev/sdaX. ## ## G5 users should uncomment this line!! #ofboot=hd:2 ## Users booting from firewire should use something like this line: # ofboot=fw/node/sbp-2/disk@0: ## Users booting from USB should use something like this line: # ofboot=usb/disk@0: ## hd: is shorthand for the first hard drive Open Firmware sees device=hd: ## Firewire and USB users will need to specify the whole OF device name ## This can be found using ofpath, which is included with yaboot. # device=fw/node@0001d200e00d0207/sbp-2@c000/disk@0: delay=5 defaultos=macosx timeout=30 install=/usr/lib/yaboot/yaboot magicboot=/usr/lib/yaboot/ofboot ############################################################ ## This section can be duplicated if you have more than one ## kernel or set of boot options - replace the image variable ## with the exact filename of your kernel. ########################################################### image=/boot/kernel-3.4.9-gentoo label=Linux root=/dev/sda3 partition=3 # append="rootdelay=10" # Required for booting USB/Firewire read-only ################## ## G5 users and some G4 users should set ## macos=hd:13/ ## macosx=hd:12 ## instead of the example values. macos=/dev/sda13 macosx=/dev/sda12 enablecdboot enableofboot
Once yaboot.conf is configured, run mkofboot -v to format the Apple_bootstrap partition and install the settings. If yaboot.conf is changed after the Apple_bootstrap partition has been created, then update the settings by running ybin -v.
root #
mkofboot -v
For more information on yaboot, take a look at the yaboot project.
Alternative: Using BootX
BootX can only be used on OldWorld Apple systems with MacOS 9 or earlier!
Since BootX boots Linux from within MacOS, the kernel will need to be copied from the Linux Partition to the MacOS partition. First, mount the MacOS partition from outside of the chroot. Use mac-fdisk -l to find the MacOS partition number, sda6 is used as an example here. Once the partition is mounted, we'll copy the kernel to the system folder so BootX can find it.
root #
exit
cdimage ~#
mkdir /mnt/mac
cdimage ~#
mount /dev/sda6 /mnt/mac -t hfs
cdimage ~#
cp /mnt/gentoo/usr/src/linux/vmlinux "/mnt/mac/System Folder/Linux Kernels/kernel-3.16.5-gentoo"
If genkernel is used, both the kernel and initrd will need to be copied to the MacOS partition.
root #
exit
cdimage ~#
mkdir /mnt/mac
cdimage ~#
mount /dev/sda6 /mnt/mac -t hfs
cdimage ~#
cp /mnt/gentoo/boot/kernel-genkernel-ppc-3.16.5-gentoo "/mnt/mac/System Folder/Linux Kernels"
cdimage ~#
cp /mnt/gentoo/boot/initramfs-genkernel-ppc-3.16.5-gentoo "/mnt/mac/System Folder"
Now that the kernel is copied over, we'll need to reboot to set up BootX.
cdimage ~#
cd /
cdimage ~#
umount -l /mnt/gentoo/dev{/pts,/shm,}
cdimage ~#
umount -l /mnt/gentoo{/proc,/sys,}
cdimage ~#
umount -l /mnt/mac
cdimage ~#
reboot
Of course, don't forget to remove the bootable CD, otherwise the CD will be booted again instead of MacOS.
Once the machine has booted into MacOS, open the BootX control panel. When not using genkernel, select Options and uncheck Use specified RAM disk. If genkernel is used, ensure that the genkernel initrd is selected instead of the Installation CD initrd. If not using genkernel, there is now an option to specify the machine's Linux root disk and partition. Fill these in with the appropriate values. Depending upon the kernel configuration, additional boot arguments may need to be applied.
BootX can be configured to start Linux upon boot. If this is done, then the machine will boot into MacOS first and, during startup, BootX will load and start Linux. See the BootX home page for more information.
Make sure to include support for the HFS and HFS+ filesystems in the kernel, otherwise upgrades or changes to the kernel on the MacOS partition will not be possible.
Alternative: Using Quik
quik allows OldWorld Macs to boot without MacOS. However, it isn't well supported and has a number of quirks. If possible, it is recommended that BootX is used instead since it is much more reliable and easier to set up than quik.
First, install quik:
root #
emerge --ask sys-boot/quik
Next, set it up. Edit /etc/quik.conf and set the image to the kernel that was copied to the boot partition earlier on.
/etc/quik.conf
Example Quik configuration# Example of quik.conf init-message = "Gentoo Linux\n" # This is the boot partition partition = 2 root = /dev/sda3 timeout = 30 default = gentoo # This is your kernel image = /kernel-3.16.5-gentoo label = gentoo
The quik.conf file must be on the same disk as the quik boot images, however it can be on a different partition, although it is recommended to move it to the boot partition.
root #
mv /etc/quik.conf /boot/quik.conf
Now set the boot variables so that quik loads on boot. To do this, we'll use a program called nvsetenv. The variables vary from machine to machine, it's best to find the machine's quirks before attempting this.
Set to false to boot into OF, not all models can display the OF output:
root #
nvsetenv auto-boot true
Check the quirks page, there are many variations here:
root #
nvsetenv output-device video
root #
nvsetenv input-device kbd
SCSI の場合:
root #
nvsetenv boot-device scsi/sd@1:0
ATA の場合:
root #
nvsetenv boot-device ata/ata-disk@0:0
Next, the first item is the path to the kernel, the second is the root partition. Append any kernel options to the end of this line:
root #
nvsetenv boot-file /boot/kernel-3.16.5-gentoo root=/dev/sda4
Set this to bye for MacOS and boot for Linux:
root #
nvsetenv boot-command boot
It is also possible to change the boot variables from MacOS. Depending upon the model, either bootvars or Apple System Disk should be used. Please see the quik quirks page above for more information.
Now that we've set up the machine to boot, we'll need to make sure the boot images are installed correctly. Run quik -v -C /boot/quik.conf. It should tell that it has installed the first stage QUIK boot block.
If something has gone wrong, it is always possible to reset the PRAM back to the default values by holding down Command+Option+p+r before powering on the machine. This will clear the values set with nvsetenv and should allow the user to boot either a MacOS bootdisk or a Linux bootdisk.
Alternative: Using BootCreator
BootCreator will build a nice SmartFirmware bootmenu written in Forth for the Pegasos.
First make sure to have bootcreator installed on the system:
root #
emerge --ask sys-boot/bootcreator
Now copy the file /etc/bootmenu.example into /etc/bootmenu/ and edit it to suit personal needs:
root #
cp /etc/bootmenu.example /etc/bootmenu
root #
nano -w /etc/bootmenu
Below is a complete /etc/bootmenu config file. vmlinux and initrd should be replaced by the kernel and initrd image names.
/etc/bootmenu
Example bootcreator configuration file# # Example description file for bootcreator 1.1 # [VERSION] 1 [TITLE] Boot Menu [SETTINGS] AbortOnKey = false Timeout = 9 Default = 1 [SECTION] Local HD -> Morphos (Normal) ide:0 boot2.img ramdebug edebugflags="logkprintf" [SECTION] Local HD -> Linux (Normal) ide:0 kernel-3.16.5-gentoo video=radeonfb:1024x768@70 root=/dev/sda3 [SECTION] Local HD -> Genkernel (Normal) ide:0 kernel-genkernel-ppc-3.16.5-gentoo root=/dev/ram0 root=/dev/sda3 initrd=initramfs-genkernel-ppc-3.16.5-gentoo
Finally the bootmenu must be transferred into Forth and copied to the boot partition, so that the SmartFirmware can read it. Therefore it is necessar to call bootcreator:
root #
bootcreator /etc/bootmenu /boot/menu
Be sure to have a look into the SmartFirmware's settings when rebooting, that menu is the file that will be loaded by default.
システムのリブート
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を使うことができます。 |
例えばwheel、users、audioの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) についての詳細、その他重要な管理タスクについての指示を除外しています。とはいえ、基本的な機能に関して読者を助けるため、ハンドブックのセクションをまだいくつか用意しています。
読者は絶対に、ハンドブックの Gentoo の操作を読むべきです。これにはソフトウェアをどのように最新の状態にしておくのか、追加のソフトウェアパッケージをどのようにインストールするのか、USE フラグや Gentoo の OpenRC 初期システムの詳細や、インストール後の Gentoo システムを扱うことに関する他の様々な有益なトピックについてが説明されています。
ハンドブック以外では、コミュニティから追加提供されるドキュメントを見つけるために、Gentoo wiki の他のコーナーを探索したいと思うでしょう。Gentoo wiki チームは、documentation topic overview を提供しています。これは、この Wiki にある記事のセレクションをカテゴリー別に一覧にしています。例えば、システムをよりあなたの国に適したものとするためには、ローカライゼーションガイドを参照します(特に英語を第二外国語として話すユーザにとって便利なものです)。
デスクトップ用途で利用したい多数派のユーザは、日常的に使用するためのグラフィカル環境をセットアップすることになるでしょう。対応しているデスクトップ環境 (DE) とウィンドウマネージャ (WM) については、コミュニティによって維持されている 'メタ' 記事が多数存在します。それぞれの DE が必要なセットアップ作業は微妙に異なっているため、ブートストラップ作業の複雑性が増えることに注意してください。
その他にも、Gentoo 上で利用可能なソフトウェアについての俯瞰的な概要を提供するメタ記事が多数存在します。
Gentoo オンライン
読者は、すべての公式の 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 ppc ハンドブック: Gentoo をインストールする" overrides earlier display title "ハンドブック:PPC/フル/インストール".