本节介绍 GRUB 如何支持位于同一个磁盘上的多个操作系统。下面是一个基于 x86 的系统的示例,该系统在同一个磁盘上安装了 Solaris 10 10/08 OS、Solaris 9 OS、Linux 和 Windows。
表 15–2 GRUB 菜单配置样例
操作系统 |
在磁盘上的位置 |
---|---|
Windows |
fdisk 分区 0 |
Linux |
fdisk 分区 1 |
Oracle Solaris |
fdisk 分区 2 |
Solaris 9 OS |
片 0 |
Solaris 10 10/08 OS |
片 3 |
根据上述信息,GRUB 菜单应该如下所示:
title Oracle Solaris 10 findroot (pool_rpool,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title Solaris 9 OS (pre-GRUB) root (hd0,2,a) chainloader +1 makeactive title Linux root (hd0,1) kernel <from Linux GRUB menu...> initrd <from Linux GRUB menu...> title Windows root (hd0,0) chainloader +1 |
Oracle Solaris 片必须为活动分区。此外,请不要在 Windows 菜单下指示 makeactive。这样做将导致系统每次都引导 Windows。请注意,如果 Linux 已在主引导块上安装了 GRUB,则您不能访问 Oracle Solaris 引导选项。无论您是否将 Solaris 分区指定为活动分区,都无法访问 Solaris 引导选项。
在这种情况下,可以执行以下操作之一:
通过修改 Linux 上的菜单,从 Linux GRUB 进行链接装入。
链接装入是使用其他引导装载器装入不受支持的操作系统的机制。
通过运行带有 -m 选项的 installgrub 命令,将主引导块替换为 Solaris GRUB:
# installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/root-slice |
有关更多信息,请参见 installgrub(1M) 手册页。
有关 Oracle Solaris Live Upgrade 引导环境的信息,请参见《Oracle Solaris 10 9/10 安装指南:Solaris Live 升级和升级规划》。