もしも、うまく起動しなかったら、どうしましょ?
私の場合は、起動はうまくいったのですが、先にも述べたとおり、rootパスワードの設定を忘れて、ログインできないことになってしまいました 。
えっ?!インストールのやり直し?
いえ、インストールCDを使って、復旧できます 。
インストールCDから、ブートして、ログインプロンプトが出るまで待ちます。
次に、ディスクをマウントして、chrootでGentoo環境に入ります。私の場合は、
# mount /dev/hda4 /mnt/gentoo
# cd /mnt/gentoo
# mkdir var boot
# mount /dev/hda1 boot
# mount /dev/hda3 var
procファイルシステムもマウントして、
# mount -t proc none /mnt/gentoo/proc
chrootして、Gentoo環境に入ります。
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
ここで、必要な作業を実行します。
後は、chrootから抜けて、再度リブートします。
# exit
# umount /mnt/gentoo/boot /mnt/gentoo/var /mnt/gentoo/proc /mnt/gentoo
# reboot
この方法は、カーネルの作成失敗、GRUBの設定ミスなどにも、応用がききますね。
ブートローダは、GRUBを使う。長い間、LILOに慣れてきたのですが、最近は、GRUBが趨勢のようです。
例によって、エマージして、インストール。
# emerge grub
/boot/grub/grub.confを編集して、
timeout 5
default 0
title Gentoo Linux 2.6.14-r5
root (hd0,0)
kernel /kernel-2.6.14-gentoo-r5 root=/dev/hda4
としました。
grubを起動して、MBRに書き込みます。
# grub --no-floppy
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
これで、ようやく再起動できる状態になりました。
chrootから抜けて、ディスクをアンマウトしてリブートです。
# exit
# cd
# umount /mnt/gentoo/boot /mnt/gentoo/var /mnt/gentoo/proc /mnt/gentoo
# reboot
ほい!っと。
ブート前に、必要なシステムツールをインストールしておきます。
まずは、ログツール。sysklogd、sysklogd-ng、metalogの中から、metalogを使うことにします。
# emerge metalog
cronは、dcron、fclon、vixie-cronから、vixie-cronを選びました。
# emerge vixie-cron
slocateも、ここでインストールします。
# emerge slocate
次は、ブートローダをインストールします。
必要なシステム設定をします。
まずは、/etc/fstabを編集。
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda4 / ext3 noatime 0 1
/dev/hda3 /var ext3 noatime 0 1
/dev/hda2 none swap sw 0 0
次は、ネットワークまわりを設定していきます。
/etc/conf.d/hostnameを編集。
HOSTNAME="xxxx"
/etc/conf.d/domainnameの編集。
DNSDOMAIN="example.com"
domainnameを自動実行スクリプトとして登録します。
# rc-update add domainname default
/etc/conf.d/netを編集して、ネットワークの設定します。
config_eth0=( "192.168.11.101 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.11.1" )
ブート時にネットワークを有効にさせます。
rc-update add net.eth0 default
/etc/hostsは、とりあえずこのPCだけ、記述しておきます。
127.0.0.1 localhost
192.168.11.101 xxxx.example.com xxxx
ここらで、忘れずにrootパスワードを変更してきます(実は、これを忘れて、ログインできなかったのだ )
# passwd
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully
デフォルトでは、使いにくいので、KEYMAPを設定しておく。/etc/conf.d/keymapsを編集して、
...
KEYMAP="jp106"
...
としておきます。
最後に、UTCは使用していないので、clockをlocalに設定します。
...
CLOCK="local"
...
やっと、カーネルの構築です。
その前に(準備が長いな・・・)タイムゾーンの設定か。
# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
カーネルソースのバージョンの確認。
# ls -l /usr/src/linux
linux-2.6.14-gentoo-r5となっています。
# make menuconfig
で、カーネルのオプションを指定していくわけですが、よくわからないものは、デフォルトのままにして、以下のものだけを変更しました。
- Processor family –> Pentium IIIに
- Device Driver
–>Network device
–> Ethernet (10 or 100Mbit)
–> Inter(R) PRO/100M+ support
カーネルコンパイルだ、ふぅ
# make && modules_install
/etc/modules.autoload.d/kernel-2.6を編集して、NICインターフェースのe100を追加しておきます。
さて、いよいよchrootするわけですが、その前にDNS情報のコピーと、procファイルシステムをマウントしておきます。
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
mount -t proc none /mnt/gentoo/proc
chrootの準備は整った(ハズ)。
# chroot /mnt/gentoo /bin/bash
環境を引き継ぐ。
# env-update
# source /etc/profile
次は、Portageの更新とやら・・・
# emerge --sync
必要なロケールだけ使用するように設定します。
echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
/etc/locales.buildを編集して、以下のように設定します。
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15
ja_JP.EUC-JP/EUC-JP
ja_JP.UTF-8/UTF-8
ja_JP/EUC-JP
今度は、Portageというのをインストールします。
これは、最新の状態の情報を持ったsnapshotというものらしい。最新状態のキャッシュのようなものか・・・。
stageのダウンロードの時と同様に。links2で、ミラーサイトにはいり、/snapshot/portage-20060117.tar.bz2をダウンロードします。
で、usrの下に展開。
# tar xvjf portage-20060117.tar.bz2 -C /mnt/gentoo/usr
次に、/mnt/gentoo/etc/make.confを編集しろとありますが、stage3を選んだので、コンパイルオプションは、そのまま、USEフラグもどこかにあるらしいデフォルトを使用することにします。
mirrorselectして、ダウンロードしてくるミラーを設定しておきます。
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
make.confに次のパラメータが追加されました。
...
GENTOO_MIRRORS="ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO"
次は、いよいよchrootして、カーネルの構築か・・・。
ハンドブックによると、何やら、stageというのを、1~3の中から、選ぶ必要があるらしい。
stage1というのは、必要最低限で何もない状態、stage3は、ある程度のシステムがコンパイル済みということらしい。Gentooやるなら、stage1を選ぶのがいいのだろうけど、なんせボロマシンなので、コンパイルに時間がかかりそう。
手を抜いて、stage3を使うことに。
links2というキャラクタベースのブラウザを使ってダウンロードします。
# cd /mnt/gentoo
# links2 http://mirror.gentoo.gr.jp/
から、/release/x86/2005.1-r1/stages/pentium3/から、stage3-pentium3-2005.1-r1.tar.bz2をダウンロードする。ダウンロードするファイルに、カーソルを合わせ[Enter]でダウンロードできます。links2を終了するには[Q]を押します。
chrootするルートに展開します。
# tar xvjpf stage3-pentium3-2005.1-r1.tar.bz2
さて、パーティションを切ってディスクをフォーマットしなければならない。
その前に、キーボードが、合わないので、日本語キーボードのマップをロードしておく。実は、ブート画面で、聞いてきたのだが、ぼーっとしてたら、次に行ってしまった。
# loadkeys jp106
これでよし。
パーティションの分割は、いつも悩むのだが、今回は、次のように分割することにします。
/dev/hda1 /boot 64M
/dev/hda2 swap 512M
/dev/hda3 /var 3G
/dev/hda4 / 残りすべて
それぞれのパーティションをフォーマットします。
# mke2fs -j /dev/hda1
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4
スワップパーティションも、
# mkswap /dev/hda2
ついでにスワップON
# swapon /dev/hda2
最後に、作成したパーティションをマウントしておきます。
# mount /dev/hda4 /mnt/gentoo
# cd /mnt/gentoo
# mount /dev/hda1 boot
# mount /dev/hda3 var
作成したインストールCDをセットして、ボロPCの電源ON!
CDからブートする旨のメッセージが出て、
boot:
ときた。
カーネルに渡すパラメータも特にないので、そのまま[Enter]
グラフィカルなきれいな画面です。
ALT+F1を押すと、ブートログを見ることができます。
Processor 0 is Pentium III (Coppermine) 801MHz, 256 KB Cache ...
...
Not Loading APM Bios suport.
...
...
Network device eth0 deteted, DHCP broadcasting IP.
...
...
...
ネットワークもDHCPで繋がったようです。
作業は、始まったばかり、これからが、長い道のりだ。