Solaris/Linux/FreeBSDでCD-Rを焼こう

YAMAMORI Takenori ●yamamori

§研究編 [ISO9660/RockRidge/Jolietの詳細]

●ファイルシステムフォーマットの方針

せっかく一度しか焼けないCD-Rを焼くのですから, その元データをmkisofsで作成する時は, あらゆるOSで同じように読めるように, 最も合理的なオプションを使用するべきでしょう.

mkisofsの,-d -l -L -N-U,さらに-D といったオプションは,RockRidgeやJolietに対応していないOS上においても, なるべくオリジナルのファイル名やディレクトリ階層のまま 読めるようにしたいという場合に使用するべきです. もちろんこれらのオプションを使用すると, ISO9660の規格に違反,またはMS-DOSと非互換になります.

※注
  • -lオプションは、ISO9660 Level 2/3 の範囲内です。
  • -Lオプションは、ISO9660 Level 1 の範囲内ですが、 ファイル名の頭が“.”となる、拡張子のみのファイル名は、 MS-DOSで読めません。
(コラム「mkisofsのオプション分類」参照)

今現在,UNIXにおいてはRockRidge,Windows系においては Jolietに,必ず対応していると考えてよいでしょう.

そこで基本方針としては,自由なファイル名や深いディレクトリ階層を 用いることについてはRockRidgeやJolietに任せることにし, 逆に,これらの拡張前の素のISO9660上では,最大限,古いOS(MS-DOS)との 互換性を考えて,ISO9660のLevel 1の範囲内でファイルシステムを構成する というのが,最も合理的な考えであると思います. もちろん,RockRidgeとJolietは共存できます.

また,mkisofs実行時には,タイムゾーンをUTCにして, ファイルのタイムスタンプがUTCで記録されるようにすることを推奨します.
(コラム「厄介なタイムゾーン」参照)

以上の考えから,以下のオプションでmkisofsを実行することになります.

# TZ=UTC mkisofs -R -J -b images/BOOTFILE -o CD root

○現在のLinuxやFreeBSDではJolietにも対応

現在のLinuxやFreeBSDでは,RockRidgeのほかJolietにも対応しています. このため,Windows用のCD-ROMでも,本来の長いファイル名でマウントできます.

UNIX上で,CD-ROMをマウントする際,デフォルトでは, CD-ROMがRockRidge拡張されていればRockRidgeで, RockRidge拡張されていなくてJoliet拡張されていればJolietで, RockRidge拡張もJoliet拡張もされていなければISO9660でマウントされます. このため,ユーザはこれらのことについて普通は意識する必要はありません.


To 『Solaris/Linux/FreeBSDでCD-Rを焼こう』index


このページは、技術評論社 SoftwareDesign 2000年6月号、『CD-R/CD-ROM完全ガイド』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 Home
yamamori