Vine のインストール


Vine への移行

Vine ppc のバイナリが動作するのだが、 いろいろ非互換なところが出てくる
非互換なところを一つ一つハックして Link Station Linux に合わせるより、 「ベースを Vine にしちゃえ」と、 一日試行錯誤して Vine ベースに移行した。

Vine Linux 2.6 (La Fleur de Bouard)
Kernel 2.4.17_mvl21-sandpoint on a ppc
login:
カーネルモジュールおよび Link Station 固有のコマンドのみを Link Station Linux から、
それ以外は Vine からいただいてくることで、
互換性を気にすることなく apt-get install できる状態を構築できた。

注:
Linux というと、厳密に言うとカーネルだけ
今回利用させてもらうのは、Vine Linux の rpm パッケージだけで、 Vine Linux に含まれるカーネルは使用しない
Vine Linux - Linux(Kernel) = Vine
ということで、Vine Linux と書かずに Vine と書いている

Vine 移行の基本

Link Station の HDD をいきなり Vine 化するのは怖いので、 実験用 HDD に Vine をインストールし、 実験用 HDD で動作することを確認した後、 Link Station の HDD にコピーするという手順にした。

基本的には、

  • 仮想 / ディレクトリを作成
  • カーネルモジュールのコピー
  • 基本的な rpm パッケージのインストール
  • 手作業でいろいろなファイルを作成/修正
    で起動するようになるはずだが、環境にもより、一筋縄ではいかなかった。

    実験機で実験用 HDD に仮想 / ディレクトリの作成:断念

    実験用 HDD を実験機(Intel) に接続し、 仮想 / ディレクトリ以下を作成しようとしたが、 アーキテクチャの違いからか、rpm のスクリプトがエラーを吐いた。
    断念。

    Link Station で実験用 HDD に仮想 / ディレクトリを作成:断念

    Link Station に実験用 HDD を接続して、 実験用 HDD に / を構築しようとした。
    ところが、Link Station の HDD をマスタに、 実験用 HDD をスレーブにすると、 実験用 HDD を認識しなかった。
    久しぶりに(実は初めて)見た IDE のマスタ/スレーブ相性問題。 実験 HDD があまりにも古いためであろう。 最近の HDD を実験 HDD に使用すれば、問題ないのかもしれない。
    断念

    04/1/23 追記
    WD1200AB のジャンパを、"Master W/ Slave Present" に変更すれば 問題なかったのかもしれない。
    04/1/23 追記終り

    仕方がないので、
    ・Link Station の HDD に仮想 / ディレクトリを作成
    ・Link Station の HDD の仮想 / ディレクトリを実験用 HDD にコピー
    ・実験用 HDD から起動し、起動確認
    という手順にすることにした。

    仮想 / ディレクトリ作成

    /mnt/root に、Vine の仮想 / ディレクトリを作成する
    linkstationlinux# mkdir /mnt/root
    

    仮想 / ディレクトリにカーネルモジュールをコピー

    linkstationlinux# cd /mnt/root
    linkstationlinux# (cd /; tar cf - lib/modules )| tar xvf -
    

    rpm コマンドのインストール

    昨日インストールした rpm2cpio, cpio を使用して、 Link Station Linux に rpm コマンドをインストールする
    linkstationlinux# cd /tmp
    linkstationlinux# mkdir bin
    linkstationlinux# rpm2cpio rpm-3.0.6-0vl22.ppc.rpm | cpio -i bin/rpm
    linkstationlinux# cp bin/rpm /bin
    linkstationlinux# chown root.root /bin/rpm
    linkstationlinux# chmod 755 /bin/rpm
    

    rpm DB の初期化

    /mnt/root に、Vine の仮想 / ディレクトリを作成するため、 rpm DB を初期化する
    linkstationlinux# mkdir /mnt/root/var
    linkstationlinux# mkdir /mnt/root/var/lib
    linkstationlinux# mkdir /mnt/root/var/lib/rpm
    linkstationlinux# rpm --root /mnt/root --initdb
    

    Vine 2.6 ppc のパッケージの展開

    Vine26r1-ppc.iso をいただいてきて、展開する。
    Link Station 上にマウントしようとしたら、
    linkstationlinux# mount -t iso9660 -o loop Vine26r1-ppc.iso /mnt/cd
    mount: fs type iso9660 not supported by kernel
    
    とのことで、仕方なく他のマシンにマウントし、 全部の rpm パッケージ を ftp で Link Station に持って来た。

    基本的な rpm パッケージのインストール

    order.master を参考にパッケージのリストを作成し シェルスクリプト作成して 基本的な rpm パッケージをインストールした

    手作業でいろいろなファイルを作成/修正

    ホームサーバも、実験機も Vine Linux (intel) なので、 バシバシコピーしてくる/参考に修正を行う。
    何せ、普通ならインストーラがやってくれる部分を、 全部手作業でやらないといけないので、大変

    /etc/sysconfig/network

    新規作成
    NETWORKING=yes
    HOSTNAME=ls
    GATEWAY=192.168.1.2
    

    /etc/sysconfig/network-scripts/ifcfg-eth0

    新規作成
    DEVICE=eth0
    BOOTPROTO=static
    BROADCAST=192.168.1.255
    IPADDR=192.168.1.8
    NETMASK=255.255.255.0
    NETWORK=192.168.1.0
    ONBOOT=yes
    

    /etc/inittab

    tty への getty をとめる
    diff -aru etc/inittab /etc/inittab
    --- etc/inittab 2002-08-03 21:54:58.000000000 +0900
    +++ /etc/inittab        2003-12-07 13:25:36.000000000 +0900
    @@ -45,12 +45,12 @@
    
    
     # Run gettys in standard runlevels
    -1:2345:respawn:/sbin/mingetty tty1
    -2:2345:respawn:/sbin/mingetty tty2
    -3:2345:respawn:/sbin/mingetty tty3
    -4:2345:respawn:/sbin/mingetty tty4
    -5:2345:respawn:/sbin/mingetty tty5
    -6:2345:respawn:/sbin/mingetty tty6
    +1:2345:off:/sbin/mingetty tty1
    +2:2345:off:/sbin/mingetty tty2
    +3:2345:off:/sbin/mingetty tty3
    +4:2345:off:/sbin/mingetty tty4
    +5:2345:off:/sbin/mingetty tty5
    +6:2345:off:/sbin/mingetty tty6
    
     # Run xdm in runlevel 5
     # xdm is now a separate service
    

    /etc/hosts

    家庭内の全 host を記述

    /etc/resolv.conf

    新規作成
    nameserver 192.168.1.2
    search yamasita.jp
    domain yamasita.jp
    

    /etc/passwd

    ・root にパスワードを付ける
    ・家族全員のアカウント作成

    /etc/group

    ・yamasita グループ作成

    /etc/fstab

    実験用 HDD には、/ パーティションしか作っていないので、 /dev/hda1 を / にマウントする記述のみを作成
    # /etc/fstab: static file system information.
    #
    #                        
    /dev/hda1       /               ext3    defaults,noatime,errors=remount-ro  0 1
    proc            /proc           proc    defaults                        0 0
    none            /dev/pts        devpts  gid=5,mode=20			0 0
    

    仮想 / ディレクトリを実験用 HDD にコピー

    実験用 HDD のパーティションをhda1 だけに切りなおし、 そこに仮想 / の内容をコピーした。

    実験用 HDD を Link Station に接続してコピーできないので、

  • Link Station の HDD を実験機に接続
  • Link Station 上で作成した仮想 / の内容を実験機にコピー
  • 実験 HDD を実験機に接続
  • 実験機上で仮想 / を実験 HDD コピー
  • 実験 HDD を Link Station にマスタとして接続

    実験用 HDD から起動し、起動確認

    実験用 HDD を Link Station に接続し、起動、telnet できることを確認した。

    5回ぐらいのリトライ(パッケージの追加とファイルの修正の試行錯誤)が 必要であったことは内緒
    何せコンソールがつながっていないので、原因追求に手間取る。
    /etc/rc.d/rc.local の最後に、

    ps -aux > /tmp/ps-aux
    ifconfig -a > /tmp/ifconfig-a
    
    などと書いて、それぞれの結果を確認したり、 /var/log/messages を確認したりして、 不足しているパッケージ、不足している設定を割り出す。

    上記、インストールしたパッケージ、設定は、その試行錯誤の結果である。

    実験用 HDD の内容を / ( hda1 ) にコピー

    実験用 HDD からブートすることが確認できたので、
  • 実験 HDD を実験機に接続
  • 実験 HDD の Vine を実験機にコピー
  • Link Station の HDD を実験機に接続
  • Link Station の HDD の hda1 をクリア
  • 実験 HDD で作成した Vine を Link Station の hda1 にコピー
  • Link Station の HDD を Link Station に戻す

    Link Station が正常に起動することを確認し、Vine 化完了!。

    fstab の修正

    実験用 HDD は / パーティションしか作っていなかったので、 /dev/hda1 だけの記述であったが、Linuk Station の HDD には
    /dev/hda2: swap
    /dev/hda3: 共有用。/mnt にマウント
    のパーティションもあるので、その記述を追加
    # /etc/fstab: static file system information.
    #
    #                        
    /dev/hda1       /               ext3    defaults,noatime,errors=remount-ro  0 1
    proc            /proc           proc    defaults                        0 0
    none            /dev/pts        devpts  gid=5,mode=20                   0 0
    /dev/hda2       swap            swap    defaults                        0 0
    /dev/hda3       /mnt           ext3    defaults,noatime                0 2
    

    DIAG LED が6回点滅

    起動して数分すると、突然 DIAG LED が6回点滅を繰り返して落ちた。
    何度再起動しても同じ。 Link Station のマニュアルによると、ハードディスク異常とのこと。
    標準状態では、ppc_uartd といういかにもそれらしいデーモンが動作していた ことを思い出し、Link Station Linux から
    /usr/sbin/ppc_uartd
    /etc/rc.d/*/*ppc_uartd
    /sbin/start-stop-daemon
    
    を持ってきて、動作させた。
    結果、ハードディスク異常で落ちることもなくなった。

    /var/log/messages に

    Dec  8 02:25:26 ls uart daemon[560]: Timer is released. (because timer file isn't able to be read)
    
    という log が残った
    linkstationVine# strings /usr/sbin/ppc_uartd
    
    してみると、
    /etc/melco/timer_sleep
    
    が見えたので、 Link Station Linux から /etc/melco/timer_sleep を持ってきた。
    Sleep も ppc_uartd の担当のようである

    課題

  • 電源ボタンを長押ししても電源が切れない
  • shutdown -h now しても電源が切れない
  • HDD の回転が止まらない
     BUFFALO Link Station をハックしよう  → Vine へいろいろなパッケージのインストール
    Copyright (C) 2003 Yasunari Yamashita. All Rights Reserved.
    yasunari @ yamasita.jp
    山下康成京都府向日市