JavaScript is required to for searching.
跳过导航链接
退出打印视图
引导和关闭 Oracle Solaris 11.1 系统     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  引导和关闭系统(概述)

2.  x86: 管理 GRand Unified Bootloader(任务)

x86: GRUB 2 介绍

x86: GRUB 2 配置说明

x86: GRUB 2 分区和设备命名方案

x86: GRUB 2 和 GRUB Legacy 任务比较

x86: 将 GRUB Legacy 系统升级到支持 GRUB 2 的发行版

x86: 如何将 GRUB Legacy 系统升级到支持 GRUB 2 的发行版

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

x86: 在同一系统上维护 GRUB 2 和 GRUB Legacy 引导环境

x86: 使用 bootadm 命令管理 GRUB 配置

x86: 如何列出 GRUB 菜单项

x86: 如何手动重新生成 GRUB 菜单

x86: 如何维护 GRUB 菜单

x86: 如何设置 GRUB 菜单中指定引导项的属性

x86: 如何向 GRUB 菜单添加引导项

x86: 如何从 GRUB 菜单删除引导项

x86: 通过在引导时编辑 GRUB 菜单添加内核参数

x86: 通过编辑 GRUB 菜单在引导时添加 -B prop=val 内核参数

在引导时重定向 Oracle Solaris 控制台

x86: 定制 GRUB 配置

x86: GRUB 高级管理和故障排除

x86: 使用 bootadm install-bootloader 命令安装 GRUB 2

x86: 如何安装引导装载程序

x86: 如何在恢复根池后安装引导装载程序

x86: 如何在缺省位置以外的位置安装 GRUB

x86: 在已安装 GRUB 2 的系统上安装 GRUB Legacy

x86: 如何在已安装 GRUB 2 的系统上安装 GRUB Legacy

3.  关闭系统(任务)

4.  引导系统(任务)

5.  从网络引导系统(任务)

6.  对引导系统进行故障排除(任务)

索引

x86: 将 GRUB Legacy 系统升级到支持 GRUB 2 的发行版

本节提供了以下信息:

x86: 如何将 GRUB Legacy 系统升级到支持 GRUB 2 的发行版

对于支持将 GRUB 2 作为缺省引导装载程序的 Oracle Solaris 发行版的全新安装,在执行安装之前无需执行任何操作。

如果要至少升级到 Oracle Solaris 11.1,则必须先安装一些必备软件包,才能执行升级。这些软件包包含在 Oracle Solaris 软件包系统信息库中。

开始之前

将系统升级到支持 GRUB 2 的发行版之前,请执行以下操作:

  1. 成为管理员。

    《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 安装必备软件包。
    $ pkg update
  3. 将系统重新引导到刚在步骤 2 中创建的新的引导环境。
  4. 在新的引导环境中运行系统后,通过运行以下命令用完成升级所需的修复程序更新 pkg 软件包。
    $ pkg update pkg

    运行此命令可以更新名称与 *pkg 匹配的任何软件包,即包含 pkg 命令及其依赖项的软件包。

  5. 要完成到 Oracle Solaris 11.1 的升级,请再次运行 pkg update 命令,如下所示:
    $ pkg update --accept

    注 - 您必须通过指定 --accept 选项表示您同意并接受列出的软件包的许可证条款。


    最终的更新将 GRUB 2 安装为缺省系统引导装载程序。此更新还会根据 GRUB Legacy menu.lst 文件的内容创建 grub.cfg 文件。

    激活新的引导环境后,GRUB Legacy 配置将迁移到 GRUB 2,GRUB 2 将成为系统的缺省引导装载程序。按照其显示顺序将 Oracle Solaris 引导项从 menu.lst 文件复制到 grub.cfg 文件。还会迁移所有链式装载程序项。


    image:此图显示了已升级的系统上 GRUB 2 主菜单中的 GRUB Legacy 子菜单项。
    image:此图为显示新的 Oracle Solaris 项的 GRUB 2 主菜单。

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

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

x86: 在同一系统上维护 GRUB 2 和 GRUB Legacy 引导环境

您可以在具有 GRUB Legacy 引导环境的系统上激活 GRUB 2 引导环境,但是仅当 GRUB Legacy 引导环境可识别 GRUB 2 时才可以执行此操作。此外,您还可以从 GRUB 2 引导环境激活 GRUB Legacy 引导环境。在带有 GRUB Legacy 引导环境的系统上激活 GRUB 2 引导环境时,请记住,必须首先在当前引导环境中安装 GRUB 2 必备软件包,调用 pkg update 命令安装支持 GRUB 2 的 Oracle Solaris 发行版。请参见x86: 如何将 GRUB Legacy 系统升级到支持 GRUB 2 的发行版

引导环境通过 beadm 命令进行管理。请参见 beadm(1M)beadm create 命令用于创建新的引导环境时,还会为此引导环境自动创建一个菜单项。您可以通过使用 beadm list 命令显示系统上的所有引导环境:

$ beadm list
BE                      Active Mountpoint Space Policy Created
--                      ------ ---------- ----- ------ -------
oracle-solaris11-backup -      -          64.0K static 2012-03-29 11:41
oracle-solaris2         -      -          64.0K static 2012-03-29 11:41
solaris11u1                NR     /          3.35G static 2012-02-17 13:22

beadm 命令可用于 GRUB 2 和 GRUB Legacy 配置。GRUB 2 引导环境存在于引导环境列表中时,GRUB 2 会保留为缺省的引导装载程序。即使已激活某个 GRUB Legacy 引导环境,Oracle Solaris 也不会尝试将 GRUB Legacy 重新安装为缺省的引导装载程序。如果从系统删除了最后一个 GRUB 2 引导环境,则必须手动将 GRUB Legacy 安装为系统引导装载程序。如果系统包含 GRUB 2 必备软件包,则可以使用 bootadm install-bootloader -f 命令手动安装引导装载程序。请参见x86: 使用 bootadm install-bootloader 命令安装 GRUB 2。否则,可以使用 installgrub 命令。请参见 installgrub(1M)

通过使用 bootadm install-bootloader -f 命令手动将 GRUB Legacy 重新安装为缺省引导装载程序,会强制将 GRUB Legacy 安装为系统引导装载程序。要确保所有引导环境均保持可引导状态,必须从包含最新 GRUB Legacy 引导装载程序版本的引导环境运行此命令。此外,在重新安装 GRUB Legacy 之前,应通过使用 beadm 命令从系统删除所有 GRUB 2 引导环境。请参见x86: 如何在已安装 GRUB 2 的系统上安装 GRUB Legacy


注 - 请务必注意,在带有较旧的引导装载程序的系统上使用带有 -f 选项的 bootadm install-bootloader 命令时,较旧的引导装载程序必须能够读取引导磁盘上的 ZFS 版本。否则,GRUB 在引导时可能无法读取根池,从而导致系统无法引导。

如果出现这种情况,则必须通过从另一个引导环境引导或从恢复介质中引导并安装与您的池版本匹配的引导装载程序来安装较新的引导装载程序。请参见x86: 如何从介质进行引导以解决阻止系统引导的 GRUB 配置问题