GRUB 2 は GRUB Legacy とまったく異なる構成を使用します。GRUB Legacy 構成は menu.lst ファイルから管理しますが、GRUB 2 は menu.lst ファイルを使用しません。代わりに、GRUB 2 は構成ファイル grub.cfg を使用して、同じタイプの情報を格納します。menu.lst ファイルと同様に、grub.cfg ファイルはルートプール /pool-name/boot/grub の ZFS データセットの最上位レベルにあり、たとえば /rpool/boot/grub/grub.cfg などです。
grub.cfg ファイルの構文は、bash スクリプトに基づいており、次の例に示す menu.lst ファイルで使用されている指令のような言語よりも複雑で強力です。
title title
bootfs pool-name/ROOT/bootenvironment-name
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive比較のために、次のように、同じ構成を grub.cfg ファイルに格納しています。
menuentry "<title>" {
insmod part_msdos
insmod part_sunpc
insmod part_gpt
insmod zfs
search --no-floppy --fs-uuid --set=root f3d8ef099730bafa
zfs-bootfs /ROOT/<BE name>/@/ zfs_bootfs
set kern=/platform/i86pc/kernel/amd64/unix
echo -n "Loading ${root}/ROOT/<BE name>/@$kern: "
$multiboot /ROOT/<BE name>/@/$kern $kern -B $zfs_bootfs
set gfxpayload="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x15;640x480x32"
insmod gzio
echo -n "Loading ${root}/ROOT/<BE name>/@/platform/i86pc/amd64/boot_archive: "
$module /ROOT/<BE name>/@/platform/i86pc/amd64/boot_archive
}grub.cfg ファイルと menu.lst ファイルのほかの大きな違いは、grub.cfg ファイルを編集しないことです。menu.lst ファイルでは、システムによって自動的に生成されるメニューエントリに加えて、ユーザー作成メニューエントリと、グローバル GRUB 構成ファイルの設定および変数の手動の変更をサポートしています。対照的に、grub.cfg ファイルは、各種 bootadm サブコマンドを使用して管理します。それらの多くはこのリリースで新しいものです。各種 bootadm サブコマンドにより、ほとんどのブートローダー管理タスクを管理できます。bootadm コマンドを使用して GRUB 構成を管理するを参照してください。
grub.cfg ファイルの別の機能は、ブートローダー構成を変更するたびに自動生成されることです。ファイルは、特定の操作時および特定のブート管理コマンドが使用されたときにも自動生成されます。必要に応じて、bootadm コマンドと新しい generate-menu サブコマンドを実行して、新しい grub.cfg ファイルを手動で生成できます。このコマンドは、ブート構成が破損した場合にのみ、grub.cfg ファイルを作成するために使用します。GRUBメニューを手動で再生成する方法を参照してください。
参考のため、GRUB 2 構成は次のファイルに格納されています。
grub.cfg – GRUB 2 によって使用されるメインの構成ファイルです。
/pool-name /boot/grub/menu.conf - Oracle Solaris によって、最終の grub.cfg 構成ファイルを生成するために使用されるファイルです。
menu.conf ファイルは、GRUB 2 構成のマシン解析可能な表現を格納する個別の GRUB メタ構成ファイルです。
/pool-name /boot/grub/custom.cfg - grub.cfg ファイルおよび menu.conf ファイルと同じ場所にある編集可能なファイルです。custom.cfg ファイルは、管理者によって作成されます (デフォルトでシステム上に存在しません)。このファイルは基本 GRUB 構成に複雑な構造 (メニューエントリや他のスクリプト情報) を追加する目的で予約されています。
custom.cfg ファイルは grub.cfg ファイル内で参照されています。custom.cfg ファイルがシステムに存在する場合、そのファイル内にあるコマンドや指令が grub.cfg ファイルによって処理されます。詳細は、GRUB 構成のカスタマイズを参照してください。