マルチブート時のブートローダの選択について
マルチブート時のブートローダの選択について
現在の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から制御を受け渡すようだ。