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と非互換になります.
今現在,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では,RockRidgeのほかJolietにも対応しています. このため,Windows用のCD-ROMでも,本来の長いファイル名でマウントできます.
UNIX上で,CD-ROMをマウントする際,デフォルトでは, CD-ROMがRockRidge拡張されていればRockRidgeで, RockRidge拡張されていなくてJoliet拡張されていればJolietで, RockRidge拡張もJoliet拡張もされていなければISO9660でマウントされます. このため,ユーザはこれらのことについて普通は意識する必要はありません.