Linux CD-ROM ゲームシステム |
||
YAMAMORI Takenori ●yamamori |
ここまでのテストが完了すれば、現在のハードディスクの状態を元に CD-Rを焼くことができる。CD-Rを作成するには、まず、mkisofsコマンドで CD-ROMのイメージファイルを作成し、次にcdrecordコマンドで そのイメージファイルをCD-Rに焼く。
そこでまず、cdrecordとmkisofsをインストールする。 cdrecordとmkisofsは、 現在作業中のゲームシステム作成用のHDD上にインストールして構わない。 筆者は、このマシンに外付けSCSIのCD-Rドライブを接続して作業を行なった。 もし、別のマシンに接続されたCD-Rドライブで焼きたい場合は、 イメージファイルのみmkisofsで作成して、そのファイルを ftpなどでCD-Rドライブのつながったマシンに転送し、 そこでCD-Rを焼くようにしてもよい。
これで準備が整ったので、mkisofsを実行してCD-ROMのイメージファイルを 作成する。具体的な手順は以下のようになる。
# cd /tmp # TZ=UTC mkisofs -R -J -o CD.iso -b images/boot.img -x /tmp -x /proc /
mkisofsの“-x”オプションは、 作成イメージから特定のファイルやディレクトリを除外するためのオプションだ。
/tmp以下にイメージファイルCD.isoを書き込むため、 “-x /tmp”とオプションを付けて書き込み元のディレクトリからは /tmpを除く。ゲームシステムとしての実際の/tmpはinitrd 上のものを使うため、CD-ROM上には必要ない。
同様に、/proc 以下はCD-ROMに焼く意味がないので“-x /proc”で除く。 特に、/proc/kcoreが大きいサイズのファイルとみなされるため、 これを除かないとCD-ROMに入らないだろう。
また、“-b images/boot.img”というオプションを指定して、 先ほど作成したブートFDのイメージファイルを、 El Toritoのブート可能イメージとして指定している。
UNIXのファイルシステムを再現するために、“-R”オプションを付けて RockRidge拡張を行なっている。これは必ず必要だ。
あと、これは必須ではないが、このCD-ROMをWindowsから参照した場合も、 長いファイル名が再現できるように“-J”オプションを付けてJoliet拡張もしておく。
mkisofsのコマンドの頭に“TZ=UTC”と付けて環境変数を指定しているのは、 CD-ROM内のファイルシステムのタイムスタンプをUTCで記録するためだ。 これも必須ではないが、OS間のタイムスタンプの互換性のため、 “TZ=UTC”とするのが筆者の習慣だ。
mkisofs実行後、作成されたCD.isoのサイズが、 333000セクタ*2048バイト=681984000バイト以内であれば650MBのCD-Rに焼ける。
ここで、一度CD.isoをループバックマウントしてみて、 その内容をざっと確認してみるとよい。この状態でCD-Rに焼かれるのだ。
---- # mount -t iso9660 -r -o loop CD.iso /mnt/tmp …確認… # umount /mnt/tmp ← 確認が終ったらumountして元に戻す。 # /sbin/losetup -d /dev/loop0 ← /etc/mtabを変更しているため、 明示的に“losetup -d”が必要 ----