2002.7.15.
その2に続きます。
先日Windowsのパーティションで駄目になったクラスタが出て、Windowsの再イン ストールをしたのでこれまであったHEAD環境がブートできなくなった。もう一度 インストールからやりなおして今度はGCC3に行ってしまおう。
今日の教訓
grubのフロッピーで起動。
grub> root (hd1,6) grub> kernel /vmlinuz-2.4.18-84k root=/dev/hdb8 grub> initrd /initrd-2.4.18-84k.img grub> boot
一度目は、EXT2-fs:unable to read superblockとな。がーん。二度目はうまく いった。どうしてだろう?
# sfdisk -l
して今のパーティションテーブルを確認する。
Device Boot Start End #cyls #blocks Id System /dev/hda1 * 0+ 391 392- 3148708+ b Win95 FAT32 /dev/hda2 392 1305 914 7341705 f Win95 Ext'd (LBA) /dev/hda3 1306 2490 1185 9518512+ 83 Linux /dev/hda4 0 - 0 0 0 Empty /dev/hda5 392+ 1305 914- 7341673+ b Win95 FAT32 Device Boot Start End #cyls #blocks Id System /dev/hdb1 0+ 913 914- 7341673+ b Win95 FAT32 /dev/hdb2 914 2490 1577 12667252+ 5 Extended /dev/hdb3 0 - 0 0 0 Empty /dev/hdb4 0 - 0 0 0 Empty /dev/hdb5 914+ 1827 914- 7341673+ 7 HPFS/NTFS /dev/hdb6 1828+ 1860 33- 265041 82 Linux swap /dev/hdb7 1861+ 1861 1- 8001 83 Linux /dev/hdb8 1862+ 2490 629- 5052411 83 Linux
C/H/Sはあいかわらずおかしいようだが気にしないでおこう。これまでは、
だったので、今度も同じようにしよう。本当は少し足りないのだが、今度は GCC3修行ということで、できるパッケージも少ないだろう(ほんとか?)
そのうち、もう使わないWindows2000が入っているhdb5にmomongaでインストー ルを試せることを期待。
/etcを/homeにコピーしておこう。弱気だ。
cp -R /etc/ ~siroan/
momongaのCD-ROMを配布しようという気になってきた。まずはパッケージを更新 しておこう。
時間がかかるし、momongaに入るパッケージだけにしておく。HEAD環境をgrubで 起動して、
cd ~ mkdir Momonga cd Momonga export CVS_RSH=ssh cvs -d :ext:zunda@cvs.momonga-linux.org:/home/cvs checkout tools cvs -d :ext:zunda@cvs.momonga-linux.org:/home/cvs checkout pkgs/rpmrc for pkg in momonga `cat /usr/share/doc/momonga-0.5.8/packages* | sort -u`; do dir=`LANG=C rpm -qi $pkg | ruby -n -e \ 'puts $1 if $_ =~ /.*Source RPM:\s*(.*?)-\d[^-]*-\d[^-]*/'` if [ -d pkgs/$dir/CVS ]; then cvs -d :ext:zunda@cvs.momonga-linux.org:/home/cvs update pkgs/$dir else cvs -d :ext:zunda@cvs.momonga-linux.org:/home/cvs checkout pkgs/$dir fi done
なんかcheckoutにえらく時間がかかってるなぁ。Moからcheckoutできない Kondara-release類は今は放置しとけばいいや。そのうち直してcommitしないと ね。
rpmvercmpのビルド
cd ~/Momonga/tools make
設定ファイル
cd ~/Momonga/pkgs nkf -e ../tools/example.OmoiKondara >| .OmoiKondara
以下で、HEAD修行をやめてから今まで更新されたパッケージだけが作られるハズ である。
touch ~/timestamp : Jul 11, 21:56 cd ~/Momonga/pkgs ../tools/OmoiKondara
一晩置いた。ソースが取れずにできなかったものが、
touch ~timestampしてもう一度momonga用オモコンしてインストールイメージに 入るパッケージを新しくする。(たぶん7月13日にcvs updateもやったんだったと思う。)できたパッケージをインストール。いろいろエ ラーも出てるけどなぁ…。カーネルも更新して、/etc/lilo.confも更新。む。つ いでにliloもしちゃおう。これでgrubが不要になる。
ls ~/PKGS/i586/kernel-* | grep -Ev 'pcmcia-cs|common' | grep -E 'doc|utils' |\ xargs sudo rpm -Uvh ls ~/PKGS/i586/kernel-* | grep -Ev 'pcmcia-cs|common' |\ grep -Ev 'doc|utils|smp' | xargs sudo rpm -ivh
/etc/lilo.confを編集し、lilo、リブート。だめじゃん。winに行ったよ?そり ゃそうだ。/dev/hdb7に入れてるんだもん。/dev/hdaに。おっけー。
momongaのREADMEに従ってインストーラのツリーを作ってもらう。
mkdir ~/momonga-install sudo /usr/lib/momonga/buildtree ~zunda/momonga-install ~zunda/PKGS sudo /usr/lib/momonga/buildinstall ~zunda/momonga-install
それをisoイメージに。
TZ=UTC sudo mkhybrid -r -J -V "momonga_020713" -b images/boot.img \ -c images/boot.cat -o ~zunda/momonga_020713.iso ~zunda/momonga-install cd ~zunda; md5sum momonga_020713.iso 254e5ac8538419b8cf9ea3eff3f3dab2 momonga_020713.iso
bashが起動される
Running momonga - please wait... url = cdrom://hdc/mnt/source
状況の確認。この状態で、
bash-2.05# df
すると、/dev/rootが/に、/tmp/cdromが/mnt/sourceにマウントされているこ とがわかる。また、
bash-2.05# lsmod
で、3x59xがロードされていることがわかる。
ネットワークを上げる
ifconfig eth0 up netmask 255.255.255.0 broadcast xxx.xxx.xxx.255\ address xxx.xxx.xxx.xxx
これで同じサブネットからはpingが通る。
これじゃしょうがないので、ネットワークは下げとこう。
ifconfig eth0 down
とりあえず、Windows2000のパーティションhdb5を潰してそこに入れようか。ま ずはデバイスファイルを作る。
mknod /dev/hdb b 3 64 mknod /dev/hdb1 b 3 65 mknod /dev/hdb2 b 3 66 mknod /dev/hdb3 b 3 67 mknod /dev/hdb4 b 3 68 mknod /dev/hdb5 b 3 69 mknod /dev/hdb6 b 3 70 mknod /dev/hdb7 b 3 71 mknod /dev/hdb8 b 3 72
7月18日追記:上記の b 数字 数字 は書かない方がいいようです。 ただ、mknod /dev/hdb とか mknod /dev/hdb6 とかでよろし。
パーティションテーブルの編集。ドキドキしてきましたよ?
fdisk /dev/hdb t;5;83 # パーティションIDをext2に w # パーティションテーブルを書き込んで終了
7月19日追記:ハードディスクにswap領域を確保していない人は、 たぶん、swapも作る必要がありますね。 今日のもりもりより。
ファイルシステムの作成、同時期にインストールしたもう一つのドライブに最近 バッドクラスタができたので、この機会にこちらもスキャンしておく。 *1
badblocks -w -s -o /tmp/badclocks.list /dev/hdb5 mke2fs /dev/hdb5
できたファイルシステムのマウント
mkdir /mnt/root mount /dev/hdb5 /mnt/root
むふ。本当は、/bootもどこかに作ってマウントしとかないといけないんだ。
まずはrpmのデータベースを初期化する
mkdir -p /mnt/root/var/lib/rpm rpm --root /mnt/root --initdb
パッケージのインストール、全部入れちゃっていいんだよねえ
cd /mnt/source/Kondara/PKGS/ rpm --root /mnt/root -ivh */*.rpm error: failed dependencies: libuser.so.1 is needed by passwd-0.67-2k libuser.so.1 is needed by usermode-1.53-2k
ありー。無いよん?
libuser.so.1が何に入ってるか探す
mkdir /mnt/tmp mount /dev/hdb8 /mnt/tmp rpm --root /mnt/tmp -q --whatprovides libuser.so.1 umount /mnt/tmp
libuser-0.50.2-6k だそうだ。たぶん、/dev/hda3に/homeがあって、そこに入っ てるはずだ。
mknod /dev/hda3 b 3 3 mount /dev/hda3 /mnt/tmp
/mnt/tmp/zunda/PKGS/i586/libuser-0.50.2-6k.i586.rpm がそれ。
cd /mnt/source/Kondara/PKGS/ rpm --root /mnt/root -ivh */*.rpm \ /mnt/tmp/zunda/PKGS/i586/libuser-0.50.2-6k.i586.rpm umount /mnt/tmp
今度は進んでいきます。MAKEDEVはchrootできないみたいでエラーが出てたなぁ。
ネットワークの設定はやっときたいよね。と思ったら雛型が無いし、fstabも無 いよ?考えてみたら、/bootは一つしか無いし…。
今日はここまででいいや。明日の課題は、/bootを別パーティションに用意して おくことだ。
…shutdownとかhaltとかrebootとかが無いっす。リセットボタンぷちしたけれど、 hdb*をunmountするのを忘れてたような。
*1はっ。この-wオプションって手軽なHDデータ消去法かも。
その2に続きます。
Back to siroan diary. zunda <zunda at freeshell.org>