2.4. GRUB 用語

GRUBを使用する前に理解すべき重要な事の1つにハードディスクやパーティションなど、 プログラムで使用するデバイスの参照用語です。これらの用語は複数のオペレーティング システムからブートするようにGRUBを設定する時に特に、重要な情報になります。

2.4.1. デバイスの名前

GRUBにてある特定のデバイスを参照する場合、 次の形式を使用してください。 (かっことコンマは構文的に大変重要ですので気をつけてください)

(<type-of-device><bios-device-number>,<partition-number>)

<type-of-device> にてGRUBが起動するデバイスの種類を指定します。 ハードディスクに対するhdと フロッピーに対するfdの2つが最も一般的なオプションです。 使用度の低いデバイスタイプでは、ネットワークディスクに対するnd があります。 ネットワーク上でGRIBをブートする設定の説明はhttp://www.gnu.org/manual/grub/を 参照ください。

<bios-device-number>はBIOSデバイス番号です。 プライマリIDEハードドライブには0、 セカンダリIDEハートドライブには1が番号付けされています。 この構文はカーネルがデバイスに使用するものとほぼ同様です。例えば、 カーネルに対するhdaaは GRUBに対するhd00に、hdbbhd11に似ています。

<partition-number> はデバイスのパーティション数を指定します。<bios-device-number>と同様、パーティションのほとんどが0から番号付けされますが、 BSDパーティションは文字にて指定され、a0に、 b1に匹敵します。

ティップヒント
 

GRUBのデバイスに対するナンバリングシステムが1ではなく0から開始することに注意してください。これは初めてGRUBを使用するユーザーによる間違えやすい点です。

例えば、システムに複数のハードドライブがある場合、 GRUBは一番目のハードドライブとして(hd0)を、 二番目のハードドライブをして(hd1)を参照します。 同様に、GRUBは一番目のドライブにある一番目のパーティションとして (hd0,0)を、二番目のハードドライブにある 3番目のパーティションとして(hd1,2)を参照します。

通常では次の規則に従って、GRUBのデバイスとパーティションに名前をつけてください。

2.4.2. ファイル名とブロック一覧

メニューリストなどのファイルを参照するコマンドをGRUBに入力する場合、デバイスとパーティション番号のすぐ後に絶対的なファイルパスを 指定してください。

このようなコマンドの構造は次の通りです。

(<device-type><device-number>,<partition-number>)</path/to/file>

この例では、<device-type>hdfdnd のいずれかに置き換えてください。<device-number>は整数に置き換えてください。そして、</path/to/file>をデバイスの最上位に対する絶対的なパスに置き換えてください。

パーティションの先頭ブロックに表示されるチェーンローダーなど 実際はファイルシステムに表示されないファイルをGRUBに指定することもできます。これらのファイルをロードするには、パーティションのどこにファイルがあるかをブロックごとに指定するブロック一覧を提供してください。 1つのファイルがいくつもの異なるブロックのセットで構成される場合もあるため、ブロック一覧には特別な構文が使用されます。 ブロックのオフセット番号とその後に続くオフセットポイントからのブロック数によって ファイルを含む各ブロックが指定されます。 ブロックのオフセットはコンマ区切りリストに順次記載されます。

次にブロック一覧の例を示します:

0+50,100+25,200+1

このブロック一覧の例では、パーティションの先頭ブロックから始まるファイルを指定し、 ブロック0からブロック49、ブロック99からブロック124、そしてブロック199を使用します。

チェーンロードを使用するオペレーティングシステムをGRUBでロードする場合は、 ブロック一覧の書き方を知っていると便利です。ブロック0から開始する場合はブロック のオフセット番号を省略してもかまいません。 例として、1番目のハードディスクドライブの先頭パーティションにある チェーンロードファイルの名前は次のようになります。

(hd0,0)+1

以下に、同じようなブロック一覧を指定する場合に、正しいデバイスとパーティションをルートで設定した後、GRUBのコマンド行で次のようにchainloaderコマンドを示します:

chainloader +1

2.4.3. ルートファイルシステムとGRUB

GRUBで言うルート ファイル システム違う意味の用語になります。GRUBのルートファイルシステムはLinuxのルートファイルシステムとは無関係で あると覚えておいてください。

GRUB ルート ファイル システム は指定デバイスの最上位部です。 例えば、イメージファイル (hd0,0)/grub/splash.xpm.gzは、(hd0,0)パーティション (実際はシステムの/boot/パーティション) の最上位(又はroot)にある /grub/ディレクトリに格納されます。

GRUBがrootパーティション(/bootパーティションに相当し、Linuxカーネルを格納する)をロードすると、カーネルファイルの格納場所をオプションとしてkernelコマンドが実行可能になります。Linuxカーネルがブートすると、Linuxユーザーに馴染みのルートファイルシステムを設定します。元のGRUBのルートファイルシステムとそのマウントは無視され、カーネルファイルをブートするためだけに存在します。

詳細については、項2.6rootコマンドとkernelコマンドを参照してください。