Gentoo Linuxとは何か?ソースベースディストリビューションの魅力とインストール手順を徹底解説
Gentooは、強力かつ高い拡張性を誇るLinuxディストリビューションです。現在もソースベースのパッケージ管理という原点を貫いている数少ないOSの一つであり、そのパッケージマネージャー「Portage」を使えば、システムのあらゆる側面を細部まで調整・最適化できます。
なぜソースベースのディストリビューションを使うのか?
現在、ほとんどのLinuxディストリビューションはコンパイル済みのバイナリパッケージを提供しています。つまり、パッケージは開発者のマシン上で事前にビルドされているわけです。
高速なネットワーク環境が普及した現代において、パッケージのコンパイル自体は大きな問題ではありません。しかし、この配布モデルには以下のような考慮すべき課題があります。
- コンパイル済みバイナリを使用する場合、プログラムがどのようにコンパイルされ、どの機能が含まれているかをユーザー側で制御できません。
- バイナリに依存することは、ディストリビューションの開発者がリポジトリに悪意のあるコードを含まないと完全に信頼することを意味します。
なぜGentooを使うべきなのか?
理由はシンプルです。Gentooは非常に強力なLinuxディストリビューションであり、システム全体の変更や修正に対して、ほぼ無制限のアクセス権と自由度をユーザーに与えてくれるのです。
Gentooの心臓部「Portage」
PortageはGentoo Linuxシステムを管理する中核的なコンポーネントです。サードパーティ製パッケージのインストール・管理・調整を行うだけでなく、システムの基本設定も管理します。
Portageの最大の特長は、パッケージをソースコードから直接インストールできる点にあります。他のディストリビューションでもソースからのインストールは可能ですが、Portageはさらに一歩進んで、それをパッケージ取得のデフォルト手段としています。
Gentooの入手方法
Gentooは公式サイトから入手できます。複数のプラットフォーム向けインストーラーが用意されており、amd64とarm64の両方に対応しています。
ダウンロードしたISOファイルを使って、balenaEtcherなどのUSB書き込みツールで起動可能なUSBメモリを作成しましょう。
Gentoo Linuxのインストール
インストール作業に入る前に、重要な注意点があります。Gentooのインストールはすべて手動で行うプロセスであり、多くのコマンドを実行することになります。そのため、本ガイドに加えて、Gentoo公式ハンドブックも参照しながら作業を進めることをおすすめします。
USBメモリをコンピュータに挿入して起動すると、Gentooインストーラーの画面が表示されます。
ネットワーク接続の設定
Gentooをインストールするにはインターネット接続が必要です。有線接続の場合、インストーラーは自動的に接続されます。以下のコマンドでオンライン状態かどうかを確認しましょう。
ping -c 5 maketecheasier.com
無線ネットワークに接続する場合は、wpa_supplicantを設定してワイヤレスアクセスポイントに接続する必要があります。
wpa_passphrase 'Your_SSID_Here' 'Your_Password_Here' >> /etc/wpa_supplicant/wpa_supplicant.conf
設定が完了したら、次のコマンドでdhcpcdデーモンを再読み込みし、ネットワーク接続を開始します。
rc-service dhcpcd restart
ハードディスクのパーティショニング
次に、Gentooをインストールするディスクをフォーマットします。fdiskコマンドを使えば簡単に行えます。
fdiskはシンプルなコマンドラインのディスクパーティショニングツールです。ハードディスクのパーティション分割や、システムに割り当てる容量の設定ができます。次のコマンドで起動します。
fdisk /your/disklabel
既存のディスクパーティション構成がわからない場合は、-lオプションで確認できます。
fdisk -l
fdiskを使ったパーティション作成
fdiskを起動したら、まず既存のパーティションを消去します。プロンプトでGキーを押してください。
消去が完了したら、新しいパーティションを作成します。
- Nキーを押して、新しいパーティションを作成することをfdiskに伝えます。使用するパーティション番号を尋ねられるので、Enterキーでデフォルト値を選択します。
- 続いて、パーティションの最初と最後のセクタを指定します。最初のセクタはEnterキーでデフォルトを選び、最後のセクタではサイズを指定します。書式は比較的シンプルです。
+size(G|M|K)
- +記号は、選択した最初のセクタからの相対サイズであることをfdiskに伝えます。
- サイズは自分で指定する数値です。
- 最後のオプションは、そのサイズがGB・MB・KBのいずれであるかを指定します。
UEFIシステム向けのパーティショニング
引き続きパーティションを作成していきますが、この手順はBIOSシステムかUEFIシステムかによって大きく異なります。
比較的新しいハードウェアを搭載したモダンなコンピュータであれば、おそらくUEFIシステムを使用しているでしょう。
UEFI互換のディスクを作成するには、まず「EFI System」パーティションを作成する必要があります。これはディスクの先頭パーティションとし、サイズは約100〜256MBが目安です。
作成したら、Tキーを押してパーティションタイプを「EFI System」に変更します。変更したいパーティションの種類を尋ねられるので、1を入力してください。
残りのディスク領域のパーティショニング
次に作成するのは「/boot」パーティションです。ここにはLinuxカーネルとブートローダーが保存されます。
理想的なサイズは500MB〜1GB程度です。今回は1GBを割り当てます。
続けてSWAPパーティションを作成します。これはメモリが不足した際にRAMが動的にメモリを退避させるために使う、ハードディスク上の領域です。
SWAPサイズの一般的な目安は、システム搭載メモリの0.5〜2倍です。今回のノートPCには8GBのメモリが搭載されているため、SWAPを16GBに設定しました。
さらに、このパーティションを正しくSWAPとして認識させるには、タイプを「19」に設定します。
最後に、残りのシステムをインストールするルートパーティションを作成します。ディスクの残りをすべて割り当てるには、新規パーティション作成時のLast Sectorの項目でEnterキーを押すだけです。
作成が完了したら、Pキーを押して作成したパーティションテーブルを確認しましょう。
問題なければWキーを押して、変更内容をディスクに書き込みます。
Gentooでのディスクフォーマット
次のステップはハードディスクのフォーマットです。まず、EFI SystemパーティションをFATでフォーマットします。
mkfs.vfat /dev/sda1
これにより、EFIシステムの起動に必要なFATファイルシステムが作成されます。続いて、「/boot」パーティション用によりシンプルなext2ファイルシステムを作成します。
mkfs.ext2 /dev/sda2
次に、SWAPパーティションを作成して有効化し、Gentooにこのパーティションがライブメモリとのスワップに使えることを伝えます。以下のコマンドを実行してください。
mkswap /dev/sda3 swapon /dev/sda3
最後に、ルートパーティションにext4ファイルシステムを作成します。
mkfs.ext4 /dev/sda4
Gentoo Stage 3 Tarballのダウンロード
続いて、作成したルートパーティションを「/mnt/gentoo」ディレクトリにマウントします。以降のインストール作業は、マシンのハードディスク上で行われることになります。
mount /dev/sda4 /mnt/gentoo && cd /mnt/gentoo
完了したら、wgetを使ってgentoo.orgのウェブサイトからStage 3 tarballをダウンロードします。
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220227T170528Z/stage3-amd64-desktop-openrc-20220227T170528Z.tar.xz
このtarballには、最小構成のLinuxインストールに必要なすべてのプログラムが含まれています。tarコマンドで展開しましょう。
tar xpvf ./stage3-amd64-desktop-openrc-20220227T170528Z.tar.xz --xattrs-include='*.*' --numeric-owner
ダウンロードミラーの選択とDNS情報のコピー
mirrorselectコマンドを実行して、このシステムのパッケージをどこからダウンロードするかを指定します。
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
TUIプログラムが開くので、自分に最も近いサーバーの場所を選択してください。
続いて、Gentooのリポジトリファイルを「/etc/portage」フォルダにコピーします。このファイルには、Gentooがパッケージをダウンロードする際のリンク情報が含まれています。
mkdir -p /mnt/gentoo/etc/portage/repos.conf && \
cp /mnt/gentoo/usr/share/portage/config/repos.conf \
/mnt/gentoo/etc/portage/repos.conf/gentoo.conf
最後に、USBインストーラーからリゾルバ情報を「/mnt/gentoo」ディレクトリにコピーします。これにより、後ほどルートディレクトリをハードディスクに切り替えても、ネットワークが正常に機能するようになります。
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
デバイスファイルのマウントとchroot
chroot実行後も周辺機器が正常に動作するよう、USBインストーラーから特殊ディレクトリをハードディスクへマウントします。
mount --types proc /proc /mnt/gentoo/proc mount --rbind /sys /mnt/gentoo/sys mount --make-rslave /mnt/gentoo/sys mount --rbind /dev /mnt/gentoo/dev mount --make-rslave /mnt/gentoo/dev mount --bind /run /mnt/gentoo/run mount --make-slave /mnt/gentoo/run
USBインストーラーでの最後の作業は、chrootコマンドを実行してベースのルートディレクトリをUSBからハードディスクへ移行することです。
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="[chroot] ${PS1}"
/bootパーティションのマウントとGentooのアップデート
後でカーネルをインストールした際に正しい場所へ保存されるよう、「/boot」パーティションをマウントしておきます。
mount /dev/sda2 /boot mkdir /boot/efi mount /dev/sda1 /boot/efi
完了したら、Gentooリポジトリを更新します。これにより、初回のシステムアップデート時に最新のパッケージを確実に取得できます。
emerge-webrsync
これで、emerge-webrsyncが選択したミラーに接続し、Gentooで利用可能な最新のEBUILDをダウンロードします。
Gentooの初回システムアップデート
次のemergeコマンドを実行すれば、システムを最新のEBUILDに合わせて更新できます。
emerge --ask --verbose --update --deep --newuse @world
これにより、emergeはStage 3のパッケージとGentooリポジトリ上の現行バージョンを照合し、より新しいバージョンが見つかったパッケージを更新します。
emergeは更新が必要なすべてのパッケージを個別にフェッチしてコンパイルするため、この処理には時間がかかる点に注意してください。
タイムゾーンとロケールの設定
次に、タイムゾーンやシステムロケールなど地域固有の情報を設定します。タイムゾーンを自分の地域に合わせるには、「/usr/share/zoneinfo」フォルダ内から最も近い場所を見つけましょう。
そして、その場所を「/etc/timezone」ファイルに書き込みます。たとえば、筆者の場合は「Asia/Manila」が最寄りでした。
echo "Asia/Manila" > /etc/timezone emerge --config sys-libs/timezone-data
次にロケールを設定します。ロケールはコンピュータのデフォルトのシステム言語を決定するものです。「/etc/locale.gen」ファイルを編集しましょう。
nano -w /etc/locale.gen
ここで、Gentooに使用させたいロケールを追加します。利用可能なロケールの全一覧は「/usr/share/i18n/SUPPORTED」ファイルで確認できます。筆者の場合、システムに米国英語のロケールを使用させたいので、次のように記述しました。
en_US ISO-8859-1 en_US.UTF-8 UTF-8
日本語環境にする場合は「ja_JP.UTF-8 UTF-8」を追記するとよいでしょう。編集後、locale-genを実行してシステムロケールを再生成します。
Linuxカーネルのインストール
GentooへのLinuxカーネルのインストールには複数の方法があります。すべての機能を手動で設定するか、Gentoo開発者が提供するプリビルド版を使用するかです。ここでは後者の方法を採用します。
プリビルドのLinuxカーネルをインストールするには、installkernelパッケージとカーネル本体の2つを、次のコマンドでインストールします。
emerge --ask sys-kernel/installkernel-gentoo sys-kernel/gentoo-kernel-bin
fstabの設定
カーネルのインストールが済んだら、fstabファイルに必要な情報を記入します。fstabは、起動時にGentooへどのパーティションをどこにマウントすべきかを指示するファイルです。次のコマンドで編集しましょう。
nano -w /etc/fstab
fdiskで作成したすべてのパーティションを記述します。たとえばUEFIシステムの場合、fstabファイルは次のようになります。
[...] /dev/sda1 /boot/efi vfat defaults 0 2 /dev/sda2 /boot ext2 defaults,noatime 0 2 /dev/sda3 none swap sw 0 0 /dev/sda4 / ext4 noatime 0 1
rootパスワードの設定
続いて、システムのrootパスワードを設定します。デフォルトでは、Stage 3 tarballがrootアカウントにランダムなパスワードを設定しているためです。
ここでパスワードを設定しないと、再起動後にrootアカウントへアクセスできなくなります。rootパスワードを変更するには、次のコマンドを実行してください。
passwd
追加ツールのインストール
完了したら、Gentooシステムで必要になるサードパーティ製ツールをインストールしましょう。たとえば、イーサネットと無線の両方の接続性が必要なら、以下をインストールします。
emerge --ask net-misc/dhcpcd net-wireless/iw net-wireless/wpa_supplicant rc-update add dhcpcd default
また、システムの動作を監視したい場合は、システムロガーをインストールできます。
emerge --ask app-admin/sysklogd rc-update add sysklogd default
さらに、よく扱うファイルシステム用のユーティリティもインストールしておきましょう。
emerge --ask sys-fs/dosfstools sys-fs/ntfs3g
ブートローダーのインストール
さて、Gentooインストールの最終ステップはブートローダーです。ブートローダーはBIOSとLinuxカーネルの間に位置するシンプルなプログラムで、BIOSにカーネルの読み込みを指示し、そこからOSが起動します。
GRUBブートローダーをインストールするには、次のコマンドを実行します。
emerge --ask sys-boot/grub
インストールが完了したら、次のコマンドでGRUBを適切に初期化・設定します。
grub-install --target=x86_64-efi --efi-directory=/boot/efi grub-mkconfig -o /boot/grub/grub.cfg
あとは、USBインストーラーをアンマウントしてシステムを再起動するだけです。
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
システムが再起動すると、新しくインストールされたGentoo Linuxがあなたを迎えてくれるはずです。そこから先は、基本的なソフトウェアやパッケージをインストールして、あなただけのカスタムLinuxディストリビューションを構築していきましょう。
まだどのデスクトップ環境をインストールすべきか迷っている方は、Linuxのおすすめデスクトップ環境に関する記事もぜひ参考にしてみてください。
よくある質問(FAQ)
1. Gentooのコンパイル時間を短縮する方法はありますか?
はい!「/etc/portage/make.conf」ファイルにいくつかの値を追加すれば、コンパイル時間を大幅に短縮できます。たとえば、次の値を設定すると、プログラムのコンパイル中にCPUコアの大部分を活用できるようになります。
MAKEOPTS="-j4" # この数値はシステムのCPUコア数に応じて
# 変更してください。
2. システムが起動しません!GRUBは表示されるのに、起動後は真っ暗です。
原因はいくつか考えられますが、最も多いのはfstabファイルが正しく設定されていないケースです。USBインストーラーを挿入し、ハードディスクへchrootするまでの手順を再度実行して修正しましょう。
3. Xorgでフォントが表示されません。何か問題があるのでしょうか?
これはXftが正しくインストールされていないことが原因である可能性が高いです。プログラムをインストールする際、make.confに「Xft」USEフラグを追加しておく必要があります。そうすることで、コンパイルされるプログラムがX互換のフォントを使用するようになります。次の行を/etc/portage/make.confに追加してください。
USE="xft"
-
LinuxにKodiをインストールする方法|Ubuntu・Debian・Fedora・Arch対応ガイド
メディアストリーミングの分野で、Kodiに勝るプレイヤーは存在しません。映画やドラマのボックスセットコレクションからライブTVまで、あらゆるコンテンツを再生できます。初代Xbox向けアプリとして誕生した頃とは別物と言えるほど進化しました。クロスプラットフォーム対応のため、Linux PCへのインストールも難しくありません。一部のLinuxリポジトリにはKodiが標準で含まれていますが、すべてのディストリビューションでそうとは限りません。本記事では、主要なLinuxディストリビューションそれぞれにKodiをインストールする手順を詳しく解説します。UbuntuにKodiをインストールする最近のUb
-
Linuxでディスク容量を確認・管理する方法|df/duコマンドと便利ツール徹底解説
システム管理者に不可欠なスキルのひとつが、オンライン・オフライン双方のシステムの健全性を維持することです。特に本番サーバーでは、ダウンタイムやトラブルがデータ損失につながる可能性があるため、その重要性は一段と高まります。よくある問題のひとつが、ディスク容量不足によってアップデートが失敗するケースです。しかし、エラーメッセージが表示された際にいくつかの簡単なチェックを行うことで、重要なシステムをスムーズに稼働させ続けることができます。主に使用するのは、次の2つのコマンドです。df – システム全体のディスク容量状況を報告するdu – 特定のファイルやディレクトリが使用している容量を表示するそれぞ