Gentoo Linux Stage 1 Install Memo

Gentoo Linux Stage 1 インストール作業メモ。

Stage 1 からインストールする場合はかなり面倒な手順を踏まないとダメなようです。実際ここに書いてある通りに進めるとエラーが出ます。詳細は下記のリンクをご覧ください。

インストール準備

メディアは /releases/amd64/2006.1/installcd からダウンロード。

bootable image として CD-R ( or CD-RW ) に焼く。

正常に焼けている事が確認出来たらマシンにセット、起動。

起動後

まずは root のパスワードが設定されていないので passwd で設定する。

# passwd

キーマップが jp106 以外 ( Shift + 2 でシャープ “#” 以外になる時 ) loadkeys で jp106 を指定する。

# loadkeys jp106

リモートで作業したいので sshd デーモンを立ち上げる。

# /etc/init.d/sshd start

この後は全てリモートで作業する。

ネットワークの設定

クライアントで使う場合は DHCP でも構わないと思うが、サーバなどでは static な IP のが良い場合が多々あると思うのでサーバ用途の時は下記のように設定する。

# ifconfig eth0 192.168.1.100 broadcast 192.168.1.255 netmask 255.255.255.0 up

デフォルトゲートウェイの設定

# route add default gw 192.168.1.1

DNS 名前解決の設定

# vim /etc/resolv.conf

domain clx.ath.cx
nameserver 192.168.1.101

clx.ath.cx には各自のドメインを入れる。

また、 192.168.168.1.101 にはルータやプロバイダの DNS サーバを指定する。

なお、リモートで作業している場合は接続が中断されるが、設定した IP に従って再接続すれば作業を再開出来る。

パーティション切り分け

# fdisk /dev/sdb

sdb は各自の環境で異なるので dmesg で確認すること

どの程度領域を確保するか悩みどころだけど、近年の HDD の GB あたりの単価で考えれば全ての領域に対して余裕を持たせてもいいかもしれない。

ちなみに今回 250GB の SATA HDD にセットアップしたパーティションは下記の通り。

/boot - 256M     - ext2
/     - 残り全て - reiserfs
swap  - 4096MB   - swap

フォーマットも忘れないこと。

# mke2fs /dev/sdb1
# mkswap /dev/sdb2
# swapon /dev/sdb2
# mkreiserfs /dev/sdb3

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

パーティションを切ってもマウントしなければ意味がないので各自のパーティションに合わせたマウントをすること。

# mount /dev/sdb3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sdb1 /mnt/gentoo/boot

時計合わせ

# date
# date 112233445566 ( ずれている場合 )

ntp-date くらい入れておいても良いと思うんだ・・・。

Stage 1 のダウンロードと展開

Stage 1 を展開する為、 Current Directory を変更する。

# cd /mnt/gentoo

適当なミラー ( 上記に例を挙げた mirror.gentoo.gr.jp など ) から Stage 1 のファイルをダウンロードする。

# wget http://mirror.gentoo.gr.jp/releases/amd64/current/stages/stage1-amd64-2006.1.tar.bz2
# wget http://mirror.gentoo.gr.jp/releases/amd64/current/stages/stage1-amd64-2006.1.tar.bz2.DIGESTS

ダウンロードが完了したら MD5 チェックサム で確認する。

# md5sum -c stage1-amd64-2006.1.tar.bz2.DIGESTS

問題が無かったら tar コマンドでアーカイブを展開する。

# tar -xvjpf stage1-amd64-2006.1.tar.bz2

展開が終わったら Stage 1 アーカイブは不要なので削除する。

# rm -fr stage1-amd64-2006.1.tar.bz2*

Portage スナップショットのダウンロードと展開

# cd /mnt/gentoo
# wget http://mirror.gentoo.gr.jp/snapshots/portage-latest.tar.bz2
# wget http://mirror.gentoo.gr.jp/snapshots/portage-latest.tar.bz2.md5sum
# md5sum -c portage-latest.tar.bz2.md5sum
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
# rm -fr portage-latest.tar.bz2*

/etc/make.conf の設定

# vim /mnt/gentoo/etc/make.conf

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -fomit-frame-pointer -pipe"
CXXFLAGS="${CFLAGS}"
FEATURES="ccache"
MAKEOPTS="-j2"

GENTOO_MIRRORS="http://mirror.gentoo.gr.jp http://ftp.jaist.ac.jp/pub/Linux/Gentoo/ "
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"

ハンドブックでは USE フラグの設定を後回しにしているが、ここで設定してしまう。

USE="mmx sse sse2 nptl"

まだ私自身もインストールしている最中なのでよくわかっていないのでとりあえず。

ベースシステムコンパイルの準備

DNS 名前解決の設定ファイルをコピー。

# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

/proc ファイルシステムのマウント。

# mount -t proc none /mnt/gentoo/proc

/dev ファイルシステムの bind マウント。

# mount -o bind /dev /mnt/gentoo/dev

/mnt/gentoo に chroot する。

# chroot /mnt/gentoo /bin/bash

環境変数を更新。

# env-update && source /etc/profile

Portage ツリーの更新。

# emerge --sync

glibc のロケールを限定する。

# nano -w /etc/locale.gen

#en_US ISO-8859-1
#en_US.UTF-8 UTF-8
#ja_JP.EUC-JP EUC-JP
#ja_JP.UTF-8 UTF-8
#ja_JP EUC-JP

通常ならこのように全てのロケールがコメントアウトされているので、これを下記のようにコメントアウトを外す。

en_US ISO-8859-1
en_US.UTF-8 UTF-8
ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
ja_JP EUC-JP

ccache をインストールする

make.conf で FEATURES に ccache を指定した場合、 ccache が使えるので ccache をインストールします。

# emerge --oneshot --nodeps ccache

また、ccache を使う場合はユーザのホームディレクトリにキャッシュが生成されてしまう為、ホームディレクトリにインボリックリンクを張ります。

# rm -r /root/.ccache
# mkdir /var/tmp/ccache
# ln -s /var/tmp/ccache /root/.ccache 

bootstrap システムをコンパイルする

# cd /usr/portage
# scripts/bootstrap.sh -f

-f オプションを付けるとまずソースコードをダウンロードしてからコンパイルを始める。

Gentoo を使ってる人でナローバンドな人はいいかもしれない。

・・・その前にうぶんつでも使ったようないい気がするけど・・・。

また、自分の環境では dev-perl/Locale-gettext-1.05 でエラーを吐いてしまったので手動で emerge –nodeps libperl perl とした。

参考文献
- Gentoo Forums :: View topic - Stage 1, 2006.0, x86_64 emerge -e system error[SOLVED]
- 今度は dev-lang/perl でエラーが出てしまった。

ベースシステム をコンパイルする

上記で bootstrap するために必要なソフトウェアはコンパイルされたので、 Gentoo Linux のベースとなるソフトウェアをコンパイルする。

# emerge system

性能が貧弱なマシンだと数日かかるかもしれないので注意すること。

( そういう場合は素直に Stage 3 からインストールした方が良い )

タイムゾーンの設定

シンボリックリンクを張るだけ。

# ln -sf /usr/share/zoneinfo/Japan /etc/localtime

続きは後ほど