Gentoo Linux (日本語サイト:gentoo.gr.jp)は、自動的な最適化やカスタマイズ性が特徴の Linux ディストリビューションで、portage
という独自のパッケージ管理システムを採用しています。
Gentoo Linux のインストールは、インストーラが付属している RedHat Linux などと違い、手動で行うため、インストールでは多くのコマンドを実行し、設定を行う必要があります。Gentoo Linux をインストールした時に実行したコマンドなどをメモしてみました。
初めてインストールしたときのメモですので、何か問題や、間違いなどもあるかもしれません。問題などがありましたら、メールで指摘をお願いします。
(2004.11.28 追記)
この文書は Gentoo Linux 1.4 が公開されていた時期に書いたメモで、現在では Gentoo Linux 2004.3 が公開されています。このメモを書いた後、インストール手順にも変更があると思われますので、参考にならない部分が多くなっている可能性があります。インストールについては、Gentoo Linux 2004.3 x86 ハンドブックの 1. Gentooをインストールするがありますので、そちらを参考にしてください。
Gentoo Linux のインストールメモ 目次
Gentoo Linux をインストールした PC の環境は以下の通りです。
CPU : Pentium III 600MHz Mem : 256MB Video Card : Millenium LAN Card : Intel EtherExpress PRO 100+ IP Adress : 192.168.0.23 Gateway : 192.168.0.254 DNS Server : 192.168.0.254
HDD の第一パーティションには、Windows 2000 がインストールされていましたので、第二パーティション以降に Gentoo Linux をインストールして、デュアルブートを行うように設定しました。
インストールは、Gentoo Linux 1.4 インストール手引書を参考に行いました。Gentoo Linux の CD イメージは、Gentoo Linux Mirrors のページから、ダウンロードするのに都合の良いサイトを選択するといいと思います。
ダウンロードできる CD イメージやパッケージは多いのですが、今回のインストールでは "basic" の CD イメージをダウンロードして、CD-R を作成し、Stage 1 から構築することにしました。
まず、CD からブートして、コマンドの入力ができる状態になるまで待ちます。起動したら、背景に Gentoo Linux のロゴが入った画面になり、コマンド入力が行えるようになります。高速な PC であれば問題ないのですが、あまりマシンパワーに余裕がない場合は、ALT + F2
を押して、背景のない画面にしておくと、少しは処理が速くなります。Stage 1 や 2 からインストールを行うと、大量にコンパイルを行う必要がありますので、画面を切り替えておいた方が良いと思います。
コマンドが入力できる状態になりましたら、ネットワークの設定を行います。起動した状態で、必要なモジュールなどが読み込まれていましたので、modprobe
で、その他のモジュールを読み込む必要はありませんでした。DHCP などは使用していませんでしたので、ifconfig
と route
コマンドで、ネットワーク設定を行いました。
# ifconfig eth0 192.168.0.23 broadcast 192.168.0.255 netmask 255.255.255.0 # /sbin/route add -net default gw 192.168.0.254
次に、/etc/resolv.conf を編集して、外部の名前解決ができるように設定します。ここでは、DNS サーバを 192.168.0.254
のみにしていますが、ISP の DNS サーバなどもあれば、下に追加しても良いと思います。
nameserver 192.168.0.254
ネットワーク設定の IP アドレス、ゲートウェイ、DNS の設定は、以下のコマンドを実行して、表示に従って入力することで設定を行うこともできます。
# net-setup eth0
HDD のパーティションを設定します。
# fdisk /dev/hda
以下のように設定しました。fdisk
の使い方については、Gentoo Linux 1.4 インストール手引書の、6. ファイルシステム、パーティション、そしてブロックデバイスの項に説明が載っていますので、そちらを参照してください。
/dev/hda1 : Windows 2000 (ブート可能) /dev/hda2 : /boot (ブート可能) /dev/hda3 : 予備 (ブート可能) /dev/hda4 : 拡張領域 /dev/hda5 : / /dev/hda6 : スワップ領域
次に、ファイルシステムの作成を行います。Gentoo Linux はいくつかのファイルシステムをサポートしており、好みのファイルシステムを使用すれば良いのですが、互換性なども考えて、一般的に使用されている ext3 形式にしました。
# mke2fs -j /dev/hda2 # mke2fs -j /dev/hda5
次に、スワップ領域の初期化も行い、スワップ領域を有効にします。
# mkswap /dev/hda6 # swapon /dev/hda6
HDD の初期化が終了したら、インストール作業を行います。まず、先ほど初期化したパーティションの内、ルートパーティション(/)として使用する /dev/hda5 を /mnt/gentoo にマウントし、/mnt/gentoo/boot を作成した後、ブートパーティション(/boot)として使用する /dev/hda2 を /mnt/gentoo/boot にマウントします。
# mount /dev/hda5 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/hda2 /mnt/gentoo/boot
マウントが終了したら、ステージ圧縮ファイルの展開を行います。ここでは、Stage 1 から行うことにしていますので、Stage 1 のファイルを CD-R から展開します。
# cd /mnt/gentoo # tar jxvfp /mnt/cdrom/stages/stage1-x86-1.4-20030806.tar.bz2
インストールを行うために、chroot
を実行する必要がありますので、その前に、proc ファイルシステムを /mnt/gentoo/proc にマウントして、resolv.conf をコピーします。
# mount -t proc proc /mnt/gentoo/proc # cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
chroot
を実行し、環境を整えるためのコマンドを実行します。
# chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile
最適化オプションの設定を行います。vi
などは見つかりませんので、nano
というエディタを使用して設定します。または、Alt + F3
や Alt + F4
などを押して、別のターミナルから設定ファイルを編集すれば、vi
も使用できます。
# nano -w /etc/make.conf
ここで、CHOST
、CFLAGS
、CXXFLAGS
の設定を行いました。CHOST
を設定して、CFLAGS
と CXXFLAGS
のコメントアウトを外し、環境に合わせて、以下のように設定しました。
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe" CXXFLAGS="${CFLAGS}" SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"
SYNC
の行に日本のミラーサイトを指定しておくと、少しは Portage ツリーの取得が早くなると思います。
最新の Portage ツリーを取得します。おそらく、数十分から1時間くらいは掛かると思います。
# emerge sync
「ブートストラップ」プロセスを開始します。参考として、Gentoo Linux のインストール手引書では、AMD Athlon 1200MHz で約 2時間掛かったとされていますが、今回の環境である、Pentium III 600MHz では、4時間以上掛かりました。
# cd /usr/portage # scripts/bootstrap.sh
Stage 1 では、ビルド中に /var/tmp を数百メガバイト使用することがあるようですので、/var を別パーティションに分けている場合、容量が足りなくなる可能性があります。そのような時は、テンポラリディレクトリを別のディレクトリに設定することができるようです。
# export PORTAGE_TMPDIR="/otherdir/tmp"
Stage 1 で作成したコンパイラで、残りのベースのシステムを構築します。まず、-p
オプションをつけて emerge
コマンドを実行し、インストールされるパッケージを確認してから、システムの構築を実行します。参考までに、今回の環境では、この作業に 3時間と少しくらい時間が掛かりました。
# emerge -p system # emerge system
Stage2 からインストールする場合は、-u
を付けておくと、自動的に最新のシステムに更新されるようです。
# emerge -u system
これ以降では、テキストの編集が多くなります。vi
を使った編集に慣れている場合は、以下のコマンドを実行して、Vim
をインストールすると良いと思います。
# emerge vim
まず、タイムゾーンの設定を行います。/usr/share/zoneinfo の中からタイムゾーンを選んでシンボリックリンクを作成します。日本に住んでいますので、以下のように設定しました。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
または、以下の方が良いかもしれません。
# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
次にカーネルソースの取得を行います。Gentoo Linux では、カーネルソースに多くの種類が用意されているようですが、とりあえず、普通に gentoo-sources
を選びました。また、カーネルを構築するツールである、genkernel
もインストールします。
# emerge sys-kernel/gentoo-sources # emerge genkernel
カーネルの構築を行います。デフォルトの設定のままカーネル構築を行うと、不要な機能まで作成することになってしまいますので、設定を変更するために、以下のように --config
を付けて実行しました。
genkernel --config
途中に、カーネル設定の画面(通常のカーネル構築での --menuconfig
の画面と同じ)が表示されますので、使用しない機能を外してからカーネル構築を行います。機能を削ったので、あまり参考にならないかもしれませんが、カーネル構築に、35分くらい掛かりました。
次に、多くのハードウェアを自動検出する hotplug
とその他、必要なモジュール類をインストールします。また、rc-update
を使用して、hotplug
が起動時に実行されるように設定します。
# emerge hotplug # rc-update add hotplug default
必要なハードウェアモジュールのインストールが終了したら、システムロガーのインストールを行います。Gentoo Linux では、システムロガーもいくつかの中から選択できるようですが、インストール手引書で勧められていた metalog
をインストールしました。インストール後、起動時に実行されるように rc-update
で登録しておきます。
# emerge app-admin/metalog # rc-update add metalog default
次に、cron
をインストールします。これも、インストール手引書で勧められていた vcron
をインストールしました。これも、起動時に実行されるように設定します。
# emerge sys-apps/vcron # rc-update add vcron default
/etc/fstab を編集して、起動時のパーティションを設定します。以下のように設定しました。
/dev/hda2 /boot ext3 noauto,noatime 1 2 /dev/hda5 / ext3 noatime 0 1 /dev/hda6 none swap sw 0 0 /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0 none /proc proc defaults 0 0
次に、root パスワードとユーザの追加を行います。wheel
グループに入っていないユーザでは、su
コマンドを使用して root にはなれませんので、wheel
グループに所属するユーザを一人は作成した方が良いと思います。
# passwd # useradd <user> -m -G users,wheel -s /bin/bash # passwd <user>
後は、ホスト名や、/etc/hosts の設定、ネットワーク設定を行います。ホスト名は適当に、「gentoo」という名前に設定し、/etc/modules.autoload には、LAN カードのモジュールを自動的に読み込むように、使用している LAN カードのモジュール名を追加しました。
# echo gentoo > /etc/hostname # nano -w /etc/hosts # echo eepro100 >> /etc/modules.autoload
再起動後も、ネットワークの設定が行われるように必要な設定を行います。
# nano -w /etc/conf.d/net
iface_eth0="192.168.0.23 broadcast 192.168.0.255 netmask 255.255.255.0" gateway="eth0/192.168.0.254"
# rc-update add net.eth0 default
CLOCK とキーマップの設定を行います。
# nano -w /etc/rc.conf
個人的に使用しているのは英語キーボードなので、"us" になっていますが、キーマップは日本語キーボードを使用している場合は、"jp106" とすれば良いと思います。
CLOCK="local" KEYMAP="us"
最後に、ブートローダを組み込みます。Gentoo Linux では、ブートローダに、Lilo と GRUB を選択できますが、扱いが簡単なGRUB を使用することにしました。以下のようにインストールを行い、grub
を実行します。
# emerge grub # grub
以下のように GRUB を設定しました。
grub> root (hd0,1) // ブートパーティション(/dev/hda2 に /boot をインストールしたため) grub> setup (hd0) // ブートレコードがインストールされている場所。ここでは MBR。 grub> quit
起動時に読み込まれる /boot/grub/grub.conf を作成します。/boot/grub/grub.conf.sample を参考に、第一パーティションにインストールされている Windows 2000 も起動できるように設定しました。
# Boot automatically after 30 secs. timeout 30 # By default, boot the first entry. default 0 # Fallback to the second entry. fallback 1 # Splash Image splashimage=(hd0,1)/boot/grub/splash.xpm.gz # Gentoo Linux title Gentoo Linux root (hd0,1) kernel (hd0,1)/boot/kernel-2.4.20-gentoo-r7 root=/dev/hda5 initrd (hd0,1)/boot/initrd-2.4.20-gentoo-r7 # For booting Windows 2000 title Windows 2000 boot menu rootnoverify (hd0,0) makeactive chainloader +1
念のため、GRUB のブートディスクを作成しておきます。フロッピーディスクを入れてから実行してください。
# cd /usr/share/grub/i386-pc/ # cat stage1 stage2 > /dev/fd0
etc-update
を実行して、設定ファイルの変更を処理した後、chroot
の環境を抜けます。
# etc-update # exit
最後に、後処理をして、インストールを終了し、再起動します。
# cd / # umount /mnt/gentoo/boot # umount /mnt/gentoo/proc # umount /mnt/gentoo # reboot
これで再起動後に GRUB によるブートローダが起動しますので、Gentoo Linux を選択して起動すればインストールは終了です。
この文書が古いものであることを追記
全体的に誤字、脱字の修正。設定部分にいろいろと追記。
初版作成。公開。