第6章 小さなサイズのイメージを組み込む

マルチブートローダー

第5章で作成した【Bootble CD Wizard】の構成を利用して、各種プログラムを組み込んでいこう。

最初に確認しておくが、組み込むプログラムに関しては、それ自体にブート能力があるものに限られる。例えば、MS-DOSのフロッピー起動ディスク。これなどはブータブルCDに組み込むことができる。

逆に、MS-DOS上で動くプログラムなどは、直接組み込むことはできない。このようなプログラムを実行したいときは、まずブータブルCDに含めておいたMS-DOSを起動しておいて、そこから呼び出すことになる。もちろん必要なファイルは全てCD上に含めて置けば良いので、CD単独で賄えるわけだ。この辺はややこしくなるので、このあとのWin9Xのインストールディスクの作成の章で、あらためて説明する。

また、Windows上で動くようなプログラムも、当然のことながら、直接ブートさせることはできない。たとえば、MSワードを直接ブータブルCDから起動させることは不可能だ。このようなことをしたければ、PE Builder にワードを取り込んでおいて、そのPE Builder をブータブルCDに含めておくような手段をとることになる。PE Builder にワードを取り込むやりかたなどは、当コーナーの範疇ではないので、興味のある方はPE Builder 関連サイトなどを調べてほしい。

マルチブートローダーというのは、喩えるならマルチ電源タップのようなものだ。

電源タップ

元のコンセントが1つしかない場合でも、複数の電化製品をつなぐことができる。だが、つなぐことができるのはコンセント付の電化製品に限られる。コンセント付の電化製品というのが、各ブータブルなプログラムに相当するわけだ。

そして上の写真のように、各ソケット脇に1つずつスイッチがついていて、使いたいプログラムのスイッチだけをONにしてやるわけだ。ONにされた電化製品は、単独で壁面コンセントに直接差し込んだときと同じように問題なく使える。タコ足配線とかブレーカーが落ちるなどの心配もブータブルCDの場合は全くないので、メディアの容量が許す限り、いくつでもブートプログラムを詰め込める。

マルチブートCDを作るということは、本来直接つながっていたBIOS(部屋の壁面のコンセント)と、シングルブートプログラム(コンセント付電化製品)の間に、マルチブートローダー(マルチ電源タップ)を上手に介在させてやる作業が中心なのだ。

マルチブートローダーの働き

フロッピーイメージなどを取り込む

ここからは実例を用いて説明していく。ぜひ実際に御自分でも真似して作成演習してほしい。

この章では、フロッピーイメージ、および、それに準じる小さなイメージファイルを、マルチブート化してみよう。

演習例で用いるのは、

  1. HAL91…1FDブートのLinux。1.4MBのイメージファイルの例として用いる。
    HAL91のサイトから、"hal91.img" をダウンロードしてくる。
  2. BG Rescue…2.8MBのイメージファイルの例として用いる。
    BG Rescue 公式サイトから、"BG-Rescue 2.8 MB ELTORITO-BOOT-Image" をダウンロードしてくる。
    日本語解説はPC Webの特集にある。今回は起動実験なので、使い方の分からない人はいじくり回さないように注意したほうが良い。
  3. MemTest86…超有名なメモリテスト用アプリ。今回はブータブルCDのイメージとして配布されている物を使う。小さなサイズのISOイメージの例として用いる。1.8MBほどのサイズである。
    MemTest86 公式サイトから"ISO images suitable for creating a bootable Memtest86 CDROM" というzip圧縮のものをダウンロードしてくる。これを解凍して出てきたファイルを使う。

私がこのページを書いているときの、それぞれのファイル名は、

  1. hal91.img
  2. rescue-0.9.0.img
  3. memtest86-3.4a.iso.zip(解凍前のファイル名)→memtest.iso(解凍後のファイル名)

である。今後バージョンアップしても、基本的なやり方は変わらないだろうと思う。この3つのファイルを、第5章で作成したxフォルダに入れる。

x
├ bcdw
│ ├ bcdw.bin
│ ├ bcdw.ini
│ └ loader.bin
├ hal91.img
├ memtest.iso
└ rescue-0.9.0.img

前にも書いたが、階層構造は重要なので間違えないようによく確認してほしい。【CDRecord フロントエンド】で構築元フォルダにxを指定した時、完成したブータブルCDでは、xの下の階層がルートになる。今回の場合だと、bcdw というフォルダと3つのファイルがルートに存在することになる。

次に、bcdw.ini をテキストエディタで開き、全ていったん消去し、以下のように書き込む。空白は、半角スペースやタブキーを使うこと。全角スペースの使用は避ける。

[MenuItems]
C:\                  ; Boot from drive C:
\hal91.img           ; HAL91
\rescue-0.9.0.img    ; BG Rescue
\memtest.iso         ; MemTest86
:PowerOff            ; Power Off

セミコロンより後ろの部分は説明済みなので、ここでは、セミコロンより前の部分(青字部分)に注目してほしい。

\<ファイル名> でルートにあるファイルを意味する。\記号を忘れないように。\<サブフォルダ名>\<ファイル名> のようにして、深い階層も指定できる。

見てお分かりのように、ダウンロードしてきたブート能力のあるイメージを、そのまま指定しているだけだ。【Bootble CD Wizard】以外のブートローダだと、もっと複雑な配慮や設定が必要になるのだが、これはきわめて簡単だ。詳しいことは不明だが、おそらく、イメージファイルの中身をメモリに丸投げしてRAMディスクにするようなやり方をしているのだと思う。現在の一般的なPCの搭載メモリ量ならば、数MBくらいのイメージならば何の問題もないだろう。

ちなみに、C:\ と書くと、通常のHDDからのブートになる。Cドライブからのというよりは、「HDDのアクティブな基本領域からのブート」と考えたほうが分かりやすい。たとえばあなたのPCが、CドライブにWindows 98、DドライブにWindows XP というデュアルブートの構成だとしても、D:\ とbcdw.iniに記載してもXPがブートするわけではないので注意。HDDのMBRのブートストラップローダーに制御を渡すという意味だ。

このように、1つのブートローダーが、次のブートローダーに制御を渡してブートさせる方法を、チェーンロードという。次にどのブートローダーに制御を渡すかをユーザーが選択できるようにすることで、多彩なマルチブートを実現しているわけだ。

これは知らなくても良いことだが、El Torito 純正のマルチブート作成法は、mkisofs で-eltorito-alt-boot <ブートローダー> というオプションを繰り返して、複数のブートローダーを指定する方法だ。【CDRecord フロントエンド】で、第4画面のブートイメージ欄の横のボタンが、「参照」ではなくて「追加」になっていたのに気づいた方はいるだろうか?ブートローダーを複数指定できるのだ。しかし、この方法は、選択メニューが見にくい、対応していないBIOSがあるなど、非常に制約が多い。現実には使いみちのない方法だと思う。

:PowerOff は【Bootble CD Wizard】の定型句で、その名の通りの機能を果たす。

ここまで準備できたら【CDRecord フロントエンド】を使ってISOイメージを作るのだが、今までと変更する点がある。

【CDRecord フロントエンド】の第2画面で、ISO9660レベルを Lv.1にしていたが、今回からは、Lv.4 にして作成する。ISO9660では、いわゆる8.3形式のファイル名を採用しており、今回追加したような長いファイル名や、ドットが何個も含まれるようなファイル名には対応していない。(今の場合はファイル名を簡単なものに変更しても良いが) Lv.4はISO9660の拡張規定で、これらのものにも対応できる。また、今後出てくる実例の中にもLv.4でなければうまくいかないものが含まれているし、Lv.1〜3でないとマズイというものも少ないので、今後の章は、デフォルトでLv.4ということにする。

ISOファイルが出来上がったら、仮想PCで起動テストをしよう。うまくいけば、【Bootble CD Wizard】のメニューから、以下のようなプログラムを選択して呼び出せるようになったはずだ。あなたが初めて自分で作った、記念すべきマルチブータブルCD第1号だ。

HAL91 HAL91起動画面
BG-Rescue BG Rescue起動画面
MemTest86 MemTest86起動画面

付録:Acronis 製品 のブータブルレスキューCDの組み込み

Acronis の製品を使っている方は、ブータブルレスキューCDを、マルチブータブルCDの中に取り込んでおきたいと考えるだろう。

【Bootble CD Wizard】V2.0a1では非常に簡単に、これを実現することが出来るようになった。

まず、通常通りウィザードに従ってブータブルレスキューCDを作る。一時的に必要なだけなのでCD-RWを使うと良いだろう。次に、このCD-RWをISOイメージに変換する。【CDRecord フロントエンド】の「ディスクからイメージを構築する」機能を使えばよい。ここでは、acronis.iso というファイル名で保存したとする。

あとは、上でやったのと同じだ。xフォルダにacronis.isoを入れて、bcdw.ini に

\acronis.iso ; Acronis Rescue Program

のような1行を加えればよい。V1.50Zまでは、あらかじめブートイメージを抽出しておくことが必要だったが、V2.0a1 では、フロッピーディスクイメージと全く同じシンプルな方法で済むようになった。

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