Alpha マシンに Debian をインストール

注意事項
目次

作業日誌

(2001年)
1月31日

初めて Alpha に Debian のインストールを試みた。 慣れない機械だけに、分からないことだらけで非常に苦労する。 インストールガイドで使われている単語の中にも、知らない専門語が出てくるくらいだから…。

後述する様々な問題のため、初日は無惨にも敗退。

2月1日

午前中一杯かかって、ようやくインストールに成功した。 こんなに時間がかかったのは、初めて Debian をインストールしたとき以来だろう。 具体的な手順は以下の通り。

  1. 起動用のフロッピーを作成
    wget ftp://dennou-k.gaia.h.kyoto-u.ac.jp/library/Linux/debian/dists/potato/main/disks-alpha/2.2.20-2000-12-03/images-1.44/rescue.bin
    wget ftp://dennou-k.gaia.h.kyoto-u.ac.jp/libraru/Linux/debian/dists/potato/main/disks-alpha/2.2.20-2000-12-03/images-1.44/root.bin
    sudo /etc/init.d/volmgt stop
    sudo dd if=rescue.bin of=/dev/fd0 bs=512 conv=sync
    sudo dd if=root.bin of=/dev/fd0 bs=512 conv=sync
    
  2. 電源を投入して SRM のコンソールに入り、デバイスが正常に認識されていることを確認する。
    P00> show dev
    
  3. フロッピーからインストーラを起動する。
    P00> boot dva0 -file linux.gz -flags "root=/dev/fd0 load_ramdisk=1"
    
    引数の意味は次の通り。
    dva0
    Alpha BIOS 上でのフロッピーのデバイス名
    -file linux.gz
    kernel のファイル名。指定しないと、vmlinux.gz を探しに行き、起動に失敗する。
    -flags "root=/dev/fd0 load_ramdisk=1"
    boot loader に引き渡される引数。最初の root= オプションを指定しないと、/dev/sda0 を使って起動しようとするため、やはり起動に失敗する。 後の load_ramdisk=1 を指定しないと、 kernel panic が発生して起動に失敗する。
  4. dbootstrap によるシステムの初期設定を行う。注意点は以下の通り。
    Partition a Hard Disk

    i386 とは異なり、BSD ディスクラベル形式を使う。 また、aboot はディスクの最初の数セクタに書き込まれるため、 ディスクの先頭部分に十分な空きスペースを残しておかなければならない。 とりあえず、以下のようにしてみた。

    a:4423swap
    b:4248972ext2
    c:117522unused
    h:897317522ext2
    Install Operating System Kernel and Modules

    現時点(2001年2月1日)に配布されている drivers disk set は、インストーラの予期しないバージョン不整合があり、 フロッピー経由でインストールすることが出来ない。 実際には、次のようなエラーメッセージが出力される。

    This is disk 1 of 2 in the drv14alpha_generic series of
    25-Nov-2000 20:04 EST.
    Wrong disk.  This is from series drv14alpha_generic.
    You need disk 1 of series the driver series.
    

    この問題は、debian-alpha ML でも報告 されているのだが、解決されていない。

    そこで、以下の手順に従い、ネットワーク経由でインストールを行う。

    1. drivers.tgz を入手して展開する。
      wget ftp://dennou-k.gaia.h.kyoto-u.ac.jp/library/Linux/debian/dists/potato/main/disks-alpha/current/drivers.tgz
      tar xzf drivers.tgz
      tar xzf modules.tgz
      
    2. 必要な ethernet card のドライバ(例えば、tulip.o など)を tar で固めてフロッピーに書き込み、インストールを行うマシンに持って行く。
      cd lib/modules/2.2.18pre21/
      tar czf ethers.tgz net/
      sudo dd if=ethers.tgz of=/dev/fd0 bs=512
      
    3. 別の仮想コンソールに移動して、フロッピーから必要なドライバを取り出し、 ネットワークを設定する。
      cd /target/tmp
      dd if=/dev/fd0 of=ethers.tgz bs=512
      zcat ethers.tgz | tar -x
      insmod net/tulip.o
      ifconfig eth0 XXX.XXX.XXX.XXX netmask YYY.YYY.YYY.YYY
      route add -net default gw ZZZ.ZZZ.ZZZ.ZZZ eth0
      
    4. インストーラの実行されている仮想コンソールに戻り、 実際に、"Install Operating System Kernel and Modules" を実行する。 すると、インストール方法の一覧に network が出現する。
    5. 必要なファイルを入手する server の問い合わせに対しては、 DNS が利用できない状況であることを考慮して、IP address を直接指定する。 今回は 130.54.59.159 を指定した。
    6. インストールが終了したら、 その後のインストールに差し支えないよう、ネットワークの設定を解除しておく。
      ifconfig eth0 down
      rmmod tulip.o
      
      この操作をしておかないと、次のステップ "Configure Device Driver Modules" で、インストーラのバグにより無限ループに陥る。
    Configure Device Driver Modules

    ここで tulip.o を組み込もうとしても、何故か失敗するので、 このステップが終了してから tulip.o を手動で組み込むことによって回避する。

    Install the Base System

    ネットワーク経由でインストールしようとしたが、 前段階 "Configure the Network" で適切な DNS を設定しているにも関わらず、 ホスト名の解決に失敗した。 これも IP address を直接指定することによって回避する。

更に、再起動時に SRM のコンソールに入って、以下の設定をしておく。

P00> set bootdef_dev dkc0
P00> set boot_osflags "root=/dev/sda2"
P00> set boot_file vmlinuz

この設定をしておくと、単に boot コマンドを実行するだけで起動できるようになる。

FAQ に記述されている「日付が 20 年ずれる」問題が発生。 RedHat 用の対策は記述されているが、Debian についてはどうなるのか、 と調査してみたところ、その設定をする項目がない…。 仕方がないので、/etc/init.d/hwclock.shパッチをあてて対策した。

2月2日

emcws パッチを適用した Emacs20 パッケージを作成したところ、segmentation fault で落ちてしまう。原因は良く分からないが、最適化レベルを -O2 に下げると、落ちなくなった。

三菱製 UPS の導入を検討。

2月7日

RAID の設定について研究。 Software-RAID HOWTO の記述とは異なるが、 最新 kernel 用の RAID パッチは ftp.kernel.org ではなく、people.redhat.com にあるようだ。

2月8日

RAID の設定についての検討の続き。 これまでまったく情報を集めていなかった分野について設定することになると、 こんなに苦労するとは思わなかった。 成程、コンサルタント会社がはやるわけだよ。

結局、パッチとしては Andrea さんが保守されている aa patch を使用した。このパッチは、RAID の他にも幾つかのパッチが統合されている。 このパッチを使って、通常の kernel 再構築を行った(指定したオプション)。 これで、ようやく RAID が使えるようになったので、 bonnie を使ってベンチマークを取ってみた。

2月9日

昨日作成した RAID は 200GB と極端に大きいので、ext2 での利用は無理があるかなあ、 と思って、最近流行の RaiserFS についての調査を開始した。 必要な tool と kernel の構築には成功した(これも散々苦労したが)ものの、 mount できない。なんでだ。

2月10日

stable な環境で unstable なパッケージを利用するための支援スクリプトを書いた。

2月21日

最近の学会発表論文の大半は PDF 形式で入手できる。 そうすると、それらを検索するツールが欲しくなる。 というわけで、PDF をテキスト形式に変換するツールを求めているのだが、 まともなものがないんですね…。 xpdf に付属している pdftotext だと、正常に変換してくれる PDF の方が少ない感じだし。 量が少なければ、ファイルを添付して pdf2txt@adobe.com に送るという手段もあるのだけれど。

この問題に関連して、最近の ghostscript 日本語化事情の調査に着手するも、 なかなか様子がつかめない。とりあえず分かったことは、以下の通り。

2月22日

研究室の router + DNS server + DHCP server を担当しているマシンが故障したらしい。 そのため、研究室内部のマシンから ssh でログインするのに非常に時間がかかるようになった。 ネットワーク的には届いているのだが、sshd が名前解決のために DNS を検索しようとしてタイムアウトを待っているようだ。 このような場合にも robust なシステムにするには、 NIS で管理されている研究室内部のホスト情報を /etc/hosts に書いておくべきなのだろう。


用語集

SRM

Alpha BIOS を操作するために M/B に組み込まれている環境。 P00> は、そのプロンプト。


リンク集


[Top] / [Debian Tips] / [Alpha Install Log]