colinuxにgentoo Linuxを素からインストール

http://nekhet.ddo.jp/blog/4
とか,
http://www.gentoo.org/doc/ja/handbook/index.xml
を参考にやってみました.

!!!注意!!!

実際には設定間違えたりして行きつ戻りつしながらやっています.この通り試したわけではないので,やってみようって人は参考程度に留めておいてください.つか,自分でやったほうが多分早いですよ(ぉ

下準備

ネットワーク設定,ユーザの追加,net.eth0とsshdの起動

XML

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\c:\Program Files\coLinux\root_fs" enabled="true" />
    <block_device index="1" path="\DosDevices\c:\Program Files\coLinux\swap_256Mb" enabled="true" />
    <block_device index="2" path="\DosDevices\c:\Program Files\coLinux\fs_4095Mb" enabled="true" />
    <bootparams>root=/dev/cobd/0</bootparams>
    <initrd path="initrd.gz" />
    <image path="vmlinux" />
    <memory size="128" />
    <network index="0" type="tap" />
</colinux>

fs_4095Mbがgentooをインストールする,空のファイルシステムイメージ.http://gniarf.nerim.net/colinux/fs/ から拾う.

キーボード設定(不要?)

# loadkeys jp106

FileSystemのマウント

# nano /etc/fstab

/dev/cobd/2

/mnt/gentoo

とする.

# cd /mnt/gentoo

ローカルタイムの設定

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# date

stage1展開

# wget http://mirror.gentoo.gr.jp/releases/x86/2005.1-r1/stages/x86/stage1-x86-2005.1-r1.tar.bz2
# tar -xvjpf stage1-x86-2005.1-r1.tar.bz2
# rm stage1-x86-2005.1-r1.tar.bz2

portage展開

# wget http://gentoo.gg3.net/snapshots/portage-latest.tar.bz2
# tar -xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
# rm portage-latest.tar.bz2
# nano /mnt/gentoo/etc/make.conf

CFLAGS="-Os -march=pentium3 -pipe"
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j2"
USE="-alsa -xv -arts -gnome -kde -X -qt -gtk -motif java cjk apache2 mysql readline berkdb mmx tcpd libwww ssl nls perl python php pam jpeg gif png gd"

Xは使わない.でもJavaは使う.CFLAGSの-marchはpentium3にした*1
cf. CFLAGS
http://gcc.gnu.org/onlinedocs/
http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/i386-and-x86_002d64-Options.html
cf. USE
http://www.gentoo.org/dyn/use-index.xml

名前解決を維持

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

/proc をマウント

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

chrootで移行

# chroot /mnt/gentoo/ /bin/bash

環境を整える

# env-update
# source /etc/profile

portageツリーをローカルに構築

# emerge --sync

userlocalesの設定(glibcコンパイル時間短縮のため)

# mkdir /etc/portage
# echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
# nano /etc/locales.build

en_US/ISO-8859-1と,ja_JP関連以外をコメントアウト

ブートストラップする

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

-fはダウンロード(fetch)を先にまとめて行なうオプション.しかし,ダウンロードしかしない.
結局,

# scripts/bootstrap.sh

が必要

システムのコンパイル

# emerge --fetchonly --emptytree system

ダウンロードを先に.

# emerge --emptytree system

# emerge -e system

単純にこれでもよいかも?

コンフィグの置換

"8 config files in /etc need updating."とか言われたけど,/etcに._cfg*なファイルは2つしかない.とりあえず置き換えてみる*2

# mv DIR_COLORS ._cfg0001_DIR_COLORS
# mv ._cfg0000_DIR_COLORS DIR_COLORS
# mv inittab ._cfg0001_inittab
# mv ._cfg0000_inittab inittab

ローカルタイムの設定

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

カーネルコンパイル

# emerge gentoo-sources

カーネルソースへのシンボリックリンクを確認

# ls -l /usr/src/linux

間違っていたらシンボリックリンクを張りなおす(らしい)

# rm linux
# ln -s linux-2.6.14-gentoo-r5/ linux
# ls -l /usr/src/linux

カーネル構築のためのconfig

# cd /usr/src/linux
# make menuconfig

  • Handbookを見ながら適切に設定
  • Pentium-mにしてみた.今度はどうなんだろうか.
  • charsetにJapaneseを追加.あとUTF8も.
  • 動くことが大事.

カーネルコンパイル

# make && make modules_install

カーネルをインストール

# cp arch/i386/boot/bzImage /boot/kernel-2.6.14-gentoo-r5

/bootにコピーするだけ

カーネル設定をコピー

# cp .config /boot/config-2.6.14-gentoo-r5

モジュールのインストール

カーネルの追加モジュールは,デバイスドライバ系っぽい.coLinuxの場合,Linux kernelがデバイスを直接触ることはないので,必要ないと思う.

/etc/fstabの設定

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/cobd/0             /               ext3            defaults,noatime       0 1
/dev/cobd/1             none            swap            sw              0 0
#/dev/cdroms/cdrom0     /mnt/cdrom      iso9660         noauto,ro       0 0
#/dev/fd0               /mnt/floppy     auto            noauto          0 0

# NOTE: The next line is critical for boot!
none                    /proc           proc            defaults        0 0
none                    /sys            sysfs           defaults        0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink).
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
#  use almost no memory if not populated with files)
none                    /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

sysは元の設定から追加.cdromはコメントアウトしておく.
noatimeはアクセス時間を記録しない設定.通常必要ないため.

/dev/cobd/* の作成

# mkdir /dev/cobd
# mknod /dev/cobd/0 b 117 0
# mknod /dev/cobd/1 b 117 1
# mknod /dev/cobd/2 b 117 2
# mknod /dev/cobd/3 b 117 3

ホスト・ドメインの設定

# echo colinux > /etc/hostname
# echo cobodo.or.tp > /etc/dnsdomainname
# nano -w /etc/conf.d/hostname
# nano -w /etc/conf.d/domainname
# rc-update add domainname default

ネットワーク設定

# nano -w /etc/conf.d/net

config_eth0=("192.168.128.40 netmask 255.255.255.0")
routes_eth0=("default gw 192.168.128.1")

# rc-update add net.eth0 default
# nano -w /etc/hosts

127.0.0.1 localhost colinux.cobodo.or.tp colinux
192.168.128.40 colinux.cobodo.or.tp colinux
192.168.128.1 cobodo.or.tp

rootの設定

# passwd
# echo "tts/0" >> /etc/securetty

シリアルコンソール経由でログインする設定(?)
もし,シリアルポートに繋いでやるような事だったら,colinuxでは不要なはず

/etc/rc.conf

# UNICODE specifies whether you want to have UNICODE support in the console.
# If you set to yes, please make sure to set a UNICODE aware CONSOLEFONT and
# KEYMAP in the /etc/conf.d/consolefont and /etc/conf.d/keymaps config files.
UNICODE="yes"
#EDITOR="/bin/nano"
EDITOR="/usr/bin/vim"
#EDITOR="/usr/bin/emacs"

vi派です.使いこなせてないけどorz
コメント部分をよく覚えておく.

/etc/conf.d/keymaps

KEYMAP="jp106"
SET_WINDOWKEYS="yes"

システムロギングツールのインストール

# emerge metalog
# rc-update add metalog default

cronのインストール

# emerge vixie-cron
# rc-update add vixie-cron default

slocateのインストール(locateコマンド利用のため)

# emerge slocate

ブートローダのインストール

colinuxでは必要ない.xmlの<image>要素とか<initrd>要素あたりがこれにあたるのではないだろうか.

chrootから抜けて再起動

# exit
# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
# reboot

XML書き換え

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\c:\Program Files\coLinux\fs_4095Mb" enabled="true" />
    <block_device index="1" path="\DosDevices\c:\Program Files\coLinux\swap_256Mb" enabled="true" />
    <bootparams>root=/dev/cobd/0</bootparams>
    <initrd path="initrd.gz" />
    <image path="vmlinux" />
    <memory size="128" />
    <network index="0" type="tap" />
</colinux>

起動

起動した

swapon

# swapon -a
# swapon -s

正しく動作している模様

sshd

# /etc/init.d/sshd start
# rc-update add sshd default

useradd

# useradd -m -G users,wheel,audio -s /bin/bash cobodo
# passwd cobodo

sudoのインストール

# emerge app-admin/sudo

ロケールの設定

# nano /etc/env.d/02locale

LC_ALL="ja_JP.utf8"
LANG="ja_JP.utf8"

# env-update
# source /etc/profile
# locale

確認

RSA

~/.ssh に authorized_keys
適当に.

sshdの設定

順番おかしいけど.
http://nekhet.ddo.jp/item/765/catid/43 とか,http://nekhet.ddo.jp/item/771/catid/43 を参考に.

蛇足

We'll shut up now and let you enjoy your installation :)

Handbookの最後の文.Gentooってインストールを楽しむためのディストリビューションだったんですね!(ぉ

*1:使用したノートPCはPentium-mだが,コンパイラのバージョンが古く,対応していないようで,うまくいかなかった.先にemerge gccとかすれば-march=pentium-m指定ができるのだろうか?

*2:ホームディレクトリにいくつか発見./etc じゃないじゃないかよう.