Debianの公式サイトの記述のとおりにインストールできたGNU Linux Debian PPC Sarge。問題なく使えていたように見えても、こまごまと不満がでる。まず、リモート接続しているサーバ上のファイル(もちろん自分が所有者だ)の上書き保存ができない。ファイル移動での上書きができるのに、直接エディタなどで編集して保存んすることができないのだ。これはネットワーク作業に特化されているユニックス系のOSとは思えない使い勝手の悪さだ。
それから、ウエブブラウザのバージョンが古い。まあ、MacOS9で使ってるのより新しいとは言え、この先アップデートもできないから不安だ。これでは、クラシックMACを使うのとほとんど変わらない、と言うより、アップグレードする甲斐がない。
てなあたりが主な理由で、一旦はあきらめたDebian PPC 4.0r3 (開発コードetch)のインストールに再チャレンジすることにした。考えてみれば、インストールできるのに起動できないというのは、おかしな話だ… だって、インストールするために使うカーネルと、インストールしたシステムのカーネルは同じものだ。起動できないほうが不自然じゃないか。おそらく、再起動後のブートプロセスになにか問題が潜んでいるに違いない。
PowerMac7500というOldWorldのマシンは、オープンファームウエアにアクセスできないため、ブートローダが使えない。MacOSのインストールCDならばCD起動できるのに、LinuxのインストールCDでは起動できない。おまけにOldWorld用と書いてある起動フロッピーでもなぜか起動しない。Linuxの起動にはBootXというマックのアプリケーションが絶対に必要。つまり、Linuxを立ち上げるにもMacOSが必要なのだ。しかも、BootXにはLinuxのカーネルと起動ラムディスクが必須となる。
実験1 起動用カーネルの交換
※ここからはMacOS上での作業です
まず、通常通りのネットインストールでDebianの最小限のシステムを作る。Debianの公式ミラーでinstaller_powerpcってなディレクトリをたどって、images/netbootってとこにはいってるvmlinuxとinitrd.gzってのを落としてくる。それをシステムフォルダのLinux Kernelsフォルダに置いて再起動。Debianのネットインストーラが起動。ネットワークの状況にもよるが、30およそ分程度で終了。インストーラが最後に表示するrootデバイス( /dev/hdXXとか/dev/sdXX っての)を覚えておいて、この起動ポイントのデバイスをBootXで指定すれば、そのシステムは動くはず。(少なくともSargeではこれで起動した)
だが、これがetchでは出来ない。
もしかしたら、インストールされたカーネルと、インストーラのカーネルのバージョンが違うのでは、と勝手に仮定。インストールに使ったカーネルではなく、VINE LinuxPPC用の最新版インストーラに入っているカーネルで代用してみた。VINEは、Linuxでppc版を用意してくれている、珍しいベンダーのひとつで、サポート付きの有料版と、サポート無しの無料版があって、無料版はネットで自由にダウンロードして試すことができるようになっている。あ、なぜVineかと言えば、もともとDebianを基本にしてるらしいので、使えるかも! と考えたからだ。
BootXに設定するデバイスはDebianのインストーラが指示した通りのまま、カーネルだけをVine 4.2用のインストーラのものを選び直して起動してみる。あまり期待はしていなかったが、意外なことに、コンソールの左上に表示されるペンギンさんが、Vine Linuxのロゴマークに変わっただけで、すんなり起動。そのままDebianのインストーラで設定したログインパスワードでログインできた。
あまりに呆気無かったので、いっそこの設定で使っちゃおーかなぁ… ところが…
$ dhclient
とやって、IPアドレスの設定をして、
# aptitude update
# aptitude dist-update
で、表示された最新カーネルをダウンロードしはじめたところで固まった。しばらくすると、エラーメッセージを大量に吐いた。何度くりかえしても同じ結果に終る。
しかし、インストールされたシステムが壊れているってわけじゃないことは推測できる。おそらくカーネルのミスマッチさえなければ、必ず使えるはず!
一旦Macに戻って、今度は、sargeのカーネル(ひとつ古いバージョン2.4のカーネル)で、etchのシステムの起動をしてみた。
これも、すんなり起動する。今度はペンギンマークのまま。さっきより正常っぽいが、まてよ… よく見ると、コンソールに吐き出される文字列にエラー、エラー。なかにはFatal(致命的)ってのが読みとれる。設定ファイルやライブラリなどの場所が大幅に変わっているために、カーネルが認識できないようだ。
それでも、どうにかログインまでたどり着くし、スーパーユーザにもなれるものの、こんどはネットワークの設定すらできない。
$ dhclient
とやっても、「できませんでした」と、つれない返事…
これではアップデートも、アップグレードも無理。尻尾をまいてMacに戻る。
VINE Linux
一晩熟考の末、Vineの起動カーネルで起動できるんだから、「いっそ、Vineの最新版をインストールすりゃいいじゃん!」 と、安易なほうへ流されていく私…
さっそく、VineのFTPミラーから、インストール用のカーネル(再起動の実験に使ったやつ)とラムディスク(これはDebianのと違ってramdisk.img.gzってファイルだ)をダウンロードして、インストーラをブートしてみた。
当然、すんなりインストーラが立ち上がると思いきや、途中で止まる。え?!
running /sbin/loader
のところで必ず固まる。何度やっても固まる! 繰り返し固まる!!
そう言えば、BootXにそえてあったテキストに、ラムディスクはHFSボリュームの第一階層に置け。と、あったっけ…
もしかしたら、拡張フォーマット(HFS+)のディスクで起動したのがまずかったのかなぁ…
わたしのPM75。2つの内蔵HDDはいずれもHFS+でフォーマットなのです…
仕方が無い。バックアップディスクを全部フォーマットしなおして、もいっかいインストールし直しだ!
MacOS9のCDで起動して、インストール先のSCSI内蔵ドライブをフォーマット。パーティションを2つに切って、小さいパーティションに起動用MacOS、大きい方にLinuxを入れる。もちろん、フォーマットは「マックOS標準」だ!
中略
まっさらなディスクにMacOS9をインストール。5分程度で完了。システムフォルダにBootXの機能拡張とコントロールパネルを放りこみ(※)そして、Vine PPC 用のカーネル(vmlinux)をシステムフォルダに、ラムディスク(ramdisk.image.gz)をディスクの第1階層に置いて、さらにBootXの設定ファイル(初期設定)を初期設定フォルダに入れて準備完了。
(※わたしの場合、あらかじめインストール対象のディスクとは別の起動ディスク上に準備しておいたが、起動ディスクのみでインストールする場合は、外付けディスクを使うか、インストール後に一度Macで再起動して、あらかじめ準備しておいたCDRなどから入れ直す。)
再起動
あらためてVineのインストーラを使う。公式ミラーなどを探し、Vine-41/ppc/misc/のディレクトリ以下のファイルすべてをダウンロード。(4.2の場合はisoイメージがあるだけだが、この中からカーネルとラムディスクをとり出すスキルのある人なら、こちらでもOK)適宜解凍して、インストール。BootXのダイアログでカーネル(Vine41_default)を選び「Options」からラムディスク(ramdisk.image.gz)を指定。「Linux」ボタンをクリック。Vineのインストーラを立ち上げ…
だめだ…
running /sbin/loder
でやっぱり止まった。
時間の無駄か… ま、こんなときは、基本にたちかえって、パラパラとVineの公式FAQを探す。インストーラが途中で止まる場合… あった、あった… ブートローダのアーギュメントに、
apm=off nolapic noacpi ide=nodma nousb
などを試せとある。よし! と、書かれてる全部を入れてブート。
「おおっ! キタっ!」
パッとDebianのと違うインストーラ画面が表示された。Debian同様、言語、キーボードなどを選択すると、インストール方法を選ぶ画面がでる。もちろんFTP、またはHTTPだ。ところが、続くダイアログがわけがわからん…
ネットワークドライバを選べと来た。 は? このマックのethernetはオンボードだから、ドライバも糞も無いぞ! 何十個もある選択肢にマックのオンボード用らしき表記は皆無。ちなみにdebianでは(mace)と認識される。ヤケクソで、試しに上から順番に選択して、設定しようとしても、「そんなカードは見つかんねぇ!」と全て突き返される始末だ。
ドライバを選択しないと、当然次へ進めない。 撃沈…
とほほ… オールドマックへのインストールは想定していないのね… CDイメージをまるごとダウンロードすれば、インストールの方法もあるかもしれないが、面倒なので断念。やっぱ、LinuxはDebianに限るなっ…
さ、五転び五起き目。
Vineをインストールしようとして気づいた。root arguments ってので、カーネルに指示を出してるんだよな。例えば、アップグレードCPUのキャッシュドライバが読み込まれる前に起動しないように、ブートを遅らせる方法が、rootdelay=20(←秒数) ってな風に使えたりする。これをいじれば、なんとかごまかしが効くかもしれない。
Vineインストーラを止めたオプションを入れて試す。
apm=off nolapic noacpi ide=nodma nousb
だめだ。それぞれ組み合わせを入れ換えて何度か再起動したが、全滅…
そう言えば、Vineのインストーラに付属のBootXの初期設定では、はじめからroot=/dev/ram0とラムディスクからの起動を指示されている。 え?
ラムディスクはBootXの「Options」ボタンで開いたダイアログで選ぶんじゃないの???
いや、まてよ… ラムディスクで起動していることをカーネルに伝えるために、あえて明示してるのだな! (勝手に解釈)
ここでインストーラのカーネルにHDDからの起動するよう指示をだせばいいんじゃ?
BootXにのOptionsボタンを押して、開いたダイアログから、ラムディスクは選んでおいて、さらにroot argumentのフィールドに、
root=/dev/sdXX
と明示しておいたらどうだろう。
おお! 起動した。けど、ダメだこりゃ、インストーラが立ち上がっただけか…
う~ん…
寝る。ZZZZ....
一晩寝たらひらめいた!
インストーラが入ってないカーネルとラムディスクで、BootXを起動してみたらどーなるんだろうか…
しかし、公式ミラーで落とせるのは、全部インストーラだ。なんとか普通のカーネルを… あ。
インストールしたetchのシステムからとってくればいいじゃないか! さっそくVineのカーネルを使って、実験1で試したように、etchのシステムにログインした。で、カーネルのあるディレクトリは…
$ cd /boot
$ ls -al
で、ディレクトリをリスト表示にして見ると、なるほど…
vmlinux-2.6.18~てのが、カーネルだ。で、initrd.img-2.6.18~てのが、ラムディスクか。
それぞれ4・4メガと5・3メガバイトか… とてもフロッピーじゃ持ち出せないな。う~ん…
FTPでいったんアップロードしておいて、あとでマックでダウンロード。あ、これも途中で止まる…
アップルトークのサーバに接続する方法はわからないし…
そうだ! このシステムを起動するために残したMacボリューム(HFSに再フォーマットしたのが幸い♪)を直接マウントして、そこにコピーアウトできないか?
$ su
# mount -t hfs /dev/sdXX(マックの入ってるHFSパーティション) /mnt(マウントポイント)
とマウントしたら、
# ls -al /mnt
結果は大成功。文字化けは甚だしいが、いちおうマックのボリュームが見えた。
さっそくカーネルとラムディスクをコピー
# cp /boot/vmlinux-2.6.18* /mnt/vmlinux
# cp /boot/initrd-2.6.18* /mnt/initrd.gz
ギコギコギコとうまくいったらしい。
# reboot
で、マックへ戻る。
やっとのことで起動する新システム
マックでBootX用のLinux Kernelsフォルダへ、ノッペラボーアイコン状態のvmlinuxを、initrd.gzはボリュームの第一階層にセット。再起動して、BootXからそのカーネルとラムディスクを選択。root argumentsに
root=/dev/sdXX(etchをインストールしたパーティション)
で、Linuxボタンクリック!
やった! 大成功。
すんなりエラーもなく、ログイン部分までたどり着いた。ふうぅ~っ…
ログインしてとりあえず
# dhclient
でIPを取得。
# aptitude update
# aptitude dist-upgrade
などと試してもエラーはない。か・ん・ぺ・き。