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 があります。ネットワーク上で GRUB をブートする設定の説明はhttp://www.gnu.org/software/grub/manual/を参照ください。

<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/ ディレクトリに格納されます。

次ぎに、オプションとしてカーネルファイルの場所を持ったkernel コマンドが実行されます。Linux カーネルがブートすると、Linux ユーザーに馴染みのルートファイルシステムを設定します。オリジナルの GRUB ルートファイルシステムとそのマウントは無視されます。これらはカーネルファルをブートするためだけに存在します。

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