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

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の飼育

momongaのCD-ROMを配布しようという気になってきた。まずはパッケージを更新 しておこう。

CVSからのアップデート

時間がかかるし、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に。おっけー。

CDイメージの作成

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

momongaでインストール

まずは起動と様子見

  1. 作ったCD-ROMから起動、boot:で<enter>、
  2. 言語の選択 English、キーボード us
  3. bashが起動される

    Running momonga - please wait...
    url = cdrom://hdc/mnt/source
  4. 状況の確認。この状態で、

    bash-2.05# df

    すると、/dev/rootが/に、/tmp/cdromが/mnt/sourceにマウントされているこ とがわかる。また、

    bash-2.05# lsmod

    で、3x59xがロードされていることがわかる。

  5. ネットワークを上げる

    ifconfig eth0 up netmask 255.255.255.0 broadcast xxx.xxx.xxx.255\
     address xxx.xxx.xxx.xxx

    これで同じサブネットからはpingが通る。

  6. どんなコマンドがあるか。 /usr/bin にあるのは、busybox bash chattr collage syslinuc tac uniq。 busyboxがいろいろなコマンドへの sym link になっている。ftpしようとし たが、パスワードの入力をうけつけてくれない。anonymnous ftpサーバー専 用なのかな? /usr/sbin には実体のあるコマンドが一杯。
  7. これじゃしょうがないので、ネットワークは下げとこう。

    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 <zunda at freeshell.org>