■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