系统管理指南:基本管理

Procedurex86: 如何通过编辑 menu.lst 文件修改引导行为

出于以下某一原因,您可能需要修改 menu.lst 文件:

开始之前

因为只有活动的 GRUB menu.lst 文件可用于引导系统,所以请确保编辑正确的文件。更改任何其他 GRUB menu.lst 文件不会对引导系统时显示的菜单产生任何影响。

活动 menu.lst 文件的位置随您的系统具有 UFS 根还是 ZFS 根而异。

可以使用带有 list-menu 子命令的 bootadm 命令确定活动 GRUB menu.lst 文件的位置。


# bootadm list-menu

有关 bootadm 命令的更多信息,请参见 bootadm(1M) 手册页。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要向活动 menu.lst 文件中添加新的 OS 项,请使用文本编辑器修改该文件。

    menu.lst 文件中的注释提供了添加新的 OS 项所必需的信息。

    以下是运行具有 ZFS 引导支持的发行版的系统中的 menu.lst 文件示例。menu.lst 文件中的引导项随您所运行的 Oracle Solaris 发行版而异。


    #---------- ADDED BY BOOTADM - DO NOT EDIT ----------
    title Solaris Solaris 10 s10x_nbu6wos_nightly X86
    kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
    module /platform/i86pc/boot_archive
    #---------------------END BOOTADM--------------------

    注意 – 注意 –

    请不要直接编辑 menu.lst 文件的原始内容。要对该文件中的任何 OS 项进行更改,请手动编辑该文件以复制现有内容。然后,对所复制的内容进行修改。

    另请注意:当手动向文件中添加新项时,绝不包含安全注释,例如,“Added by bootadm”。系统将保留这些注释备用。不使用这些注释可以确保这些项在软件升级期间保持完整无损。


    如果您已添加除缺省项以外的任何附加项,请手动进行等效更改。

    如果原始 menu.lst 文件中存在 [-B *] 和 [*] 标志,则必须保留这些标志。另外,故障安全项应该总是具有 -s 标志。

  3. 添加必需的信息之后,保存该文件。

    请注意,对该文件所做的任何更改将在下次重新引导系统时生效。


    提示 –

    如果您正在运行 Linux,然后安装 Oracle Solaris,则当系统重新引导时,Linux 项不会显示在 GRUB 菜单中。在安装或升级系统之前,请保存包含 Linux 信息的 menu.lst 文件的副本。安装后,请将 Linux 信息添加到 Solaris 分区中新近创建的 menu.lst 文件中。


    因为您对 menu.lst 文件所做的更改与 Oracle Solaris OS 不直接相关,所以无法使用 eeprom 命令进行这些更改。您必须直接编辑该文件。请注意, 软件升级过程会保留您对 menu.lst 文件所做的任何更改。


    注意 – 注意 –

    GRUB 可以引导 Linux 和 Oracle Solaris。但是,Linux GRUB 不能引导 Oracle Solaris。

    请始终确保满足以下条件之一:

    • fdisk 分区是活动分区,且该分区安装了 GRUB,并且 menu.lst 文件是活动的 GRUB 菜单。

    • Oracle Solaris GRUB 被安装到主引导记录 (Master Boot Record, MBR),并且它引用 fdisk 分区中的 menu.lst


    有关与每个 Oracle Solaris 发行版相关的 GRUB menu.lst 的详细描述,请参见 x86: 受支持的 GRUB 版本


示例 11–6 具有 Oracle Solaris ZFS 引导装载器的系统上的 menu.lst 文件

以下示例说明 menu.lst 文件在安装了 Oracle Solaris ZFS 引导装载器的系统中的样子。缺省情况下,此系统将从 ZFS 根文件系统引导。请注意,该文件的内容随安装类型而异。

全新安装或标准升级:


title Solaris 10 s10x_nbu6wos_nightly X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

Oracle Solaris Live Upgrade


title be1
findroot (BE_be1,0,a)
bootfs rpool/ROOT/szboot_0508
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title be1 failsafe
findroot (BE_be1,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-sa


示例 11–7 具有 UFS 引导装载器的系统中的 menu.lst 文件

以下示例说明 menu.lst 文件在安装了 UFS 根文件系统的系统中的样子。缺省情况下,此系统将从 UFS 根文件系统引导。

全新安装或标准升级:


title Solaris 10 s10x_nbu6wos_nightly X86
findroot (rootfs0,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

Oracle Solaris Live Upgrade:


title be1
findroot (BE_be1,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive

title be1 failsafe
findroot (BE_be1,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe