引导和关闭 Oracle® Solaris 11.2 系统

退出打印视图

更新时间: 2014 年 7 月
 
 

x86: 如何将 GRUB Legacy 菜单项迁移到 GRUB 2 中

升级到支持 GRUB 2 的 Oracle Solaris 版本后,所有 Oracle Solaris 菜单项会自动从 GRUB Legacy menu.lst 文件迁移到新的 grub.cfg 文件中。还会迁移所有链式装载程序项。重新引导系统后,只有那些已迁移的引导项会显示在主 GRUB 菜单中。对于要在主 GRUB 菜单中显示的任何其他引导项,必须手动对其进行转换并将其添加到 custom.cfg 文件中。请参见定制 GRUB 配置


注 - menu.lst 文件中的所有引导项均存在于该根池的 GRUB Legacy 子菜单中。

此外,请务必注意 GRUB 2 可直接引导所有受支持的 Oracle Solaris 11 发行版,以及 Oracle Solaris 10 发行版(从 Solaris 10 1/06 发行版开始)。可使用链式装入机制间接引导先前的 Oracle Solaris 发行版。您可以通过与添加其他定制项相同的方式将使用链式装入机制的菜单项添加到 custom.cfg 文件中。

尽管 GRUB 2 与 GRUB Legacy 的链式装入原理相同,但语法略有不同。在以下示例中,将项以链式装入方式装入到磁盘 0 上的主引导记录 (master boot record, MBR)。此类型的链式装入在 GRUB 2 未安装在此位置时有用。另请注意,此方式的链式装入仅适用于带有 BIOS 固件的系统(包括所有 Oracle Solaris 10 系统)。

menuentry "Boot from Hard Disk" {
               set root=(hd0)
               chainloader --force +1
       }

在以下示例中,Oracle Solaris 10 安装在第二个 DOS 分区。此外,GRUB Legacy 的 Oracle Solaris 10 版本安装在此分区的分区引导记录 (partition boot record, PBR) 中。

menuentry "Solaris 10" {
               set root=(hd0,msdos2)
               chainloader --force +1
       }

在此示例中,以链式装入方式向 Oracle Solaris 10 GRUB Legacy 菜单装入项。其结果是存在两个级别的菜单:一个是从 GRUB 2 以链式装入方式装入到 Oracle Solaris 10 GRUB Legacy 菜单,另一个是从 Oracle Solaris 10 GRUB Legacy 菜单引导 Oracle Solaris 10 内核。要引导系统,必须选择相应的 Oracle Solaris 10 菜单项。

除了从 menu.lst 文件转换的 Oracle Solaris 菜单项外,每个包含 GRUB Legacy menu.lst 文件的根池还存在一个子菜单。此子菜单包含各自 menu.lst 文件中的所有菜单项,并提供访问所有 menu.lst 项的权限以最大程度地实现向后兼容性。

在引导回不包含 GRUB 2 的必备软件包的 Oracle Solaris 引导环境时,对引导配置的更改(例如,使用 beadmbootadm 命令进行的更改)对相应根池的 menu.lst 文件进行。如果之后重新引导系统,GRUB 2 菜单不会反映这些更改。只有相应根池的 Legacy GRUB 子菜单可反映这些更改。

此外,在引导可识别 GRUB 2 的引导环境之后,这些更改才会显示在 GRUB 菜单中,并重新生成 grub.cfg 文件。只要有可能,在系统运行使用 GRUB 2 的引导环境时,menu.lst 文件就会与 grub.cfg 文件同步。只要 beadmbootadm 命令用于更改 GRUB 2 配置,就会发生此同步。