GRUBの導入準備

2001/01/27
概要

 GRUBをインストールするにはGRUBの実行実体であるいくつかのブートローダファイルとそれをハードディスクやフロッピーディスクにインストールするGRUBプログラムが必要です。因みにブートローダファイルは以下の7つのファイルです。

stage1
stage2
fat_stage1_5
ffs_stage1_5
minix_stage1_5
reiserfs_stage1_5
e2fs_stage1_5

 これらを用意する一番の理想的な方法はGRUBのソースを取得して、PC-UNX上でmakeすることです。ソースにはドキュメントなども同梱されており、またオンラインマニュアルもmakeされるので、今後長くGRUBを使っていくなら、マルチOSの中に一つはPC-UNIXを入れて、ここにGRUBを導入するといいと思います。今のところWindowsやDOS上でmakeするためのソースは用意されていません。

 ただ、Web上にはmake済みのブートローダファイルも配布されています。ブートローダはOSに依存しないので、makeを行うプラットフォームは関係ありません。配布されたこのブートローダファイルを使って、どんなOSでもブート可能です。また起動するだけでGRUBプログラムが走るようになっているブートフロッピーのイメージも配布されているので、make環境を作成しないでも、GRUBの導入準備はできます。

 ここでは双方の手続きについて説明します。

 


make環境の準備

 まずはPC-UNIX上でmakeする場合ですが、Linuxの場合で説明します。GRUBのページには、一応GCCバージョン2.9.1.0.23以降のGNU binutilsが必要だと書いてあります。無いならば予めGetしてインストールしておく必要がありますが、最新のディストリビューションなら、大体同梱されています。TurboLinux 6.0、Red Hat 6.2などには既に同梱されていました。

 ソースは、ftp://alpha.gnu.org/gnu/grub/から入手します。grub-バージョン番号.tar.gzという名称のアーカイブです。

 


Make

 これは極めて簡単です。最新のGRUBのソースアーカイブがtarボールで配布されていますから、まずtarボールの解凍からはじめます。解凍後は先頭ディレクトリに移って、「./configure」->「make」->「make install」と一般的なmake手順です。

 


 > tar xzvf grub-0.5.95.tar.gz
    ・
   ・・・tarのメッセージ
    ・
    ・
 > cd grub-0.5.95

 > ./configure
    ・
   ・・・configureのメッセージ
    ・
    ・
 > make
    ・
   ・・・makeのメッセージ
    ・
    ・
 > make install
    ・
   ・・・make installのメッセージ
    ・
    ・

 以上でmakeは完了です。

 これでGRUBプログラムはパスさえとおっていれば、grubと打つだけで実行できます。またブートローダファイルは、/usr/local/share/grub/i386-pcというディレクトリに格納されています。

 makeが完了すると、オンラインマニュアルなども利用できる状態になります。ただmanよりはinfoの方が遥かに詳細な記述を見ることができます。info grubとタイプして下さい。私が説明していることの全てが記述されています。全部英語ですが。

 ただし時折infoコマンドがうまく動かなかったり、思ったページが表示されなかったりすることがあるかもしれません。その場合はinfoの設定をみてほしいのですが、どうしてもだめな場合は、解凍したディレクトリ下のdocsというディレクトリにgrub.infoで始まるテキストファイル群としてあるので、直接viででも眺めてください。

 またこのディレクトリには設定ファイルmenu.lstのサンプルもあるので、参考にするといいと思います。

 


ブートフロッピーディスクの作成

 次にmake環境を作れない人、作りたくない人はブートフロッピーディスクを作成ます。

 フロッピーディスクイメージは、ソースと同じftp://alpha.gnu.org/gnu/grub/から入手します。名称はgrub-バージョン番号-i386-pc.ext2fsです。名称からも察しがつくように、このイメージでブートフロッピーを作成するとフロッピーはext2fsでフォーマットされたものになります。

 Linuxなら、あまり説明する必要もないでしょうが、以下のようなコマンドで、このイメージをフロッピーディスクに書き込みます。

[ddコマンドによるイメージのフロッピーへの書き出し]
 
 >
dd  if=grub-0.5.96-i386-pc.ext2fs  of=/dev/fd0

 Windows/DOS環境しかない人は、DOSのコマンドrawrite.exeを取得するのが一番いいのですが、入手方法があまりよくわからない人が多いでしょうから、若干面倒ですが、Windowsでも標準で用意されているdebug」コマンドを使った方法も紹介します。いずれもWindowsのDOS窓で実行できますが、NT/2000の「コマンドプロンプト」ではできません。Windows上で実行する場合でも、DOSコマンドなので、イメージファイルを短い名前、例えば「grub.img」などにしておいた方がいいでしょう。

 rawriteの場合は、以下のようなコマンドを打つだけです。

[RAWRITEコマンドによるイメージのフロッピーへの書き出し]
 
C:\> rawrite  grub.img  a:
 

 debugコマンドの場合は、予めイメージファイルのブロック数を計算します。ファイルサイズのバイト数を「512」で割ったです。今回私が取得した「grub-0.5.96.1-i386-pc.ext2fs」は173,056bytesだったので、338ブロックになります。

 ブロック数を算出したら、debugコマンドをイメージファイル名を引数にして実行します。内部コマンド「W(書き込み命令)で以下のように指定します。ブロック数以外は必ず以下の数値を指定して下さい。パラメータの意味は内部コマンド「?」で確認して下さい。

[DEBUGコマンドによるイメージのフロッピーへの書き出し]
 C:\> debug  grub.img
 -W  100  0  0  338
 
-Q

 C:\>

 以上で、ブートフロッピーディスクの完成です。PC-UNIX環境のない人にとっては唯一のGRUBインストール環境になるので、大切に保管しましょう。(まあまた作りなおしてもいいのですが)

 因みにこのブートフロッピーディスクは、単なるGRUBインストール用のフロッピーディスクではなく、GRUBのブートローダファイルも含んだ、ブートローダとして既に完結しているものです。このフロッピーをLinux上でマウントしてみると/boot/grubというディレクトリがあって、ブートローダファイルがそこに格納されています。また設定ファイルもここにあります。もしフロッピーブートでいいというのなら、これで既に導入まで完了したことになります。後は設定ファイルの編集をして、自分なりのブートメニューを作成するだけです。

 しかし多くの人はブートローダは基本的にハードディスクに導入するでしょう。特にWindows/DOS環境しかない人にとっては、前述したように上記フロッピーディスクはext2fsでフォーマットされているため、そこの中にある設定ファイルを編集することができないため、カスタマイズができません。ハードディスクへの導入は事実上必須となるでしょう。

 


ブートローダファイルの用意と配置

 ブートローダファイルの用意ですが、前述のように、makeをした人は、所定の位置にブートローダファイルが作成されることは説明しました。またブートフロッピーディスクを作った人もLinuxからなら、その中のブートローダファイルを取り出すことができることも説明しました。それ以外の人は、やはりソースと同じ場所からgrub-バージョン番号-i386-pc.tar.gzというファイル名のアーカイブをダウンロードして下さい。この中に格納されています。

 最後にブートローダファイルの配置です。makeを行なった人が、インストールにgrub-installシェルスクリプトを使うなら、ブートローダの配置もこのシェルが自動的に行なってくれるので、特に自分で配置する必要はありません。

 それ以外の場合は、基本的に特定の場所に配置する必要があります。どのパーティションに置くか決めるのです。もっともブートローダファイルの多くはインストール時にのみ必要なので、はっきり言って配置などどうでもいいのですが、stage2だけは今後GRUBの実行時にも参照されることになるので、ハードディスクにGRUBを導入する場合は、なるべく今後あまり変更することないであろうパーティションに配置した方が、導入のし直しをしなくて済みます。もっとも導入のやり直しなども大した作業ではないので、それほど神経質になる必要もありませんが、あまりやらないで済むに越したことはありません。

 ブートローダファイルは以下のファイルシステム上に置くことができます。

FAT16
FAT32
ext2fs
ReiserFS
BSD ffs
Minix fs

 パーティションを決めたら、そのパーティションに/boot/grub(FATなら\boot\grub)というディレクトリを作って、そこに全てのブートローダファイルを置いてください。ブートローダファイルを置くディレクトリは任意なのですが、/boot/grubはGRUBのデフォルト値なので、これにしておくとインストール時にあまり余計な指定をしないで済みます。特に不都合がない限り、このディレクトリにしましょう。

 以上で、GRUB導入準備の完了です!!

 


もどる