GenToo Linuxのインストール

先日、Let'sNote CF-B5Rに換装した60GBディスクが死にました。原因はたぶん熱。というわけで手持ちでまともに動く4GBディスクに換装しました。Slackwareを入れても良かったのだが、アップデートするのが面倒になってきたので、最近気になっていたGenToo Linuxを入れてみる事にしました。と言う訳で、GenToo Linuxが気に入った場合は、Slackwareの情報更新はなくなります。ペイジ自体は残しますが。

GenToo Linuxをインストールする際の問題は、CD-ROMのインストールしかないことです。USBなCD-ROMなんて持っていない私にはインストールできん。かと言って、4GBしかないのにWindosやDOSを入れてLinuxインストールするのも嫌。と言う訳で、なんとかUSB FDからGenToo Linuxをインストールする方法を模索してみました。


FDインストールの方法

まず始めにGenToo Linux Users GroupGenToo Linux FDインストールガイドを一読しましょう。このドキュメントには、FDブートによりGenToo Linuxをインストールするための最初の手順が記載してあります。ただし、ここに記載してあるArch Linuxのインストール用ブートディスクは残念ながらUSB FDではブートできません。GenToo Forums FAQにあるtimsrtbtも1.722MB FDなので使えません。ううう。

そこで私がとった方法は、Plamo LinuxのブートFDを利用する方法です。USB FDしか持っていないノートPCユーザでGenToo Linuxを入れたい人はお試しあれ。


Palmo LiuxのブートFDの作成

Plamo Linuxのダウンロードペイジからbootdskrootdsk.usb、及びnetdriver.imgをダウンロードしてrawrite.exeでブートFDを3枚作りましょう。

8.3フォーマットにしか対応していないrawrite.exeの場合は、netdriver.imgを8.3形式にリネームしましょう。(例:netdrv.img)


Palmo Liuxのブート

bootdskを使いUSB FDからブートしましょう。FDの差し替えを要求されたらrootdsk.usbのFDに差し替えてEnterキーを押しましょう。これでUSB FDからめでたくPlamo Linuxのインストール環境が整いました。Slack系のPlamo Linuxを入れるも良し、ここから私が試した方法でGenToo Linuxを入れるのもまた良し。

まずは、イーサネットカードを認識させましょう。Let'sNote CF-B5Rの内蔵イーサネットカードがIntel(R) Pro/100なので以下の手順で認識させます。他機種をお使いの方は、netdriver.imgには、他にもいくつかのドライバがあるのでカードの種類に応じてinsmodで認識させると良いでしょう。

netdriver.imgを書いたFDをUSB FDに挿入。
# mount /dev/sda /floppy
# insmod /floppy/e100/e100.o
# ifconfig eth0 xxx.xxx.xxx.xxx              (← xxxは自マシンのIPアドレスね)
# route add default gw yyy.yyy.yyy.yyy eth0  (← yyyは自LANのゲートウェイのIPアドレスね)


パーティション作成とフォーマット

Linuxを入れるためディスクのパーティション切りましょう。fdiskで設定します。どのようにパーティション設定するかは、環境により違いますので各自検討してください。私は、4GBディスクと貧弱なのと暫定復旧のため以下の様にswapとルートしか作りませんでした(以降の説明用に示しておきます)。swap、ルート(/)と/boot(カーネルの置き場所)、/home、/var(コンパイルに使用するので大きめに)を切っておくのがいいかもです。

fdisk /dev/hda

コマンド (m でヘルプ): p

Disk /dev/hda: 3253 MB, 3253469184 bytes
128 heads, 63 sectors/track, 788 cylinders
Units = シリンダ数 of 8064 * 512 = 4128768 bytes

 デバイス Boot      Start         End      Blocks   Id  System
/dev/hda1               1          17       68512+  82  Linux スワップ
/dev/hda2   *          18         788     3108672   83  Linux

パーティションを切り終ったらスワップの作成と有効化、フォーマットを行いましょう。

# mkswap /dev/hda1
# swapon /dev/hda1
# mke2fs /dev/hda2
(注:ext3でフォーマットされます)


インストール準備

ディスクのマウントとGenToo LinuxのFDインストール用のtarアーカイブをダウンロードします。

# mkdir /mnt
# mount /dev/hda2 /mnt
# cd /mnt
# wget http://152.2.210.109/pub/linux/distributions/
            gentoo/releases/x86/2004.1/stages/x86/stage1-x86-2004.1.tar.bz2
(長いので2行にしたが1行でタイプしてね)

Palmo LinuxのブートFDにはbzip2がないのでbzip2のペイジからスタティックリンクなLinux用バイナリをダウンロードしてきます。スタティックリンクなバイナリを配布しててくれてありがとう。

# wget http://www.digistar.com/bzip2/v100/bzip2-100-x86-linux20
# mv bzip2-100-x86-linux20 /bin/bzip2


インストール

ここまで来ればGenToo Linux Users GroupGenToo Linux FDインストールガイドに書かれている「 Code Lsting3.8:圧縮ファイルの展開」以降進めるだけです。参考まで私がやった手順を記載しておきます。

「ファイル展開」

# cd /mnt
# bzip2 -dc stage1-x86-20004.1.tar.bz2 | tar -xvpf -
(なんかデバイスファイル(/dev)の展開で失敗するが無視して進めても大丈夫です。後で再度展開します。)
# mount -o bind /proc /mnt/proc
# vi etc/resolv.conf
(DNSサーバの指定をします。プロバイダが指定するIPを指定してね。)
# cat etc/resolv.conf
domain piyopen.dip.jp
nameserver 202.224.32.1
nameserver 202.224.32.2

「ネームサーバの設定」

# vi etc/resolv.conf
(DNSサーバの指定をします。プロバイダが指定するIPを指定してね。)
# cat etc/resolv.conf
domain piyopen.dip.jp
nameserver 202.224.32.1
nameserver 202.224.32.2

「chrootとアーカイブの再展開」

# chroot /mnt /bin/bash
# env-update
# source /etc/profile
(先程tarアーカイブの展開に失敗したのでここで再展開することにした)
# bzip2 -dc stage1-x86-20004.1.tar.bz2 | tar -xvpf -

「インストールガイドに従いインストール」

○Portageツリーの取得
# emerge sync
(/etc/make.conf確認。viがない!!nanoなるエディタがあるが使えねぇ〜。viにしてくれ。
  ちなみにTERMをvt100に設定しないとnanoは起動しませんのでvt100に設定しましょう。)
# export TERM=vt100
# nano -w /etc/make.conf
(とくに変更する必要はなかったので編集せずに進みました)

○ブートストラップの実行
# cd /usr/portage
# scripts/bootstrap.sh
(結構時間がかかるので夜中実行して寝た)

○stage2(残りのシステム関連のインストール)
# emerge -p system
(インストールする一覧を表示)
# emerge system

○タイムゾーンの設定
# ln -s /usr/share/zoneinfo/Japan /etc/localtime

○fstabの設定
# nano -w /etc/fstab
(編集する)
# cat /etc/fstab
/dev/hda2  /      ext3  noatime   0 0
/dev/hda1  none   swap  sw        0 0
none       /proc  proc  defaults  0 0

○カーネルの選択とビルド(オリジナルなカーネルを選択した)
# emerge -k vanilla-sources
# emerge -k genkernel

○ホットプラグのビルド(HW自動検出ツール)
# emerge -k hotplug
# rc-update add hotplug default
(起動時に起動するための設定。rcファイルの設定ね)


○イーサカードのドライバをビルド
# emerge e100
(Intel e100 Fast Ethernet Adapterのドライバ)

○syslogの選択
# emerge -k syslog-ng
# rc-update add syslog-ng default

○cronの設定
# emerge -k vixie-cron
# rc-update add vixie-cron default

○今回は使わないけどreiserfsのビルド
# emerge -k reiserfsprogs

○PCMCIAパッケージのビルド
# emerge -k pcmcia-cs

○ユーザ管理
(ルートパスワード設定)
# passwd
(ユーザ登録)
# useradd tks -m -u 1000 -G users,wheel -s /bin/bash
# passwd tks

○ホスト名、ドメイン名設定
# echo cipher > /etc/hostname
# echo piyopen.dip.jp > /etc/dnsdomainname
# rc-update add domainname default
(必要なら/etc/hostsを設定)
# nano -w /etc/hosts

○ネットワーク設定
# nano -w /etc/modules.autoload.d/kernel-2.4
(e100を追加した)

○IPアドレス設定
# nano -w /etc/config.d/net
(自マシンのIPアドレスとゲートウェイのアドレスを設定した)
# rc-update add net.eth0 default

○PCMCIAカードの設定
# rc-update add pcmcia boot

○キーマップの設定
# nano -w /etc/rc.conf
(以下を変更)
KEYMAP="jp106"
SET_WINDOWKEYS="yes"

○ブートローダの組み込み(GRUBを使うことにした)
# emerge -k grub
# grub
grub> root (hd0,1)
grub> setup (hd0)
grub> quit
# nano -w /boot/grub/grub.conf
# cat /boot/grub/grub.conf
timeout 30
default 0
fallback 1
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title  GenToo Linux
root (hd0,1)
kernel (hd0,1)/boot/kernel-2.4.26 root=/dev/hda2

○GRUBのブートFD作成
# cd /usr/lib/grub/grub/i386-pc
# cat stage1 stage2 > /dev/sda

○リブート
# exit
# umount /mnt
CTRL+Alt+Delete押下

「パッケージのインストール」

リブートしたらめでたくGenToo Linuxがブートするはず。あとは必要なパッケージを入れましょう。

○最新のPortageツリーを取得
# emerge sync

○まずは必須のviだ
# emerge vi

○apache
# emerge apache
# vi /etc/apache2/conf/apache2.conf
# vi /etc/apache2/conf/commonapache2.conf
# rc-update apache2 default

○emacs+tamago+canna
# emerge emacs
# emerge canna
# vi /etc/hosts.canna
("localhost"を追加)
# emerge app-emacs/tamago

○hdparm設定(DMA有効、モータ停止設定)
# rc-update add hdparm default
# vi /etc/conf.d/hdparm
(disc0_args="-d1 -S6"を追加。DMA転送ON、ディスクスタンバイ(モータ停止)30sec(30/5=6))
# vi /etc/init.d/hdparm
start()にecho "30 500 0 0 90000 3000 60 20 0" > /proc/sys/vm/bdflushを追加。
5番目のパラメータを90000に変更。15分毎にバッファフラッシュすることとした。
stop()に/bin/syncを追加した。