第8章 他のマルチブートローダーを使用しているプログラムを組み込む(その1)

【ULTIMATE BOOT CD】を組み込む

【ULTIMATE BOOT CD】(以下UBCDと略す)は、ありとあらゆる無料のユーティリティを詰め込んだ、その名の通り、究極のブータブルCDだ。主にレスキュー用途として、ぜひ所持しておくことをお奨めする。

【ULTIMATE BOOT CD】公式サイトに行き、ダウンロードページから入手することができる。今回は、このUBCDをマルチブータブルCDに取り込む演習をしよう。私がこのページを書いているときの解凍後のファイル名はubcd411.iso で、サイズが115MBだった。これを単独でCD-Rに焼くと、そのままでマルチブータブルCDになるという便利なイメージファイルだ。(第3章でも少し紹介した。) しかし、650MBのCD-Rを使っても500MB以上余るので、他のプログラムと融合してマルチブータブルCDにしたいと考える人もいるだろう。

ubcd411.iso から全フォルダ・ファイルを抽出するとルートに9個のフォルダと、3個のファイルが出てくる。

├ boot
├ custom
├ dosapps
├ images
├ isolinux
├ menus
├ syslinux
├ tools
├ website
└ ( 3 個のファイル )

これをみてピンと来た人もいると思うが、第5章で名前が出てきたisolinuxという名のフォルダがある。そう、UBCDはマルチブートローダーとして【ISOLINUX】を使用しているプログラムなのだ。そこで、このisolinuxフォルダの中をさらに見てみよう。

isolinux
├ chain.c32
├ isolinux.bin
├ isolinux.cfg
├ memdisk
├ menu.c32
├ sbm.cbt
└ startup.msg

7つのファイルが存在するが、これらのうち isolinux.bin というのがブートローダー本体である。そこで、bcdwからisolinux.binにチェーンロードしてやることにする。

いつもの基本構成のxフォルダの中に、【UBCD】から抽出した全フォルダ・ファイルを入れると、以下のような階層構造になる。10個のサブフォルダと、3個のファイルがルートに並ぶことになる。しつこくて申し訳ないが、階層構造がズレないようにくれぐれも注意すること。

x
├ bcdw
├ boot
├ custom
├ dosapps
├ images
├ isolinux
├ menus
├ syslinux
├ tools
├ website
└ ( 3 個のファイル ) 
   autorun.inf boot.catalog ubcd.ico

3個のファイルのうち、boot.catalogは、この段階で消去しておく。これをやっておかないと、mkisofs がエラーを吐く。

boot.catalog は、El Torito の仕組みで解説したBoot Catalog セクタをファイル形式でまとめたものである。サイズは2048バイト。ちょうどISO9660ファイルシステムのセクタサイズである。mkisofs のLv.4 でISOを作ると、boot.catalog というファイルが新規作成される。(【CDRecord フロントエンド】の第4画面で、「ブートイメージを全てのファイルシステム上から隠す」を選ぶと、表面上は出現しないが、裏で一旦は作られるようだ。) ところが、boot.catalog という名のファイルがあらかじめ最初から存在していると、名前がバッティングしてしまう。元々あるboot.catalog は【ISOLINUX】由来のもので、【Bootable CD Wizard】でブートさせる時のものとは中身が異なるわけだから、ここでエラーが発生するようだ。よってエラーを回避するために、boot.catalogをあらかじめ削除しておく必要があるというわけだ。

ついでにここで、autorun.inf についても触れておこう。これは、第1章の最初に書いたオートランCDのためのファイルであって、ブータブルCDとは関係ないものだ。中身は、自動実行されるプログラムのコマンドや、マイコンピュータなどに表示される独自のアイコンを指定したものになっている。ブータブルCDの仕組みに比べると、ずっと簡単で理解しやすいものだと思う。

bcdw.iniは以下のようにしておく。【ISOLINUX】のisolinux.bin をチェーンロードしているのがお分かりいただけると思う。

[MenuItems]
C:\                     ; Boot from drive C:
\isolinux\isolinux.bin  ; UBCD
:PowerOff               ; Power Off

成功すると、【Bootable CD Wizard】のメニュー画面経由で、【ULTIMATE BOOT CD】のメニュー画面を呼び出せるようになる。【BCDW】から【ISOLINUX】へ、マルチブートローダーから他種のマルチブートローダーへとチェーンさせたことになる。しかし基本的には、前章の【Berry Linux】(2.8MBフロッピータイプのブートローダーへのチェーンロード)となんら作製方法は変わっておらず、特に難しいことはない。

<目次へ> <前の章へ> <次の章へ>