Linux CD-ROM ゲームシステム |
||
YAMAMORI Takenori ●yamamori |
ここまでできていれば、initrd-game.img自体は完成だ。 次に、これをもとにFDを作成し、ブートテストを行なう。 なお、このFDのイメージが、最終的にCD-ROMに、El Toritoのブートイメージとして 焼き込まれる。
FDの作成のためには、mkbootdiskコマンドが作成する起動用FDを テンプレートとして用いる。
具体的な手順は以下のようになる。
(ブートFDの作成) ---- …新しいFDをドライブに入れる… # /sbin/mkbootdisk -v 2.2.14-1vl6 # mount /dev/fd0 /mnt/floppy ← ※注 # rm /mnt/floppy/initrd.img ← mkbootdiskが作成したものは消す (システムによっては最初から存在しない) # cp -p /boot/initrd-game.img /mnt/floppy/initrd-game.img # vi /mnt/floppy/etc/lilo.conf … lilo.confの修正内容は以下参照 … # vi /mnt/floppy/boot/message … /boot/messageの修正内容は以下参照 … # /sbin/lilo -r /mnt/floppy ← 最後にFDにLILOをインストール Added linux * # umount /mnt/floppy
FDの中にある、/mnt/floppy/etc/lilo.confを以下のように修正する。 ここには、mkbootdiskが作成したrescue用の記述もあるはずだが、 これはすべて削除してよい。
boot=/dev/fd0 timeout=30 ← 念のため3秒とした message=/boot/message prompt image=/vmlinuz-2.2.14-1vl6 label=linux root=0x101 ← 実際の値は無視されるが、必ずroot=0x100以外にする initrd=/initrd-game.img ← ゲームシステム用initrdを指定 |
システムの動作には直接関係ないが、 /mnt/floppy/boot/messageの内容が、LILOでのブート時に表示されるため、 ここにゲームらしいメッセージを任意に記述しておく。 筆者は、
Linux CD-ROM game system "circuslinux" |
と書いておいた。
FD内のlilo.confや、/boot/message を修正したら、そのあとで必ず、 “/sbin/lilo -r /mnt/floppy”と、-r オプションつきでliloを実行するのを忘れてはならない。
これで、FDをライトプロテクト状態にし、FDからブートさせてみる。 今度はFDからのブートなのでロードに少々時間がかかるはずだ。 前回のinitrd-gameの単体ブートテストと同様、initrd-game の中のlinuxrcでシェルが起動されるはずなので、そこで、
# /cdmount /dev/hda1 /mnt/cdrom ext2 ========= | +--- 実際のHDDのパーティションに応じて変えること
と手動入力し、exitでシェルを抜けて、ゲームが起動すればテストは完了だ。
これでFDからのブートテストは完了したので、再度HDDから普通にブートし、 ゲームを終了してtelinit 3を実行し、再び通常のシステムを起動する。
そしてテスト完了のブートFDのイメージを以下のようにして吸い出しておく。
# mkdir /images # dd if=/dev/fd0 of=/images/boot.img bs=1440k count=1