タイトル【Darwinシリーズ】CD-ROMが使えない?カテゴリーDarwin, Darwin 1.0
作成日2000/5/14 17:25:11作成者新居雅行
Darwin 1.0を起動した状態で、CD-ROMをドライブに入れてみた。すると、画面に「-CD track…」などといきなりプロンプトの続きに表示される。

◇CD-ROMの挿入に対して自動的に反応はするが…
 figs/darwin/DSC00003.JPG

挿入したのは、Windows版のOffice 2000のCD-ROMで、いちおうISO9660だと思われるが、その中のパーティション情報が表示されているのではないかと思われる。CD-ROMの自動マウントが働いているように考えられなくもないが、表示が出た後に再度dfコマンドを実行してみても、起動した時の状況とは変化がない。つまり、実際にはマウントされていないようなのである。
ここでまず、/devの中身を調べてみると、どうやら、disk2というのが加わっている。CD-ROMに入れたディスクは、とりあえずはdisk2として参照できるようだ。

◇CD-ROMを入れると、/devのデバイスが増える
 figs/darwin/DSC00007.JPG

手動マウントなのかもしれないと思い、mountコマンドを試してみた。エラーが出る上にman mountでマニュアルの参照すらできない。実際にはmount_cd9660を使うので「mount_cd9660 /dev/disk2 /」のようにコマンドを入力してみたが、Device busyというメッセージが出るだけで、CD-ROMをマウントすることはできなかった。

それじゃあということで、HFSのCD-ROMを挿入してみた。G3のシステムCD-ROMだ。すると、同じように自動的にメッセージが表示されるが、ブロックの境界が違うという旨のメッセージが出てくるなど、若干様子が違っている。ただ、dfコマンドで確認しても、自動的にマウントされた形跡はない。ドライブのイジェクトボタンを押すと取りだせる。

◇HFSのCD-ROMを挿入すると、少し違うメッセージが出てきた
 figs/darwin/DSC00008.JPG

しかしながら、「/dev」ディレクトリの内容を見ると、CD-ROMドライブと思しきdisk2の項目に、disk2s1〜disk2s8の8つのパーティションを示すデバイスが加わっている。なんで8つなのかは不明だが、ISO9660のドライブよりかは状況はいいのかもしれない。

◇HFSのCD-ROMだと、パーティションごとのデバイスも見えるようだ
 figs/darwin/DSC00009.JPG

HFSドライブのマウントなので、「mount_hfs」というコマンドを使うと思われるが、やはりマニュアルの表示はできず、コマンドの利用方法は分からない。引数なしで表示されるガイドをから「mount_hfs /dev/disk2s1 /」などとすべてのパーティションに対して行ってみたが、Invalid Argumentが出てくるので、他の引数指定が必要なのだと思われる。ソースを見てまでの解析は行っていないが、それを見れば何か分かるのかも知れない。

ところがである。HFSのCD-ROMをドライブに入れたままDarwinを起動してみると、見事にルートにそのCD-ROM名が参照できている。つまり、HFSのCD-ROMなら起動時に入れておけば、とりあえずディスクの中身は読み込むことができるようなのだ。ここでは、「Power Macintosh G3」がCD-ROMの名前でルートにマウントされていることが分かる。そして、デバイスは「/dev/disk2s8」だ。8つ目のパーティションが使えるらしい。

◇起動時に挿入しておいたHFS CD-ROMドライブはマウントされる
 figs/darwin/DSC00010.JPG

この状態だと、ドライブのイジェクトボタンを押してもディスクは出てこない。きちんとロックされている。ディスクを取り出すには「unmount "Power Macintosh G3"」とコマンド入力してで取り出すことができた。コマンドの引数に空白がある場合には、ダブルクォートかシングルクォートで囲めばよい。しかしながら、アンマウント後にも、ディスク名の項目がルートに残る。
別のディスクをそのままの状態で入れてみたが、それは以前と同じ状態であった。自動的にマウントはしないし、HFSのマウントコマンドの使い方はまだ分からないので、マウントに至ることができなかった。
一方、ISO9660のディスクを挿入した状態で起動すると、起動ボリュームしか正しく認識しないようで、これは注意が必要かもしれない。

起動時にvキーを押したままにすると、起動する時のプロセスのメッセージが逐一表示される。それを見ての推測になるが、まず、HFS/HFS+のデバイスドライバが組み込まれて、/dev/diskNsXが使えるようになる。そして、見えているデバイスを全部チェックして、ボリュームかどうかを判別し、そして自動的にボリュームとなるパーティションならマウントするのではないだろうか。だから、/etc/fstabのようなメカニズムは使わないで、HFSを自動認識して起動しているのだと考えられる。これはあくまで推測だ。
関連リンク