GRUBを使用する前に理解すべき重要な事の1つにハードディスクやパーティションなど、 プログラムで使用するデバイスの参照用語です。これらの用語は複数のオペレーティング システムからブートするようにGRUBを設定する時に特に、重要な情報になります。
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が番号付けされています。 この構文はカーネルがデバイスに使用するものとほぼ同様です。例えば、 カーネルに対するhdaのaは GRUBに対するhd0の0に、hdbのbはhd1の1に似ています。
<partition-number> はデバイスのパーティション数を指定します。<bios-device-number>と同様、パーティションのほとんどが0から番号付けされますが、 BSDパーティションは文字にて指定され、aが0に、 bが1に匹敵します。
![]() | ヒント |
---|---|
GRUBのデバイスに対するナンバリングシステムが1ではなく0から開始することに注意してください。これは初めてGRUBを使用するユーザーによる間違えやすい点です。 |
例えば、システムに複数のハードドライブがある場合、 GRUBは一番目のハードドライブとして(hd0)を、 二番目のハードドライブをして(hd1)を参照します。 同様に、GRUBは一番目のドライブにある一番目のパーティションとして (hd0,0)を、二番目のハードドライブにある 3番目のパーティションとして(hd1,2)を参照します。
通常では次の規則に従って、GRUBのデバイスとパーティションに名前をつけてください。
ハードディスクドライブがIDEかSCSIかに関係なく、すべてのハードディスクドライブはhdで始まります。fdはフロッピーを意味します。
パーティションに関わらずデバイス全体を指定する場合は、カンマとパーティション番号を除いてください。これは、GRUBに特定のディスクのMBRを設定させる場合に重要です。たとえば、(hd0)は1番目のデバイスにあるMBRを指し、(hd3)は4番目のデバイスにあるMBRを指します。
複数のドライブデバイスが存在する場合は、BIOSに設定されたドライブブートの順番を 知ることが重要となります。システムにIDEドライブかSCSIドライブのどちらかしか存在しない 場合は簡単ですが、その両方が混在している時はブートパーティションのあるドライブの 種類を最初に確認することが重要となります。
メニューリストなどのファイルを参照するコマンドをGRUBに入力する場合、デバイスとパーティション番号のすぐ後に絶対的なファイルパスを 指定してください。
このようなコマンドの構造は次の通りです。
(<device-type><device-number>,<partition-number>)</path/to/file> |
この例では、<device-type>をhd、fd、nd のいずれかに置き換えてください。<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 |
GRUBで言うルート ファイル システム違う意味の用語になります。GRUBのルートファイルシステムはLinuxのルートファイルシステムとは無関係で あると覚えておいてください。
GRUB ルート ファイル システム は指定デバイスの最上位部です。 例えば、イメージファイル (hd0,0)/grub/splash.xpm.gzは、(hd0,0)パーティション (実際はシステムの/boot/パーティション) の最上位(又はroot)にある /grub/ディレクトリに格納されます。
GRUBがrootパーティション(/bootパーティションに相当し、Linuxカーネルを格納する)をロードすると、カーネルファイルの格納場所をオプションとしてkernelコマンドが実行可能になります。Linuxカーネルがブートすると、Linuxユーザーに馴染みのルートファイルシステムを設定します。元のGRUBのルートファイルシステムとそのマウントは無視され、カーネルファイルをブートするためだけに存在します。
詳細については、項2.6のrootコマンドとkernelコマンドを参照してください。