しろあん日誌 -momongaの飼育 その2

2002.7.17.

その1からの続きです。

起動できるようにする

さて。今度こそinitrdを作って起動してもらいたい。kazさんのメール <URL:http://www.momonga-linux.org/archive/Momonga-devel.ja/msg00122.html> を参考に作業を続行する。

momongaのCDから起動して、 まずはルートになるパーティションをマウントする。mknodはオプション少なく てもいいのかな?

mknod /dev/hdb5

いいみたい♪ちゃんと、b,3,69になってるよ。これをマウント。

mkdir /mnt/root
mount /dev/hdb5 /mnt/root

fstabを作る。vi /mnt/root/etc/fstab で以下を入力。

/dev/hdb5 / ext2 defaults 0 0
none /proc proc defaults 0 0

initrdを作る

chroot /mnt/root /sbin/mkinitrd -v /boot/initrd-2.4.18-100m.img 2.4.18-100m

リブートの準備

umount /mnt/root

今度こそ起動してみる

grubのフロッピーより、

grub> root (hd1,4)
grub> kernel /boot/vmlinuz-2.4.18-100m root=/dev/hdb5
grub> initrd /boot/initrd-2.4.18-100m.img
grub> boot

ちゃんと起動して、kduzuがハードウェアの設定を始めました。すげー。

それで、

rc: Starting postfix: failed

とはなるが、

localhost login:

むふふ。hdb5がちゃんとアンマウントされてませんしたと言ってfsckを始めるの は何故なんだろう?まだpingは通りませんでした。

設定

rootでloginし、

# passwd
# vi /etc/sysconfig/network

で以下を入力

NETWORKING=yes
HOSTNAME=siroan.xxx.xxx.de
GATEWAY=xxx.xxx.xxx.xxx

で、eth0を上げる。

# /etc/init.d/network start

/homeは以前のHEAD環境と共通のものを使う。

# vi /etc/fstab

で以下を追加。

/dev/hda3 /home ext2 defaults 0 0

とりあえずmount

# mount /home

一般ユーザーの追加。mountした/homeのユーザーIDと不整合がおこらないように、

# useradd -c 'momonga!' -u 501 zunda
# passwd zunda

これで以前と同様の環境にログインできる。次はsshdだと思ったら…。 openssh-serverはインストールCDに入ってませんでした。これは入れた いなぁ。

不要なサービスの停止。

# chkconfig --list | grep on

して眺めてみる。要らないのは、netfs pcmcia autofsくらいか。 それぞれ、

# chkconfig --del サービス

postfixの設定。 /etc/postfix/aliasesで、#root: you を root: zunda に変更して、 /etc/hosts に以下を設定。

127.0.0.1               localhost.localdomain localhost
xxx.xxx.xxx.xxx         siroan.xxx.de siroan

んで、

# cp /etc/localtime /var/spool/postfix/etc/localtime
# cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
# /etc/init.d/postfix restart

こんなんでいいのかな?

オモコン環境の整備

sudoの設定

ホントはvisudoするんですけどね、前のHEAD環境のままでいいや。

# mkdir /mnt/tmp
# mount /dev/hdb8 /mnt/tmp
# cp /mnt/tmp/etc/sudoers /etc/sudoers
# umount /mnt/tmp

一応 sudoers が正当なのを確認しておこう。

# visudo

だいじょうぶ。

sshdのビルド

…といいたいところだけど、前作っておいたのを取ってきちゃう。 前のとhost keyが違ってると面倒なことになるので、host keyは前のを持ってく る。

# mount /dev/hdb8 /mnt/tmp
# mkdir /etc/ssh
# cp -p /mnt/tmp/etc/ssh/ssh_host* /etc/ssh
# umount /mnt/tmp
# rmm -Uvh openssh-server-3.4-2k.i586.rpm
# /etc/init.d/sshd start

これで他のホストからsshでログインできるようになる。

cvsのインストール

cvsが無いとspecファイルを取って来られません。

# rpm -Uvh cvs-1.11-2-6k.i586.rpm

gcc一族のインストール

# rpm -Uvh gcc-2.96-108k.i586.rpm cpp-2.96-108k.i586.rpm\
           binutils-2.12.90.0.7.i586.rpm

rpm-develのインストール

結構足りないなぁ。

# rpm -Uvh rpm-devel-4.0.4-30m.i586.rpm

ツリーの準備

今回はGCC3の修行をするのだ。ここら辺からは、OmoiKondara-HOWTOにしたがう。 <URL:http://www.momonga-linux.org/docs/OmoiKondara-HOWTO/ja/>

% mkdir Momonga-GCC3
% cd Momonga-GCC3
% export CVS_RSH=ssh
% export CVSROOT=:ext:hoge@cvs.momonga-linux.org:/home/cvs
% cvs checkout tools
% cvs checkout -r GCC3 pkgs/rpmrc
% make -Ctools

きっとこれで、gccから作り直していくのがいいのだろう。 gccのオモコを始めて帰ろう。と思ったら…

% rpm --rcfile rpmrc -ba gcc.spec
gcc.spec: No such file or directory

どーゆーこと?-bpとかでもだめです。

実際には何が読めていないのか?

rpm.specはrpm -q --specfileでちゃんと読めるので、perrorの引数の間違いだ ろう。実際には何が読めていないのか?straceが使いたいのでHEADに戻って、

% cd ~/Momonga-GCC3/pkgs/gcc
% strace rpm --rcfile rpmrc -bp gcc.spec 2>&1 | tee rpm.head.log

openに成功しているのは…

% grep open rpm.head.log  | grep -v ENOENT | sed 's/open("//;s/",.*//' |\
  sort -u

より、

/etc/group
/etc/ld.so.cache
/etc/localtime
/etc/mtab
/etc/nsswitch.conf
/etc/passwd
/home/zunda/.rpmmacros
/home/zunda/Momonga-GCC3/pkgs/gcc/SOURCES/gcc-3.1-athlon-optimize.patch
/home/zunda/Momonga-GCC3/pkgs/gcc/SOURCES/gcc-3.1-optimization.patch
/home/zunda/Momonga-GCC3/pkgs/gcc/SOURCES/gcc-3.1.tar.gz
/home/zunda/Momonga-GCC3/pkgs/gcc/SOURCES/gcc-paths.patch
/home/zunda/Momonga-GCC3/pkgs/gcc/gcc.spec
/home/zunda/Momonga-GCC3/pkgs/gcc/rpmmacros
/lib/ld-linux.so.2
/lib/libc.so.6
/lib/libnss_files.so.2
/proc/meminfo
/usr/lib/rpm/athlon-linux/macros
/usr/lib/rpm/i586-linux/macros
/usr/lib/rpm/macros
/usr/lib/rpm/rpmpopt-4.0.4
/var/lib/rpm/Conflictname
/var/lib/rpm/Name
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/tmp/rpm-tmp.49980
rpmrc

GCC3のルートをマウントして

# mount /dev/hdb5 /mnt/tmp
% grep open rpm.head.log  | grep -vE 'ENOENT|home|proc' | grep / |\
  sed 's/open("/\/mnt\/tmp/;s/",.*//' | sort -u | xargs ls > /dev/null

rpm-tmp.49980以外は全部あるなぁ…。HEADにstrace入れるか。

HEADに行き、

% sudo rpm -Uvh strace-4.4-2k.i586.rpm
% strace rpm --rcfile rpmrc -bp gcc.spec 2>&1 | tee rpm.gcc3.log

出ました。

execve("/usr/lib/rpm/rpmb", ["/usr/lib/rpm/rpmb", "-bp", "--rcfile", "rpmrc", "gcc.spec"], [/* 23 vars */]) = -1 ENOENT (No such file or directory)
write(2, "gcc.spec: No such file or direct"..., 36) = 36

だそうです。…このエラーメッセージはソースのバグですな。

さて。rpmbというファイルはHEADでは出てなかったんですけどどういうわけだ? そうか、openしか見てなかったからだ。実際はexecveでエラー。このファイルは HEADではどうなっているか?

# mount /dev/hdb5 /mnt/tmp
% rpm --root /mnt/tmp -qf /usr/lib/rpm/rpmb
rpm-build-4.0.4-30m

はい。このパッケージが入ってないわけですな。

% sudo rpm -e strace
% sudo rpm -Uvh i586/rpm-build-4.0.4-30m.i586.rpm \
                noarch/perl-Archive-Tar-0.22-4k.noarch.rpm \
                i586/perl-Compress-Zlib-1.16-2k.i586.rpm

おっけー。rpmは走るようになりました。

番外。前のシステムのLILO

そのうちgrubにしなくちゃね。リブートして前のシステムを起動し、liloを設定。 今のところ、パーティション以外は前のシステムと一緒。これができるのも、 GCC3側でkernelを入れるまでだ。

TODO

結局入ったパッケージは…

rpm -qaの結果です。

Canna-library-3.5-0.0002062k MAKEDEV-3.3-2k SeaBows-3.6.1-50k SysVinit-2.84-2m acpid-1.0.1-4k apmd-3.0.2-4k ash-0.3.7-2k at-3.1.8-16k authconfig-4.2.8-5m autofs-3.1.7-10k basesystem-8.1-2k bash-2.05-34k bc-1.06-8k bdflush-1.5-16k binutils-2.12.90.0.7-4k busybox-momonga-0.60.2-2k bzip2-1.0.2-2k chkconfig-1.3.5-2k console-tools-19990829-46k cpio-2.4.2-30k cpp-2.96-108k cracklib-2.7-14k cracklib-dicts-2.7-14k crontabs-1.10-3m cvs-1.11.2-6k cyrus-sasl-1.5.27-10k db1-1.85-4k db2-2.4.14-12k db3-3.1.17-20k db4-4.0.14-7m dev-3.3-2k dhcpcd-1.3.22pl1-4k diffutils-2.8.1-4k dosfstools-2.7-2k e2fsprogs-1.27-6k ed-0.2-28k eject-2.0.12-4k expat-1.95.2-2k file-3.37-4k filesystem-2.1.6-14k fileutils-4.1-11m findutils-4.1.7-4k ftp-0.17-10k gawk-3.1.0-12k gcc-2.96-108k gdbm-1.8.0-18k gettext-0.10.40-13m glib-2.0.4-2k glib1-1.2.10-12k glibc-2.2.5-23m glibc-common-2.2.5-23m glibc-devel-2.2.5-23m gmp-4.0.1-3k gnupg-1.0.7-8k gpm-1.19.3-14k grep-2.5-2k groff-1.17.2-6k gzip-1.3.3-2k hdparm-4.9-2k hotplug-2002_04_01-4k hwdata-0.14-2k indexhtml-1.1-8k info-4.2-8k initscripts-6.67-4m iproute-2.4.7-4k iptables-1.2.6-6k iputils-20020124-2k jed-0.99.13-22k jed-common-0.99.13-22k jfsutils-1.0.20-2k kbdconfig-1.9.15-2k kernel-2.4.18-100m kernel-BOOT-2.4.18-100m kernel-headers-2.4.18-100m kernel-pcmcia-cs-3.1.34-4k kernel-smp-2.4.18-100m kernel-utils-2.4.18-100m keychain-1.9-2k kon2-0.3.9b-16k kon2-fonts-0.3.9b-16k kondara-backgrounds-2.1-4k kondara-logos-2.0-6k kondara-release-2.1-2k kudzu-0.99.52-3k less-358-12k libcap-1.10-8k libstdc++-2.96-108k libtermcap-2.0.8-34k libuser-0.50.2-6k libxml-1.8.17-4k lilo-22.3.2-2m logrotate-3.6.4-3m losetup-2.11k-2k lv-4.49.4-4k mailcap-2.1.9-2k mailx-8.1.1-22k make-3.79.1-14k man-1.5i2-10k mingetty-0.9.4-16k mkbootdisk-1.4.3-2k mkinitrd-3.3.10-2k mkkickstart-2.1-16k mktemp-1.4-4k modutils-2.4.16-2k momonga-0.5.8-2k mount-2.11k-2k mouseconfig-4.25-2k mph-0.12.13-1m ncftp-3.1.4-1m ncurses-5.2-18k ncurses4-5.0-10k net-tools-1.60-6k netconfig-0.8.11-4k newt-0.50.35-2k nfs-utils-0.3.3-8k ntsysv-1.3.5-2k open-1.4-12k openldap-2.0.25-2m openssh-3.4-2k openssh-clients-3.4-2k openssh-server-3.4-2k openssl-0.9.6d-4k pam-0.75-33m passwd-0.67-2k pciutils-2.1.10-2k pcre-3.9-2k perl-5.6.1-22k perl-FCGI-0.65-4k popt-1.6.4-30m portmap-4.0-28k postfix-1.1.11-2k procmail-3.22-3m procps-2.0.7-18k psmisc-20.2-2k pump-0.8.11-4k pwdb-0.61.2-2k python-2.2-16k python1-1.5.2-51m quota-3.05-2k raidtools-0.90-20k readline-4.1-22k reiserfsprogs-3.x.1b-2k rmt-0.4b27-2k rootfiles-7.2-2k rpm-4.0.4-30m rpm-devel-4.0.4-30m rsh-0.17-22k ruby-1.6.7-8k ruby-gettext-package-0.2.1-3m ruby-newt-0.3.4-4k ruby-rpm-1.1.1-2k sash-3.4-12k sed-3.02-20k setserial-2.17-2k setup-2.5.12-2k setuptool-1.8-4k sh-utils-2.0.11-10k shadow-utils-20000902-6k slang-1.4.5-4k slocate-2.6-2k stat-2.5-2k sudo-1.6.6-2k sysklogd-1.4.1-10k syslinux-1.67-6k tar-1.13.25-4k tcsh-6.11.02-4k termcap-11.0.1-2k textutils-2.0.21-2k time-1.7-20k timeconfig-3.2.7-2k tmpwatch-2.8.3-2k tojimari-0.0.1-6k traceroute-1.4a12-2k usbutils-0.9-6k usermode-1.53-2k utempter-0.5.2-8k util-linux-2.11n-6k vim-common-6.1-4k vim-minimal-6.1-4k vixie-cron-3.0.1-58k which-2.13-2k wireless-tools-23-2k xfsprogs-2.0.6-1m zlib-1.1.4-2k zsh-4.0.4-12k

んで、rpm-build関係を追加。

rpm-build-4.0.4-30m perl-Compress-Zlib-1.16-2k perl-Archive-Tar-0.22-4k


Back to siroan diary. [zunda]
zunda <zunda at freeshell.org>