わたしも、チャレンジはした。しかし、結論としては止めたほうがいい。結局、Macパーティションを捨てさることはOldWorld機では難しい。(理由は追々…)
一応、チャレンジの手引きだけ…
MacのOpenFirmwareから、Linuxボリュームにインストールしたquikブートローダを立ち上げて、Macにたよらずリアルなカーネルを起動するのが目標。それには、まず、インストールの時点から、制約がでてくる。
と、かなりマニアックな作業が待っている…
まずは、Linuxをインストールする時点で上記のようなパーティションを切っておかなければ、これ以降の作業をいくらいじっても起動しない。(わたしは延々、これで時間を無駄にした…)
というわけで、「どうしても!!!」というかただけ、正しくLinuxをインストールした上で、以下はお読みください。
しかも、以下の作業はMacOSを動かさないとできないので、あしからず。(ほら、結局Macは捨てられないのだ…)起動フロッピーに強引にスペースつくって、これらのユーティリティを乗せて作業をすることも考えられるが…(けど、それつくるにも、もう一台Macが必要だ…)
正常にOpenFirmwareのコマンド入力画面が表示されるラッキーなマシンなら以下は省略できるが、まず、それはないと仮定して…
Appleの"SystemDisk"ってな、ファームウエア書き換えユーティリティーで、バギーなOpenFirmwareにパッチを当てる。ただ、当てなくてもいい機種もある。(対象機種はpenginppc.orgを参照のこと)
で、まともになったファームウエアにブートパラメータを渡す。機種によって使えるユーティリティが違うので、ご注意。私のPowerMac7500は、BootVarというコンパネ型ユーティリティしか使えない。しかも、パラメータを渡すデバイスがまったく分からない。そこで、OpenFirmware自身にデバイス名を答えてもらう方法をためす。
それには、もう1台Macがいる。(まただ…)シリアルポートのついた古いモデルでなければならない。それから、zmodemプロトコル(良く分からないが…)を扱えるターミナルエミュレータを準備。私の場合はInfo-macから68Kで使えるTerminal-2.2(英語版)ってのを拝借してきた。
OFにパッチを当てたパワーMacのモデムポート(出力側)と、シリアル端子のついたMacのモデム(プリンタでもいいが)ポートをプリンタケーブルで接続。ターミナルを立ち上げて受信状態にしておく。"Terminal-22"の設定は、受話器の絵のアイコンをダブルクリックしてアプリケーションを起動したら、OptionsメニューのComminucationノメニューを開いて…
これで、おわり。
OFをいじる側のパワーMacをCommand+Option+o+fを押しながら起動。こっちの画面は真っ暗だが、ケーブルでつないだマシンのTerminal-22のコンソールに以下のような表示が出た。成功。
Open Firmware, 1.0.5 To continue booting the MacOS type: BYE To continue booting from the default boot device type: BOOT ok 0 >
コマンドを待ち受け状態なので、以下のコマンドをターミナル側で打ち込む。
dev / ls
ちょっと文字と文字の間に分けの分からん文字が勝手に入るが、無視して、Returnキー!
すると、パワーMacで使えるデバイスの一覧が、ズラーッ…
FF828F80: /PowerPC,60?@0 FF829878: /chosen@0 FF8299A8: /memory@0 FF829AF0: /openprom@0 FF829BB0: /AAPL,ROM@FFC00000 FF829DC8: /options@0 FF82A488: /aliases@0 FF82A6C8: /packages@0 FF82A750: /deblocker@0,0 FF82AF50: /disk-label@0,0 FF82B490: /obp-tftp@0,0 FF82D8D0: /mac-files@0,0 FF82E0C8: /mac-parts@0,0 FF82E828: /aix-boot@0,0 FF82ECA0: /fat-files@0,0 FF830270: /iso-9660-files@0,0 FF830BB8: /xcoff-loader@0,0 FF831578: /terminal-emulator@0,0 FF831610: /bandit@F2000000 FF832800: /gc@10 FF832C38: /53c94@10000 FF8344C0: /sd@0,0 FF8350F0: /st@0,0 FF835D68: /mace@11000 FF836BE0: /escc@13000 FF836D38: /ch-a@13020 FF8373E8: /ch-b@13000 FF837A98: /awacs@14000 FF837B80: /swim3@15000 FF838C88: /via-cuda@16000 FF839818: /adb@0,0 FF839908: /keyboard@0,0 FF83A058: /mouse@1,0 FF83A108: /pram@0,0 FF83A1B8: /rtc@0,0 FF83A680: /power-mgt@0,0 FF83A7A0: /mesh@18000 FF83C308: /sd@0,0 FF83CF38: /st@0,0 FF83DC40: /nvram@1D000 FF83F518: /pci106b,1@B FF83F6F0: /ATY,Rage128y@D FF855368: /pci-bridge@F FF855FD0: /pci14db,35@8 FF856240: /pci14db,35@8,1 FF8564B0: /pci14db,e0@8,2 FF856720: /pci1514,3044@9 FF83DD78: /chaos@F0000000 FF856C30: /control@B FF857FE8: /planb@D FF83ED08: /hammerhead@F8000000 ok 0 >
デバイス名の行の頭がガタガタしているのはエラーではなく、ツリー表示のイメージだ。たとえば、SCSIデバイスの場合…
/bandit@F200000 /gc@10 : (中略) : /mesh@18000 /sd@0,0
ってな感じになっているのが、読み取れるが… これは、
/bandit@F200000/gc@10/mesh@18000/sd@0,0
と複数のデバイスが上のような依存関係で接続されているという意味。
そうそう、不明だったビデオデバイスは…
/chaos@F0000000/control@B
ってのが、オンボードビデオ。私のモニターはPCI後付けボード接続なので…
/bandit@F2000000/ATY,Rage128y@D
ってパラメータが正解らしいことが読み取れた。
長ったらしいが、これを正確にBootVarに記述すれば間違いはない。実際は"@"以下は複数の項目がなければ省略できるようだ。
/bandit/ATY,Rage128y
とBootVarのoutput-deviceに設定したらOFは理解してくれた。
あと、主なデバイスにはエイリアスがあって、記述を省略できる。OFのコンソールで、devaliasと入力すると…
devalias vci0 /chaos@F0000000 pci1 /bandit@F2000000 pci2 /bandit@F4000000 fd /bandit/gc/swim3 kbd /bandit/gc/via-cuda/adb/keyboard ttya /bandit/gc/escc/ch-a ttyb /bandit/gc/escc/ch-b enet /bandit/gc/mace scsi /bandit/gc/53c94 scsi-int /bandit/gc/mesh ok 0 >
左側がエイリアス名、それに対応する実際にデバイスのフルパスが右側の表示。私のパワーMacの場合、外付けバスはscsi。内部バスはscsi-intだ。
もちろんフロッピーやethernetなども割り当てられている。
で、scsi-int ってのは/bandit/gc/meshのエイリアス。その先に実際のディスクが接続されている。
ここまで判明したら、quikを起動するために、MacOSに戻って、上のデータを参考にBootVarに最低限のパラメータを設定
auto-boot? "false" boot-device "scsi-int/sd@1:4" boot-file "/boot/vmlinux root=/dev/sdb4 ro" input-device "kbd" output-device "/bandit/ATY,Rage128y"
「""」は不要だ。起動デバイスのところがミソ。scsi-int/sd@1:4てのは「内部SCSIバスの2番目のSCSIドライブの4つ目のパーティション」ってことだ。これをフルパスで書くならこうなる。
/bandit/gc/mesh/sd@1:4
ただ、不思議なことに"sd@1:0"とやらないと、カーネルを認識するが、Bad partition number.. などとエラーが出る。あとは、Linux側の設定次第なのかもしれない。/etc/quik.confに、起動デバイスなどを正しく記述してあることを祈るだけ…
結果!「ルートファイルシステムがマウントできません…」
BootVarの各項目にパラメータを入力して「Write」ボタンを押し、OpenFirmwareのディフォルト値として設定。再起動後に現われるOFのプロンプトで、
boot [Rtn]
(Rtnはリターンキー)とやればquikのブートストラップにパラメータが渡されて、ペンギンマークとともにツラツラと起動画面がでる。一応、カーネルは動いた。が、ほどなく「No filesystems could mount as root...」と「Kernel Panic」エラーでストップ。
出た! BootXで再起動できないのと同じ症状だ。初期ラムディスクなしでもsergeまでなら起動したが、etch以降ではブートプロセスが変わったらしく起動しない。
断念。 くたびれもうけでした…