GRUB 引导装载程序的某些版本只能从系统的前八个硬盘驱动器引导。尽管可以将操作系统 (operating system, OS) 和引导装载程序安装到与启用了选项 ROM 的主机总线适配器 (host bus adapter, HBA) 相连接的一系列驱动器中排在第九个或更高位置的驱动器,但是,在 OS 安装后重新引导系统时,GRUB 引导装载程序将在出现 GRUB 提示时挂起,并且不会执行磁盘 I/O 操作以从磁盘驱动器装入 OS。
受影响的软件:
Oracle Linux 6.1,使用统一可扩展固件接口 (Unified Extensible Firmware Interface, UEFI) BIOS 或 Legacy(非 UEFI)BIOS
Red Hat Enterprise Linux (RHEL 6.1),使用 UEFI BIOS 或 Legacy BIOS
SUSE Linux Enterprise Server (SLES) 11 SP1/SP2,使用 Legacy BIOS
Oracle Linux 5.7 和 5.8,使用 Legacy BIOS
RHEL 5.7 和 5.8,使用 Legacy BIOS
Oracle VM 3.0 和 3.1,使用 Legacy BIOS
发行版 1.0、1.1、1.2、1.3、1.4.4 和 1.5
解决方法:
根据您的操作系统和 BIOS 配置,选择下列解决方法之一。
解决方法 1(支持所有操作系统以及 Legacy BIOS 或 UEFI BIOS 配置):
重新排列磁盘驱动器,并将操作系统和引导装载程序重新安装到系统中前八个磁盘驱动器中的任何一个。此方法可能需要您进入 BIOS 设置实用程序,并禁用与不用于系统引导的磁盘驱动器相连接的 HBA 的选项 ROM。
有关进入 BIOS 设置实用程序并更改 HBA 的选项 ROM 设置的信息,请参见《Sun Server X3-2 管理指南》中的“配置选项 ROM 设置”。
解决方法 2(支持使用 Legacy BIOS 配置的 Oracle Linux 6.1 和 RHEL 6.1):
以下步骤详细描述了更新 OS 的 GRUB RPM,以及从挽救环境将 GRUB 重新安装到磁盘驱动器的 MBR 的过程。有关从挽救环境更新 GRUB MBR 引导代码的更多信息,请参见 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ap-rescuemode.html#Rescue_Mode-x86。
开始之前,您需要获取 Oracle Linux 6.2 或 RHEL 6.2 安装介质。
根据需要通过 Oracle Linux 6.2 或 RHEL 6.2 安装引导介质引导系统。
在安装提示符下,键入 linux rescue 进入挽救环境。
为安装介质创建一个目录。
mkdir /mnt/cd
挂载安装介质。
mount -o ro /dev/sr0 /mnt/cd
cp /mnt/cd/Packages/grub-0.97-75*rpm /mnt/sysimage
进入根分区上的更改根环境。
chroot /mnt/sysimage
yum localupdate /grub-0.97-75*rpm || rpm -Uvh /grub-0.97-75*rpm
重新安装 GRUB 引导装载程序。
/sbin/grub-install bootpart
其中 bootpart 是引导分区(通常为 /dev/sda)。
查看 /boot/grub/grub.conf 文件,因为可能需要其他条目以使 GRUB 控制其他操作系统。
重新引导系统。
reset /System
解决方法 3(支持使用 UEFI BIOS 配置的 Oracle Linux 6.1 和 RHEL 6.1):
以下步骤详细描述了通过从挽救环境将 GRUB RPM 更新到最新版本来更新 grub.efi 二进制文件的过程。有关从挽救环境更新 GRUB RPM 的更多信息,请参见 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ap-rescuemode.html#Rescue_Mode-x86。
开始之前,您需要获取 Oracle Linux 6.2 或 RHEL 6.2 安装介质。
根据需要通过 Oracle Linux 6.2 或 RHEL 6.2 安装引导介质引导系统。
在 UEFI 引导装载程序菜单中,选择 "rescue" 进入挽救环境。
为安装介质创建一个目录。
mkdir /mnt/cd
挂载安装介质。
mount -o ro /dev/sr0 /mnt/cd
cp /mnt/cd/Packages/grub-0.97-75*rpm /mnt/sysimage
进入根分区上的更改根环境。
chroot /mnt/sysimage
yum localupdate /grub-0.97-75*rpm || rpm -Uvh /grub-0.97-75*rpm
退出根环境。
chroot env
退出挽救模式。
重新引导系统。
reset /System