ハードディスクにWindows だけでなく、Linux(Vine)や、BSDをいれているので、インストールをして遊んでいるうちにどのOSも立ち上がらなくなってしまうことがよくあります。
そんなときに役立つのが、GRUB です。
GRUBを使用すると、起動時にメニュー形式でOSを選ぶことができるだけでなく、トラブル時には希望するOSをフロッピー1枚で選択起動することができるようになります。
特に、Linuxカーネルを直接起動できるので、Linuxをインストールする人にはおすすめです。
1 ダウンロード
GRUBはftp://alpha.gnu.org/gnu/grub/にあります。ここからファイルを2つ持ってきます。
(1) Windows上に置くファイルです。grub-0.97-i386-pc.tar.gz
(2) フロッピーに置くファイルです。grub-0.97-i386-pc.ext2fs
2 Windowsでの設定
(1) まず、grub-0.97-i386-pc.tar.gzを解凍します。
解凍は、「解凍レンジ」や「eo」など、tar、gzを解凍できるソフトを使ってください。
(2) Windows のCドライブに、\boot\grub ディレクトリを作ります。
ここに解凍したファイルをコピーします。
3 GRUBのフロッピーを作る
(1) フォーマットしたフロッピーに、grub-0.97-i386-pc.ext2fs を書き込みます。
ただし、フロッピーの先頭に書く必要があるので、通常のコピーのコマンドではうまくいきません。
rawrite.exeを使って、フロッピーの先頭に書きこみます。
MS−DOSプロンプト画面で、
rawrite -f grub-0.97-i386-pc.ext2fs -d a
とします。
(2) Linuxを使う人はrawriteをみんな持っていると思いますが、Windows上で使うことのできるプログラムがあります。(Rawrite for windows)
4 起動時に表示されるメニューを作る
複数のOSをインストールしている場合に、メニュー形式で選択して希望のOSを起動できるように、menu.lstファイルを作ります。
(1) Linux上でソースからコンパイルしてGRUBを作る場合には、menu.lstファイルが手にはいるのですが、ここに書いてある方法ではついてきません。そこで、
オリジナルのmenu.lstを持ってきました。
(2) OSをどのパーティションにインストールしたかによって、このファイルの中の設定を変更しなければなりません。
最初のパーティションにWindowsを、4番目のパーティションに Vine Linux を、7番目のパーティションに SUSE を置いた場合の、menu.lstの例です。
必要に応じて、エディタで修正してください。
(3)修正後のファイルを、Windowsのドライブの\boot\grubに置きます。
5 GRUBのインストール
GRUBをハードディスクの先頭部分に書き込みます。
(1) フロッピーをPCにいれて、再起動します。
(2) grub> と表示されたら、
root (hd0,0)
setup (hd0)
と2行入力します。これで、ハードディスクのMBRにGRUB(の一部)が書き込まれます。
(3) reboot
と入力すると再起動します。フロッピーを取り出しておいてください。
(4) menu.lstに間違いがなければ、きっとメニューが表示されます。
好きなOSを起動してください。
6 修正
GRUBのいいところは、設定が間違っていても、GRUBをいれたフロッピーで再起動すれば何度でも設定をやり直すことができる点です。
GRUBでは、フロッピーで起動して grub> が表示されているときに入力するコマンドとmenu.lstに書くコマンドとが同じです。
ですから、うまく設定できない場合は、何度かフロッピー起動でコマンド入力を試行錯誤し、うまくいったものを、Windowsを再起動して、Cドライブ上のmenu.lstに書き込めばいいのです。
そして再度、5の手続きで、root とsetup を使ってハードディスクからのGRUB起動を有効にします。
あとは、フロッピーは不要です。
7 コマンドの例示
(1) Windowsを起動したい場合
Windowsはたいていの人がCドライブにインストールしているので、この手順を変更する必要はないと思います。
rootnoverify (hd0,0)
makeactive
chainloader +1
boot
(2) VineLinuxを起動する場合
ルートの場所だけでなくカーネルがある場所をGRUBに教えなければなりません。
また、カーネルにパラメータを渡す場合にはGRUBが渡すので、menu.lstにそのパラメータを書きこんでおく必要があります。
3番目のパーティションにLinuxをインストールし、カーネルのvmlinuzが/bootにある場合の起動コマンドです。
root (hd0,2)
kernel /boot/vmlinuz root=/dev/hda3 initrd /boot/initrd.img
boot
8 Linux側の設定は
HD上のどれか1つのOSに\boot\grubのディレクトリとGRUBのファイルがあればいいのですが、私の場合あちこちをよく壊すので、Windowsだけでなく、LinuxのパーティションにもGRUBのためのファイルを置いています。
Windowsの場合と同様に、解凍したファイルを、/boot/grub に置くだけです。
ちなみに、石橋をたたいても渡らない慎重な人の場合、すべてのパーティションに置きまくってしまうのがいいでしょう。
9 106キーボードですか
そうそう、キーボードが日本語106キーの場合、フロッピー起動時のコマンド入力で、=、(、)、+のキーの位置がわからないでしょうから、書いておきます。
( shift 9
) shift 0
= ^
+ shift ^
10 すでにLinuxが確実に起動する人の場合
ところで、なんとなく他のブートセレクタを使ってみたいという程度の気持ちの人は、無理にGRUBを使う必要はないと思います。
おすすめは、Multiple Boot Manager です。
GRUBの設定を間違ってMBRを壊したときにも(私の場合はGRUBのバージョン0.93で壊れました。ひどいぞsetupコマンド。)、簡単に修復できますし、おすすめです。