注意!
本ページの内容はOSのブートシーケンスやHDDの書き換えなど非常にデリケートな内容を扱っています。
これらの作業を行う場合はできるだけdisklessfun’s Wiki*さんのページを熟読し、自分が何を行おうとしているのか理解してから実行してください。熟読してもはじめて行う場合は失敗しやすいですのでデータのバックアップを取るなどして環境が破壊されても大丈夫なように十分な対策を行ってください。ここに書かれたことを行っての損害は一切持てませんので自己責任でお願いします。
マルチブートにおける二段階ブートの必要性
WindowsとLinux両方を入れてマルチブートするのが普通になってくると、Windowsを再インストールしたときにgrub(OS選択画面)が表示されなくなってWindowsしか起動できなくなるということが割と起こる。本来ならハードディスクのMBR(OSを起動するためのエントリポイント)をgrubへ書き換えてやれば元に戻るのだが、相当面倒な上に気づいたらWindowsをインストールした後だということがほとんどである。
そこでMBMと呼ばれるメタブートローダ(grubかwindowsどちらかを起動する)をインストールしてやることで、いちいちLinuxに依存するgrubをMBRにインストールせずとも自由にOSを選択できるようになる。
詳しくはこちらを参照。
- Tips: マルチブートするなら2段階ブート方式に統一しよう - disklessfun’s Wiki*
- Tips: grub2とgrub1の扱い方(様々な再セットアップ方法等) - disklessfun’s Wiki*
以下ではLinuxがインストールされておりgrubブートローダがMBRへ登録されている状態から、MBMを用いて二段階ブートを確立する手順を述べる。(windowsがインストールされているかは任意)
二段階ブートの確立手順
- まずMBMをインストールするためのUSBメモリを作る。
- 次にgrubのエントリポイントをMBRからPBRへ変更する。二段階ブート確立後はMBM→grub→Linuxの順で起動されるため、grubのエントリポイントはMBMから呼ばれるようにPBRへ変更する必要がある。なにか理由がなければPBRの位置はLinuxのルートが置かれているパーティションでいいだろう。手順の詳細はさきほどのサイトのこの項目に譲るが、簡単に書くと次の様になる。
- 最後にBIOSの設定からUSBメモリのブート優先度を最上位に設定し、USBメモリから起動させてMBMをインストールする。
以上により、MBM+grubの二段階ブート環境の構築は終わりである。
OSを再インストールする場合
Windows OS
Windows系のOSはMBRを強制的に書き換えるものがほとんどなので、いったん普通にインストールする。その後、さきほど作ったUSBメモリからMBMをインストールしてMBRを上書きする。これで元の二段階ブート環境が復元される。
LInux OS
Linux系の場合、インストール時のgrubの場所に最初からルートパーティションを設定しておけば、MBMの再インストールは必要ない。ただ、なにやらubuntu10.04ではgrubのPBRへのインストールはOSインストール時には失敗するようなので、いったんMBRへインストールし、その後上と同じ手順でgrubの場所を替え、MBMでMBRを上書きする必要がある。
2010/06/09追記
Tips: grub2とgrub1の扱い方(様々な再セットアップ方法等) - disklessfun’s Wiki*を参照してもらえばわかるが、ubuntuにおけるPBRまたは拡張パーティションからのブートの問題は、拡張パーティションのフラグがubuntuデフォルトではおかしいことにあるらしい。よって一度
# mount /dev/sda5 /mnt」、# grub-setup -f -r '(hd0,5)' '(hd0,5)
のようにコマンドして、パーティションのフラグをfに変更する必要があるようだ。
まとめ
以上、grubがインストールされている環境から二段階ブートへ変更する手順をできる限り単純に書いた。しかし、簡単に書いたつもりにも関わらず結構な長文になっているように、操作その物が非常に複雑である。そのため断念する人も多いかもしれないが、二段階ブートが確立できればOSの再インストールが非常に柔軟に行えるようになる。普通だとWindows/Linux混在のマルチブート環境では通常Windowsの再インストールは相当手間がかかるものだが、二段階ブートさえ出来れば自由に何度でも再インストールすることができるだろう。これは非常に壊れやすいWindows環境に取って大きなメリットである。もし二段階ブートにチャレンジしようという方は、disklessfun’s Wiki*さんのページを参考にしながらぜひチャレンジしてほしい。