CD-R の ISO イメージの作り方(mkisofs を使用)
【目次】
 
始めに
unix 上で動くイメージ作成ソフトを使って CD-R システムを焼いてみようと思います.
このとき,
    Makefile 
    makefile
のように、大文字・小文字だけの違いしかないファイルが「同一のファイル」とみなされないようにします.
 
iso9660 のイメージを作る
次のようにすれば image-dir 以下のディレクトリを image.iso というイメージファイルとして作成することが出来ます.
% mkisofs -R -a -d -l -N -L -o image.iso image-dir
以下のオプションが使えます(他にもいろいろあります)。
必須のもの
- -o image.iso
 - イメージを書き出すファイルを指定します. ".iso" という拡張子を使うと、Windows 95 の CD-R 書き込みソフトの 関係上便利です.
 - image-dir
 - ここで指定したディレクトリの中身を iso9660 イメージに変換します.
 
- -a
 - '~' や '#' を含むファイル(通常これらはバックアップファイルとみなされる) もイメージに入れます.
 - -R
 - Rock Ridge 拡張を用いて SUSP レコードと RR レコードを
    作る(???)。
UNIX 系 OS で読む様な CD を作る時は、次の -r とこれのどちらかが 必ず必要だと考えてもいいでしょう。 - -r
 - -R オプションと同じですが、以下の点が異なる.
- ファイルの uid と gid を 0 にします.
 - ファイルの read bit をすべてセットします.
 - 実行属性がついているファイルは、user, group, others すべてに実行属性をつけます.
 - ファイルの write bit をすべてクリアします.
 
 - -T
 - TRANS.TBL というファイルを各ディレクトリに作る. このファイルはファイル名の対応表で、Rockridge 形式の CD-ROM を読めないシステムでディスクを読まなければならない時に (人間が)参考にするものです.
 
- -d
 - 通常 '.' を含まないファイルの末尾には '.' をつけますが、 これを付けないようにします.
 - -D
 - iso9660 では通常サブディレクトリは8段階までしか許されていないため、 それ以上深いディレクトリは再配置されますが、これを行わずに ディレクトリをそのままの位置に配置します.
 - -l
 - 通常 MS-DOS との互換性のためにファイル名を 8.3 形式にしますが、
    32 文字迄のファイル名を許可します(iso9660 level 2)。
- -N
 - iso9660 のバージョンナンバーを省きます.
  - -N
 - -L
 - '.' で始まるファイル名を許します.
 
- -A application_id
 - アプリケーションIDを指定します.
 - -V volume_id
 - ヴォリュームラベルを指定します.
 - -f
 - ファイルシステムを作る時に、シンボリックリンクをファイルの実体に 置き換えます.Rock Ridge 拡張が使えないシステムでは有効ですが、 使えるシステムでは無駄なだけでしょう。
 
普通の CD-ROM を CD-R に焼く時は、dd で CD-ROM の内容をイメージファイルとして 吸い出せばいいので、上の方法を採る必要はありません。
# dd if=/dev/scd1 of=image.iso/dev/scd1 は OS やマシンによって変化します.勿論、全ての CD-ROM がこの方法で OK という訳ではないと思いますが。 (音楽 CD や CD-I なんかはどうなんでしょう?)
 
出来たイメージの確認
イメージファイルをあたかも実際のファイルシステムのように マウントして確認することが出来ます.
- Linux の場合
 カーネルの再構築の時に loopback device を有効に しておかないといけません。又、/dev/loop[0-9] が必要.
次の様にすると、image.iso をあたかも CD-ROM であるかのように /cdrom にマウントすることが出来ます.
# mount -t iso9660 -o loop image.iso /cdromここで気をつけないといけないのが、loopback デバイスによる イメージファイルのマウントは、ローカルなファイルシステム でないと行えないということです. つまり、NFS ごしにはマウントできません。
確認が終ったら次の様にしてマウントを外します.
# umount /cdrom- BSD/OS の場合 (うまくいきませんでした。正しいやり方がわかる方は 教えて下さい。)
 カーネルの再構築の時に vnode disk devices を有効にしておかないと いけません。又、/dev/vnd が必要.
次のようにしてマウントします.
# vndconfig image.iso
# mount -t cd9660 /dev/vnd /mnt確認が終ったらアンマウントしましょう。
# umount /dev/vnd
# vndconfig -c- FreeBSD の場合
 - 
    
次のようにしてマウントします.
# vnconfig /dev/vn0c image.iso
# mount -t cd9660 /dev/vn0c /mntアンマウントはこんな感じです.
# umount /mnt
# vnconfig -u /dev/vn0c 
マウントしてしまった後は、通常の CD をマウントした時のように image-file の中を見ることが出来ます. 確認して下さい.
 
CD-R の準備
CD-R の準備には,安定した転送速度を維持する必要がある. もしネットワークごしにイメージファイルが見えたとしても それを Windows のローカルなディスクに ftp などで 一旦転送してから作業を始めて下さい。