■Gentoo メモ
他のディストリビューションからインストール
gentooはコンパイルが大変。しかし、サーバーなどでは、インストールのためにサービスを停止するのは難しい。そこで、他のディストリビューションを動かしておきつつ、インストールを行う。
起動しているLinuxの環境はUbuntu 6.06 LTS Desktop。ハードディスクは/dev/hdaがubuntu、/dev/hdbがgentooとなる。
インストールの流れは基本的にハンドブックの通り。ポイントはchrootの使い方。
1.ネットワークの設定
これは、ubuntu側で行っているので問題ない。
2.HDDの用意
これも、ubuntu側からfdiskで行う。
/dev/hdb1 /boot
/dev/hdb2 swap
/dev/hdb3 /
/dev/hdb4 /home
とする。容量・ファイルフォーマットは適当(w)。
これをマウントする。ubuntu側で
mkdir /mnt/gentoo
mount /dev/hdb /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hdb /mnt/gentoo/boot
3.ファイルの解凍
stageファイルを/mnt/gentooにダウンロードして解凍する。
cd /mnt/gentoo
cp ubuntuのどこか/stage1-?????.tar.gz .
tar xvjpf stage1-?????.tar.gz
4.portageのインストール
これもダウンロードして解凍する。
cd /mnt/gentoo
cp ubuntuのどこか/portage-?????.tar.gz .
tar xvjpf /mnt/gentoo/portage-?????.tar.gz -C /mnt/gentoo/usr
5.コンパイルオプションの設定
コンパイル時のオプションを設定する。
vi /mnt/gentoo/etc/make.conf
6.chroot
DNS情報もコピーする。コピー元はubuntuのもの。
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
次に、/procと/devのマウント。このとき、bindオプションをつけると、元の環境と共有することができるらしい。
mount --bind -t /proc /mnt/gentoo/proc
mount --bind /dev /mnt/gentoo/dev
最後に、chrootする。
env -i HOME=$HOME TERM=$TERM /usr/sbin/chroot /mnt/gentoo /bin/bash
/usr/sbin/env-update
source /etc/profile
以降はハンドブックに沿って行う。
7.システムの構築
まず、portageを更新する。
emerge sync
そして、bootstrapを実行する。
cd /usr/portage
scripts/bootstrap.sh
bootstrapのオプションは-pと-fがあり、pはemergeと同じく、結果を確認する。-fは団ロードのみ行う。
bootstrapの構築には時間がかかる。ちなみにtimeの結果は
real 91m44.751s
user 53m22.576s
sys 11m31.435s
次に、systemの構築を行う。
emerge system
8.カーネルコンパイル。
まず、タイムゾーンを設定する。
cp /usr/share/zoneinfo/Japan /etc/localtime
次に、ソースをダウンロードする。
USE="-doc symlink" emerge gentoo-sources
あとは、コンパイルオプションを指定してコンパイルするのみ。
make menuconfig
make && make modules_install
できあがったら、imageファイルを/bootにコピーする。
cp linux/arch/i386/boot/bzImage /boot/kernel-2.6.17-gentoo-r4
cp linux/System.map /boot/System.map-2.6.17-gentoo-r6
9.各種設定
残りの設定を行う。
まず、/etc/fstabの編集
/dev/hda1 /boot ext2 defaults,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
/dev/hda4 /home ext3 defaults 0 1
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
/dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0
次にネットワーク
nano -w /etc/conf.d/net
ルートパスワード
passwd
ログ・クローン・DHCPのインストール
emerge syslog-ng
rc-update add syslog-ng default
emerge vixie-cron
rc-update add vixie-cron default
emerge dhcpcd
10.GRUBの設定
ブートローダの設定を行う。ここで、注意することは、grubに設定する値は元の環境で使われているものである。従って、gentooは/dev/hdbにインストールするため、これを用いる。
emerge grub
nano -w /boot/grub/grub.conf
grub.conf
# Boot automatically after 30 secs.
timeout 30
# By default, boot the first entry.
default 0
# Fallback to the second entry.
fallback 1
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.17-r4
root (hd0,0)
kernel /boot/kernel-2.6.17-gentoo-ra root=/dev/hda3
次に、grubのインストール先を決定する。
grub
grub> root(hd1,0)
grub> setup (hd1)
grub> quit
11.umountと再起動
以上で終わりなので、chrootからexitし、umountしてから再起動して、ディスクを繋ぎ替える。
exit
umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
シリアルATAにインストールして、起動の際、
VFS なんとか root=で正しいrootを指定してね。
のようなエラーでkernel panicった場合にはシリアルATAが認識されていない可能性がある。このような場合にはコンパイルしなおす必要がある。
make.conf
CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j2"
手動でインストールして、起動しないとき
ハンドブックなどに沿ってインストールしていて、
ファイルの書き間違えなどで再起動してもシステムが立ち上がらないときがある。
このようなときは以下のようにする。
1.CDから起動
2.Alt+F1で仮想端末へ移動
3.ルートパスワードを変更
4.Alt+F7でGUIへ戻り、ターミナルを起動して操作を行う。
さらに、マウント、chrootをする。
5.su - でルートになる
6.mount /dev/hd3 /mnt/gentoo
7.mount /dev/hda1 /mnt/gentoo/boot
8.chroot /mnt/gentoo /bin/bash
これでインストールした環境に移れるので、ファイルを修正する。
ドキュメント類
最終更新:2007年08月12日 01:00