マルチブート時のブートローダの選択について マルチブート時のブートローダの選択について

 現在のLinuxの標準ブートローダであるGRUBは、ブートするパーティションを選択する「チェーンローダ」と、カーネルを起動する「カーネルローダ」の機能を併せ持った便利なブートローダであるが、それ故マルチブートした時に不都合が生じることがある。

 Grubにはstage1→stage1.5→stage2という3つのブートステップがある。それぞれの機能やインストールされる場所を説明すると、

 Grub-stage1は、「stage1.5を見つけ、制御を渡す」だけの機能しかない。ハードディスク全体の先頭セクタであるMBR(Master Boot Record)か、各パーティションの先頭セクタであるPBR(Partition Boot Record)のどちらかにインストールされる。
 Grub-stage1.5は、「ファイルシステムを理解する」ために存在する。よってこれ以降はファイルシステムによるアクセスが可能となる。stage1のインストールされたMBRもしくはPBRの次のセクタから連続した領域、つまり「第2セクタ以降」にインストールされる。
 Grub-stage2こそがGrubの本体であり、これにアクセスすることがstage1とstage1.5の存在理由といってもいい。menu.lstを参照して他のパーティションにチェーンロードしたり、Linuxカーネルをロードしたりと、大半の機能は全てここで提供される。/boot/grubディレクトリにインストールされる。

 Linuxブートまでの流れとしては、
MBRかPBRにインストールされたstage1 → MBRまたはPBRの次のセクタ以降にインストールされたstage1.5 → パーティションの/boot/grubディレクトリにインストールされたstage2
と制御が移され、Linuxが起動することになる。

 長々と書いてきたが、今回ここで一番問題なのは、stage1とstage1.5を、MBRとPBRのどちらにインストールするか、である。デフォルトではMBRにインストールされることになる。Linuxだけを使うのであれば、実際こちらの方が簡単で便利であろう。
 しかしその後、Windows等の他のOSを別のパーティションにインストールしようとすると、MBRのstage1が(場合によっては強制的に)書き換えられてしまい、最初にインストールしたLinuxが起動不可になってしまう可能性が非常に高い。GRUBのstage1とstage1.5とstage2はセットであり、どれかが欠けてもLinuxはブートできないからである。Grubの起動ディスク等を使って修復することは可能であるが、CUIで少々難解な指示をしなくてはならず、初心者には敷居が高い。最悪Linuxの再インストールということにもなりかねない。

 これを回避するために一番手っ取り早い方法は、「stage1とstage1.5をMBRではなくLinuxをインストールしたパーティションのPBRに置く」ことである。もちろんMBRには別のチェーンローダをインストールする。これなら他のOSのインストールでMBRが書き換えられてしまっても、消えるのはそのチェーンローダのみなので修復は容易だ。
 この方法は要するにGrubのチェーンローダとしての機能を(事実上)殺し、あくまでカーネルローダとしてのみ使うということだ。

 チェーンローダとカーネルローダを別に用意し、両者を明確に分ける「2段階ブート」を原則とすることで、各パーティションを完全に独立させ、変化に柔軟なマルチブート環境を作ることができる。

 参考URL
  マルチブートするなら2段階ブート方式に統一しよう
  MBMで簡単マルチブート環境
  マルチブート/デュアルブートのすべて

--------------------------------------------------------------

 MBRにインストールする別のチェーンローダにはMBM(Multiple Boot Manager)をお薦めする。軽量で多機能かつ扱いも簡単だ。

 MBMをインストールするためには
  1 フロッピー等からDOSを起動して、 mbm install と打ち込んでインストールする
  2 MBMの起動ディスクイメージをフロッピーに書き込んで起動ディスクを作り、そこから起動、インストールする
の2つの方法があるが、最近のパソコンにはプロッピードライブが装備されていない場合があり、上記の方法だと何かと不便が多い。
 そこで上記2のFDイメージをCDイメージ(isoファイル)に変換し、MBMのブータブルCDを作成してしまうと便利である。

 MBMをダウンロードすると「MBM038.144」というファイルがあるが、これがMBMの起動ディスクのイメージファイルである。これをフロッピーに書き込むことでMBMの起動ディスクができるが、今回はこれをCDイメージに変換して利用する。
 変換する方法は色々あるが、Windowsからは起動FDイメージをISOイメージに変換するプログラムなどを利用すると簡単にできる。
 できあがったisoファイルをライティングソフトでCD-R等に書き込むことで、MBMのブータブルCDが完成する。


 MBMだけでCDを使い切るのがもったいないというのであれば、それ以外のソフトウェアと組み合わせた「マルチブータブルCD」を作成することで、容量の無駄を少なくすることができる。(この場合はFDイメージ(MBM038.144)のままでOK。CDイメージに変換する必要は無い)

 Windowsからは以下のソフトを利用すると(比較的)簡単にマルチブータブルCDが作成できる。
ブートローダ Bootable CD Wizard Module 2.0a1
CDイメージ作成およびCDライティング CDRecord フロントエンド
作成したイメージの動作確認用仮想PC QEMU on Windows
QEMUフロントエンド QEmu Launcher
(他に仮想PCとしてVirtualBoxも手軽に利用可能。個人的にはQEMUよりこちらを薦める)

 これらのソフトを用いたCD作成方法はマルチブータブルCD/DVD製作法に詳しく書いてあり、非常に参考になる。
 このサイトの説明を大ざっぱにまとめると、CDのブートセクタにチェーンローダ(今回の例ならBootable CD Wizard Module 2.0a1に含まれるbcdw/loader.bin)を組み込んでライティングすることで、複数のブートソフトウェアを起動できるようにする、ということらしい。
 チェーンローダは設定ファイル(同じくBootable CD Wizard Module 2.0a1に含まれるbcdw/bcdw.ini)の記述から、CD内の複数の「ブートファイルまたはブータブルイメージ」を探し出し、BIOSから制御を受け渡すようだ。