本节介绍了基于 GRUB 的引导的基础知识,并介绍了 GRUB 菜单。
安装 Solaris OS 时,在缺省情况下,系统上会安装两个 GRUB 菜单项。第一项是 Solaris OS。第二项是故障安全引导归档文件,将用于系统恢复。作为 Solaris 软件安装和升级过程的一部分,Solaris GRUB 菜单项将自动安装和更新。这些项由 OS 直接管理,不应该手动编辑。
在标准 Solaris OS 安装过程中,无需修改系统 BIOS 设置即可将 GRUB 安装在 Solaris fdisk 分区上。如果 OS 不在 BIOS 引导磁盘上,需要执行以下操作之一:
修改 BIOS 设置。
使用引导管理器引导至 Solaris 分区。有关更多详细信息,请查看您的引导管理器。
首选方法是在引导磁盘上安装 Solaris OS。如果计算机上安装了多个操作系统,可以向 menu.lst 文件中添加项。这些项将会在下次引导系统时显示在 GRUB 菜单上。
有关多个操作系统的其他信息,请参见《系统管理指南:基本管理》中的“在 GRUB 引导环境中如何支持多个操作系统”。
执行基于 GRUB 的网络引导时需要为 PXE 客户机配置的 DHCP 服务器和提供 tftp 服务的安装服务器。DHCP 服务器必须能够响应 DHCP 类、PXEClient 和 GRUBClient。DHCP 响应必须包含以下信息:
文件服务器的 IP 地址
引导文件 (pxegrub) 的名称
rpc.bootparamd,执行网络引导时服务器端通常需要该程序,而基于 GRUB 进行网络引导时不需要。
如果没有可用的 PXE 或 DHCP 服务器,可以从 CD-ROM 或本地磁盘装入 GRUB。然后可以手动配置 GRUB 中的网络并从文件服务器上下载多引导程序和引导归档文件。
有关更多信息,请参见《Solaris 10 8/07 安装指南:基于网络的安装》中的“使用 PXE 通过网络进行引导和安装概述”。
启动基于 x86 的系统时,会显示 GRUB 菜单。该菜单提供用于选择的引导项列表。引导项是安装在系统上的 OS 实例。GRUB 菜单是基于 menu.lst 文件的,该文件是一个配置文件。menu.lst 文件由 Solaris 安装程序创建并可以在安装后进行修改。menu.lst 文件指定在 GRUB 菜单中显示的 OS 实例列表。
如果安装或升级 Solaris OS,则会自动更新 GRUB 菜单。然后,该 Solaris OS 将显示为新的引导项。
如果安装 Solaris OS 以外的 OS,必须修改 menu.lst 配置文件以包含新的 OS 实例。添加新的 OS 实例可使新的引导项在下次引导系统时出现在 GRUB 菜单中。
在以下示例中,GRUB 主菜单显示了 Solaris 和 Microsoft Windows 操作系统。还列出了 Solaris Live Upgrade 引导环境,命名为 second_disk。请参见以下每个菜单项的说明。
GNU GRUB version 0.95 (616K lower / 4127168K upper memory) +-------------------------------------------------------------------+ |Solaris | |Solaris failsafe | |second_disk | |second_disk failsafe | |Windows | +-------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
指定 Solaris OS。
指定在 Solaris OS 损坏时可用于恢复的引导归档文件。
指定 Solaris Live Upgrade 引导环境。second_disk 引导环境是作为 Solaris OS 的副本创建的,并使用 luactivate 命令升级和激活。该引导环境可用于引导。
指定 Microsoft Windows OS。GRUB 会对这些分区进行检测,但不会验证该 OS 是否能够引导。
GRUB menu.lst 文件列出了 GRUB 主菜单的内容。GRUB 主菜单列出了安装在系统上的所有 OS 实例的引导项,包括 Solaris Live Upgrade 引导环境。Solaris 软件升级过程保留了您对该文件所做的任何更改。
对 menu.lst 文件所做的任何修订将与 Solaris Live Upgrade 项一起显示在 GRUB 主菜单上。对该文件所做的任何更改将在下次重新引导系统时生效。您可以出于以下目的修订该文件:
要添加非 Solaris 操作系统的 GRUB 菜单项
要自定义引导行为,如在 GRUB 菜单上指定缺省 OS
请勿使用 GRUB menu.lst 文件修改 Solaris Live Upgrade 项,因为修改该项会导致 Solaris Live Upgrade 失败。
尽管可以使用 menu.lst 文件自定义引导行为,如使用内核调试程序引导,但首选的自定义方法是使用 eeprom 命令。如果使用 menu.lst 文件来自定义,则在软件升级过程中,Solaris OS 项可能会被修改,对文件的更改随后可能会丢失。
有关如何使用 eeprom 命令的信息,请参见《系统管理指南:基本管理》中的“如何使用 eeprom 命令设置 Solaris 引导参数”。
menu.lst 文件样例如下所示:
default 0 timeout 10 title Solaris root (hd0,0,a) kernel /platform/i86pc/multiboot -B console=ttya module /platform/i86pc/boot_archive title Solaris failsafe root (hd0,0,a) kernel /boot/multiboot -B console=ttya -s module /boot/x86.miniroot.safe #----- second_disk - ADDED BY LIVE UPGRADE - DO NOT EDIT ----- title second_disk root (hd0,1,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title second_disk failsafe root (hd0,1,a) kernel /boot/multiboot kernel/unix -s module /boot/x86.miniroot-safe #----- second_disk -------------- END LIVE UPGRADE ------------ title Windows root (hd0,0) chainloader -1 |
指定超时期满后要引导的项。要更改缺省值,可以通过更改编号指定列表中的另一项。第一个标题的计数从零开始。例如,将缺省值更改为 2 以自动引导至 second_disk 引导环境。
指定了在引导缺省项前等待用户输入的时间(秒)。如果未指定超时值,则需要选择一项。
指定操作系统的名称。
如果是 Solaris Live Upgrade 引导环境,则 OS 名称就是当创建新引导环境时所赋予的名称。在上例中,Solaris Live Upgrade 引导环境名为 second_disk。
如果是故障安全引导归档文件,则该引导归档文件用于恢复损坏的主 OS。在上例中,Solaris 故障安全和 second_disk 故障安全是 Solaris 和 second_disk 操作系统的恢复引导归档文件。
指定要装入文件的磁盘、分区和片。GRUB 会自动检测文件系统类型。
指定多引导程序。kernel 命令后必须始终跟有多引导程序。multiboot 后面的字符串被传送给 Solaris OS(没有解释)。
有关多个操作系统的完整描述,请参见《系统管理指南:基本管理》中的“在 GRUB 引导环境中如何支持多个操作系统”。
必须始终使用 bootadm 命令查找 GRUB 菜单的 menu.lst 文件。使用 list-menu 子命令查找活动的 GRUB 菜单。menu.lst 文件列出了安装在系统上的所有操作系统。该文件的内容指定在 GRUB 菜单上显示的操作系统的列表。如果想对该文件进行更改,请参见《Solaris 10 8/07 安装指南:Solaris Live Upgrade 和升级规划》中的“查找 GRUB 菜单的 menu.lst 文件(任务)”。