从 Oracle Solaris 11.1 开始,GRUB 2 是 x86 平台上的缺省引导装载程序。GRUB 2 使用的配置文件 (grub.cfg) 不同于 GRUB Legacy 使用的 menu.lst 文件。grub.cfg 文件包含大部分 GRUB 配置,包括所有的 Oracle Solaris 菜单项。与 menu.lst 文件不同,grub.cfg文件是完全通过 bootadm 命令进行管理。请勿直接编辑此文件。
另外,grub.cfg 文件不包含任何定制菜单项。对于定制菜单项,存在可供使用的一个额外配置文件 (custom.cfg)。将定制菜单项添加到 custom.cfg 之前,首先必须创建此文件,然后将其存储在与 grub.cfg 和 menu.conf 文件 (/pool-name/boot/grub/) 相同的位置。
在引导过程中,GRUB 会检查根池的顶层数据集的 boot/grub 子目录中是否存在 custom.cfg 文件。如果文件存在,GRUB 便会获取此文件并处理此文件中的任何命令,就像这些内容是以文本方式插入在主 grub.cfg 文件中一样。
例如,在采用 64 位 UEFI 固件的系统上,custom.cfg 文件条目可能如下所示:
menuentry "Windows (64-bit UEFI)" { insmod part_gpt insmod fat insmod search_fs_uuid insmod chain search --fs-uuid --no-floppy --set=root cafe-f4ee chainloader /efi/Microsoft/Boot/bootmgfw.efi }
在采用 BIOS 固件的系统上,此文件中的条目可能如下所示:
menuentry "Windows" { insmod chain set root=(hd0,msdos1) chainloader --force +1 }