パピーリナックス(Puppy Linux)には標準のブートローダとして Grub4Dos が採用されています。パピーには設定用のGUI (Grub4Dos config) が付いていて、GUIにしたがえば他のOSとのデュアルブート、マルチブートも簡単になっています。
しかし逆に他のブートローダに慣れていると、戸惑うこともあるでしょう。他のブートローダとの違いを中心に、Grub4Dosの仕組みを解説します。
古典的なブートの仕組み
パソコン(PC)の電源を入れると、ROMに書き込まれているBIOSが最初に起動します。BIOSは内蔵HDDの先頭部分にあるMBRに制御を移します。MBRは自HDD内のパーティションの中から bootフラグを目印に起動すべきパーティションを選び、そのブートセクタ PBSにバトンタッチ、PBSは自パーティション内にあるブートローダを探し当て、起動します。この流れは次のようになります。
BIOS → MBR → PBS → ブートローダ → OSの起動
マルチブート
bootフラグは1台のHDDに1つしか設定できません。この手順では1台のHDDに1つのOSしかインストールできないということになります。
昔は1台のコンピュータに複数のOSという想定をしていなかったのでしょう。そこでデュアルブート、マルチブートの仕組みを新たに考えなければいけませんでした。この歴史がマルチブートの仕組みを複雑で理解しにくいものにしているのかもしれません。
代表的な方法はブートローダの起動まで従来どおりの手順を辿り、ブートローダから先に分岐を設ける方法です。Grub2の場合を説明します。HDDにパーティションを作って Grub2を置いておき、bootフラグはこのパーティションに付けます。従来どおり BIOS → MBR → PBS(2) を経由してブートローダ Grub2 に辿り着きます。
Grub2 は、このPCにインストールされている複数のOSの選択メニューを出します。行き先が Linux の場合は直接これを起動しますが、行き先が Windowsの場合は、それがインストールされているパーティションの PBSに制御を移します。Grub2 から Windows を起動する制御の流れは次のようになります。
BIOS → MBR → PBS(2) → ブートローダ(grub2) → PBS → ブートローダ(bootmgr) → Windowsの起動
Grub4Dosによるマルチブート
Grub4Dosの設置(インストール)にはいろんな方法がありますが、Grub4Dosを MBRにインストールすると全体の流れがすっきりとします。
この方法では MBR を書き換えます。書き換えられたMBR(Grub4Dos)はブートローダ grldr をPC内から探し、それに制御を移します。そこで grldr がPC内のOSの選択メニューを出します。
Grub2とは違って Grub4Dosは Windowsのブートローダ bootmgr を直接起動します。 このときの Windows起動の流れは次のようになります。
BIOS → MBR(Grub4Dos) → ブートローダ(grldr) → ブートローダ(bootmgr) → Windowsの起動
この場合、PBSを経由しません。したがって bootフラグも参照しません。ただし BIOSによっては bootフラグの無い HDDをスキップするものがあるので、従来との互換性のため bootフラグは(HDD内のどこかのパーティションに)付けておくほうがいいです。
Frugalインストールの起動
PBSを経由しないということは起動手順を短縮する以上の意味があります。それは、1つのパーティションに複数のOSを選択、起動できるということです。逆に PBSを経由することは、1つのパーティションにはただ1つのOSを想定していることになります。
同じパーティションに他のOSと同居できる、あるいは1つのパーティションに複数のパピーをインストールできる Frugalインストールと Grub4Dosは、とても相性が良いということです。
WindowsからGrub4Dosへのリレー
Windows上でパピーのインストールを自動的に行う、Windows用インストーラ付きパピー(.exe)が供給されています。このインストーラも Grub4Dosを利用していますが、さきのものと少し異なっています。
Windows用インストーラは MBR から Windowsのブートマネージャ bootmgr を起動するところまではそのままに、bootmgr の機能を利用して grub4Dosに分岐しています。このときのパピー起動の流れは次のようになります。
BIOS → MBR → PBS → bootmgr → grldr → パピー
何らかの方法で grldr に制御を移すことができれば、あとは PC内のどの HDDでも、どのパーティション内のどのフォルダでも探し当て、起動することができます。
Windows/Ubuntu Linux/パピー
Windows Vista以降でのブートローダは bootmgr です。Ubuntu Linux では Grub2 を標準のブートローダとして採用しており、パピーでのそれは Grub4Dos です。
Windowsのブートローダは Windowsのことしか知りません。Ubuntu の Grub2 は Frugalインストールを知りません。パピーの Grub4Dos はパピーの Frugalインストールを知っており、また他のLinuxや Grub2、Windowsも起動できます。
Windowsとパピー、それに他のLinuxを1台のPCに混在させることはできますが、それらを起動するのは Grub4Dosを使うのがもっともシンプルだということです。
関連記事:
パピー用語集: Grub4Dos
Grub4Dosの使い方