引导和关闭 Oracle® Solaris 11.2 系统

退出打印视图

更新时间: 2014 年 7 月
 
 

x86: GRUB 2 配置说明

GRUB 2 所用配置与 GRUB Legacy 所用配置完全不同。GRUB Legacy 配置通过 menu.lst 文件进行管理,但 GRUB 2 不使用 menu.lst 文件。相反,GRUB 2 使用配置文件 grub.cfg 存储相同类型的信息。与 menu.lst 文件类似,grub.cfg 文件位于根池的顶层 ZFS 数据集处 (/pool-name/boot/grub),例如 /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 文件的另一个特点是,只要更改引导装载程序配置,就会自动生成此文件。此外,在执行某些操作期间以及使用特定引导管理命令时也会自动生成此文件。如果需要,可以通过运行带有新的 generate-menu 子命令的 bootadm 命令来手动生成新的 grub.cfg 文件。仅当引导配置已损坏时,才使用此子命令创建新的 grub.cfg 文件。请参见如何手动重新生成 GRUB 菜单


注 - grub.cfg 文件的自动生成机制适用于已安装的系统。

    GRUB 2 配置存储在以下文件中以供参考:

  • grub.cfg-为 GRUB 2 使用的主配置文件。

  • /pool-name /boot/grub/menu.conf-为 Oracle Solaris 用于生成最终 grub.cfg 配置文件的文件。

    menu.conf 文件是一个单独的 GRUB 元配置文件,用于存储计算机可解析的 GRUB 2 配置表示。


    注 - 直接编辑此文件。
  • /pool-name/boot/grub/custom.cfg-是一个可编辑文件,与 grub.cfgmenu.conf 文件驻留在同一位置。custom.cfg 文件由管理员创建(缺省情况下不在系统上)。保留此文件的目的是在基本 GRUB 配置中添加更复杂的结构(菜单项或其他脚本信息)。

    grub.cfg 文件中引用 custom.cfg 文件。如果系统上存在 custom.cfg 文件,则此文件中的命令或指令将由 grub.cfg 文件进行处理。有关更多信息,请参见定制 GRUB 配置