Windowsで焼いたCDをMacintoshから読もうとすると、いくつか問題が生じる場合があります。
CD-ROMにデータを記録するときの標準フォーマットとしてISO-9660が規定されています。ISO-9660で記録すればCD-ROMが読み出せるどんな環境でも読めることを期待できますが、それを達成するために、ファイル名には
のような制限があります。
ISO-9660のLevel1では、MS-DOSからでも参照できるように、ファイル名の長さが8文字+拡張子3文字以下でなくてはならないという制限が加わります。
Windowsでは長いファイル名や特殊記号・日本語などを含むファイル名を記録するために、Jolietという拡張を用いています。
JolietではISO-9660の制限に従ったファイル名も同時に記録され、Jolietに対応していない環境からでもそちらのファイル名で読み出せるように工夫されています。
通常はこれで十分なのですが、たとえばCD中にhtmlによるコンテンツを作成していたような場合、ファイル名が変わってしまうのでリンクが切れてしまって事実上読めなくなったりすることがあります。
Macintosh標準のCD-ROMドライバはJolietに対応していないので、この問題が起きます。Joliet Volume Accessのような機能拡張がインストールされていればJolietのファイル名も見えますが、不特定多数に配布するCDの場合、それを前提にはできません。
Macintoshでは、ファイルはタイプとクリエータという情報をもっており、ファイルをダブルクリックしたときどのアプリケーションが起動するかなどを決める目的で使用されます。これはMacintosh固有の情報なので、Macintoshのファイルシステム(HFS)以外には存在しません。
そのためISO-9660のCDをMacintoshで見ると、すべてのファイルが白紙のアイコンで見えて、ダブルクリックしても起動するアプリケーションを決められなかったりします。
Macintoshのファイルには、データフォークとリソースフォークという2つの部分があります。他の多くのOSのファイルには、データフォークに相当する部分しかありません。このため、ISO-9660のCD上のファイルはMacintoshから見たとき基本的にデータフォークのみのファイルとなります。したがってリソースフォークが必要なファイル(Macintoshのプログラムなど)は置くことができません。
MacintoshにはWindowsのautorunに似た機能(CDを挿入しただけでCD上の特定のファイルを自動的に開く機能)がありますが、これはISO-9660のCDでは使えません。
CD-ROMをHybrid形式にすることで、これらの問題を解決できます。広義には複数のフォーマットで記録されているCDはすべてHybridと呼びますが、ここではISO-9660とMacintosh固有のHFSの両方で記録されたCDのことを指します。
MacintoshのライティングソフトはたいていHybrid形式のCDを焼けるようになっているので、Macintoshがあるなら問題は簡単に解決します。
では、Windowsしかない場合にはHybrid形式のCDは焼けるのでしょうか。
Windows用のライティングソフトでHybrid形式に対応したものはほとんどありません。neroはいちおうHybrid形式のCDも焼けるようですが、HFSでフォーマットされたHDDのパーティション(Macintoshがなくてはほぼ作成不可能)が必要です。
しかし世の中には都合よく、ふつうのWindows上のディレクトリからハイブリッド形式のCDイメージを作成できるツールがあったりします。CDのイメージファイルを作成するmkisofsと、作成したイメージを実際に焼くcdrecordというツールです。オリジナルは
Cdrecord release information (英語)
で公開されていますが、日本語のファイル名も使えるようにパッチの当てられたものが
mkisofs: multi-byte NLS support
で公開されているので、こちらを使うことにします。
mkisofs/cdrecordはもともとUNIX用のツールなので、基本的にすべてコマンドラインから操作します。たぶんMS-DOSのコマンドラインを触ったことのない人には使えないでしょう。逆に使える人なら付属のマニュアルだけで十分使えると思うので、ここではコマンドラインから直接使う方法については説明しません。
本家のUNIX上ではxcdroastやgcombustのような、mkisofs/cdrecordをGUIで操作するためのラッパが存在しますが、これをWindows上で使おうとするとCygwinをインストールしてコンパイルするだとかXサーバを探してきてインストールするだとか、かえって手間がかかってしまいます。
というわけでHybrid CD作成専用のGUIラッパをでっちあげてみました。インストールと焼き方の手順は以下の通りです。
でっちあげなので、直接コマンドラインから操作した場合と比べて、かなりの制限があります。
Hybrid CD作成の機能しかありません。他のことをしたいときは直接コマンドラインから操作するか、ドライブ付属のライティングソフトなどを使ってください。
mkisofs自体にはautostart用のファイルを指定する機能がありますが、いまのところGUIラッパ経由ではその機能は使えません。
私の環境ではcdrecordがまともに動作しないので、cdrecordを呼び出して実際にCDを焼く機能は実装されていません。作成したISOイメージをドライブ付属のライティングソフトなどに持っていって焼いてください。
ソースを見て卒倒しないでください。
Macnitosh用のプログラムなど、リソースフォークが必要なファイルはMacBinary形式で置いてください。Macintosh用オンラインソフトのアーカイブをWindows上で解凍する場合の具体的な手順は、以下のようになります。
Windows上でStuffItのアーカイブを解凍できるソフトは私の知る限りAladdin Expanderしかないので、これを使った場合の手順を説明します。
LHAアーカイブのWindows用解凍ソフトでMacBinaryを認識するものはほとんどないので、そのまま解凍すればまず間違いなくMacBinaryが付いたまま解凍されます。
UNIX系のOSだとループバックデバイスというのがあってファイルをデバイスに見せかけてマウントするということが簡単にできるのですがWindowsだとそう簡単ではありません。
でも世の中には都合よくDAEMON Toolsというフリーの仮想CDツールが存在したりするので、これでISO側(Windowsから見える側)については確認できるのでした。
HFS側(Macintoshから見える側)についても、HFVExplorer(ミラー)と組み合わせれば確認できます。
以下、私が操作方法を確認できたライティングソフトでISO形式のイメージファイルを読み込ませる方法を説明します。
ウィンドウ下部のウェルへイメージファイルをドラッグ アンド ドロップします。または、「編集(E)」-「登録(S)」-「トラック(T)...」で「トラックの追加」ダイアログを開いてイメージファイル名を指定します。
「ファイル(F)」-「CD イメージから CD を作成する(F)...」でダイアログを開き、「ファイルの種類(T)」で「ISO イメージファイル(*.iso)」を選択します(*.cifはEasy CD Creator独自の形式です)。
「ファイル(F)」-「新規作成(N)...」で「新しいタスク」ダイアログを開き、「タイプ(T)」に「CDイメージ から CDレコーダー」を選択します。
タスクのウィンドウが開いたら、「入力元(S)」としてイメージファイルを指定します。
「ファイル(F)」-「イメージをCD-Rへ書き込む(B)...」でダイアログを開き、イメージファイル名を指定します。
「他のライティングソフトのイメージファイル」というメッセージボックスが開いて、「オプションの設定をしますか?」と聞いてくるので「OK」と答えます。
「外部イメージデータの設定」ダイアログでオプションを以下のように設定します(とくにいじらなくてもこの設定になっているはずです)。
体験版が英語版しかない関係で、英語版での説明になっています。適当に置き換えて読んでください。
新規作成で「Custom CD」を選択します。
「Track」-「Add...」でダイアログを開き、イメージファイル名を指定します。
「編集(E)」-「トラックイメージを挿入(I)...」でダイアログを開き、イメージファイル名を指定します。