忘れがちな脳のための覚え書き
- 前提
- Debian GNU/Linux lennyで確認
isoイメージを作成するにはmkisofsを使用します。今回isoで固めるディレクトリはこんな感じ、1つだけファイル名が長くなっています。
masasuzu@lenny% ls hogehoge [~/tmp] bar foo fuga hoge hogehogehogehogehogehogehogehogehogehoge.txt
普通に作成する。
とりあえず、何も考えず、isoに固めます。charsetは指定しないとwarnigが出るのでつけときました。
masasuzu@lenny% mkisofs -input-charset=utf8 -o hogehoge.iso hogehoge [~/tmp] Total translation table size: 0 Total rockridge attributes bytes: 0 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 174 extents written (0 MB) masasuzu@lenny% ls hogehoge.iso [~/tmp] hogehoge.iso
しかし、作成されたisoイメージをマウントしてみると長いファイル名が縮められてしまいます。
これはISO9660の規格ではファイル名8文字+拡張子3文字に丸められてしまうためです。そこで長いファイル名に対応したISO9660の拡張規格がRockRidgeのようです。
masasuzu@lenny% sudo mount -o loop hogehoge.iso mnt/image [~/tmp] masasuzu@lenny% ls mnt/image [~/tmp] bar foo fuga hoge hogehoge.txt
RockRidgeで作ってみる
今回はファイル名が維持されたままisoイメージが作成できました。
masasuzu@lenny% mkisofs -input-charset=utf8 -R -o hogehoge.iso hogehoge [~/tmp] Total translation table size: 0 Total rockridge attributes bytes: 587 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 175 extents written (0 MB) masasuzu@lenny% sudo mount -o loop hogehoge.iso mnt/image [~/tmp] masasuzu@lenny% ls mnt/image [~/tmp] bar foo fuga hoge hogehogehogehogehogehogehogehogehogehoge.txt
RockRidgeが使えないシステムのために-Tオプションを付けて、TRANS.TBLを作成してあげるとファイル名を維持できるようです。
masasuzu@lenny% mkisofs -input-charset=utf8 -R -T -o hogehoge.iso hogehoge [~/tmp] Total translation table size: 1118 Total rockridge attributes bytes: 668 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 176 extents written (0 MB) masasuzu@lenny% sudo mount -o loop hogehoge.iso mnt/image [~/tmp] masasuzu@lenny% ls mnt/image [~/tmp] TRANS.TBL bar foo fuga hoge hogehogehogehogehogehogehogehogehogehoge.txt
Windowsでも使えるisoイメージを作る
WindowsではISO9660の規格を拡張したJolietフォーマットを使用します。Jolietフォーマットで作成するには-Jオプションを付けます。-Rオプションとの併用がどうやらできるようです。
masasuzu@lenny% mkisofs -input-charset=utf8 -R -T -J -o hogehoge.iso hogehoge [~/tmp] Total translation table size: 1118 Total rockridge attributes bytes: 668 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 182 extents written (0 MB) masasuzu@lenny% sudo mount -o loop hogehoge.iso mnt/image [~/tmp] masasuzu@lenny% ls mnt/image [~/tmp] TRANS.TBL bar foo fuga hoge hogehogehogehogehogehogehogehogehogehoge.txt