出于以下某一原因,您可能需要修改 menu.lst 文件:
添加新的 OS 项
添加 GRUB 控制台重定向信息
因为只有活动的 GRUB menu.lst 文件可用于引导系统,所以请确保编辑正确的文件。更改任何其他 GRUB menu.lst 文件不会对引导系统时显示的菜单产生任何影响。
活动 menu.lst 文件的位置随您的系统具有 UFS 根还是 ZFS 根而异。
对于 UFS 根,活动 menu.lst 文件为 /boot/grub/menu.lst。
可以使用带有 list-menu 子命令的 bootadm 命令确定活动 GRUB menu.lst 文件的位置。
# bootadm list-menu |
有关 bootadm 命令的更多信息,请参见 bootadm(1M) 手册页。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
要向活动 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 标志。
添加必需的信息之后,保存该文件。
请注意,对该文件所做的任何更改将在下次重新引导系统时生效。
如果您正在运行 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 版本。
以下示例说明 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 |
以下示例说明 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 |