Java Solaris 加入Sun中国技术社区 我的社区 注册说明

BigAdmin 系统管理门户网站
专题文章:GRUB 和 Solaris 10 1/06 操作系统常见问题:用于 x86 平台的新引导加载器

GRUB 和 Solaris 10 1/06 操作系统常见问题:用于 x86 平台的新引导加载器

2005 年 12 月

一般问题
  1. 什么是 GRUB?
  2. GRUB 也是 SPARC 平台上的 Solaris 操作系统的新引导加载器吗?
  3. 我必须将 x86 计算机升级到 Solaris 10 1/06 操作系统才能获取 GRUB 吗?
  4. 如何使系统始终出现在 Solaris 操作系统的 GRUB 菜单上?
  5. 我希望系统始终保持在 GRUB 菜单上,而不自动进行引导。应该如何操作?
  6. 我可以使用 GRUB 引导旧 Solaris 发行版吗?
  7. 我已在 fdisk 分区上安装了新的 Solaris 发行版,并且旧 Solaris 发行版位于同一分区的另一个分片上。如何引导旧发行版?
  8. 我编辑了 /boot/grub/menu.lst,但 GRUB 屏幕上并未显示这些更改。
  9. 如何设置 netinstall 服务器以便为多个 Solaris 映像提供服务?
  10. 我能否使用 pxelinux 加载 Solaris 操作系统?
  11. 在没有 PXE/DHCP 服务器的情况下,能否从网络进行引导?
  12. 引导新的 Solaris 发行版时,如何应用驱动程序更新?
  13. prtconf -pv 输出没有提供我以前获取的信息。应该怎么办?
  14. 我有一台旧计算机,但没有 ACPI 表。我仍然可以引导 Solaris 操作系统吗?
  15. 我能否自定义故障安全归档,并将其作为可移植恢复映像放在 USB 存储棒中?
  16. 如何将 GRUB 控制台重定向到串行线路?
  17. 在进入故障安全模式并修复配置文件后,不知道什么原因就损坏了引导归档。无论重新引导到故障安全模式多少次,都 无法使其重新生成归档以使我能够进行引导。
  18. GRUB 通常安装在 Solaris 分片中。能否将其安装在主引导记录 (Master Boot Record, MBR) 中?
  19. 我在系统中安装了 Solaris 操作系统,但无法引导它。
  20. 是否应该在安装时创建 Solaris 引导分区?
 
 

1.
问:
什么是 GRUB?
答:
对于 x86 平台上的 Solaris 操作系统,新的引导加载器基于流行的开源 GNU GRUB(Grand Unified Bootloader,Grand 统一引导加载器)项目。引导加载器是最初开机时运行的软件程序。它负责将操作系统内核加载到内存中,然后将控制权交给该内核。

返回页首


2.
问:
GRUB 也是 SPARC 平台上的 Solaris 操作系统的新引导加载器吗?
答:
不是,GRUB 仅用于 x86 系统上的 Solaris 操作系统(从 Solaris 10 1/06 发行版开始)。(在 Solaris 10 1/06 操作系统正式版发行之前, OpenSolaris 项目Solaris Express 项目中将提供新引导加载器。)

返回页首


3.
问:
我必须将 x86 计算机升级到 Solaris 10 1/06 操作系统才能获取 GRUB 吗?
答:
升级是一种获取新引导加载器的机制。另一种方法是安装 Solaris 10 安全修补程序,其中包含内核修补程序 118844-21(或更高版本)。

返回页首


4.
问:
如何使系统始终出现在 Solaris 操作系统的 GRUB 菜单上?
答:
通过运行以下命令,在主引导区中安装 Solaris GRUB stage1

installgrub -m <stage1> <stage2> /dev/rdsk/<root slice>

有关 "stage1" 和 "stage2" 参数的详细信息,请参见 installgrub(1) 命令。

返回页首


5.
问:
我希望系统始终保持在 GRUB 菜单上,而不自动进行引导。应该如何操作?
答:
/boot/grub/menu.lst 中设置 timeout=-1

返回页首


6.
问:
我可以使用 GRUB 引导旧 Solaris 发行版吗?
答:
不能直接使用。早期的 Solaris 内核不符合多重引导规范,因而 GRUB 不能直接加载这些内核。但是,可以在 /boot/grub/menu.lst 中将以下行添加到 GRUB 菜单上以进行链式加载:
       

title Solaris 3/05
root (hd0,1) <== Solaris partition
chainloader +1
makeactive

必须使用 makeactive 命令才能使链式加载器正常工作。

返回页首


7.
问:
我已在 fdisk 分区上安装了新的 Solaris 发行版,并且旧 Solaris 发行版位于同一分区的另一个分片上。如何引导旧发行版?
答:
确保旧 Solaris 版本的根 fs 位于带有根标记的分片上。GRUB 的 Solaris 引导分片必须具有根以外的任何标记。这不是安装后的缺省设置;用户必须使用 format(1M) 编辑分片标记。

如果旧 Solaris 发行版具有引导分区,请将其链式加载到该引导分区。

如果没有,请在分片的第一个扇区中安装 pboot。例如,对于第一个分片,请使用以下命令:

   dd if=/usr/platform/i86pc/lib/fs/ufs/pboot of=/dev/rdsk/c0d0s0 bs=512 count=1

 

然后,链式加载该分片:

     title Solaris 03/05

root (hd0,1,a)
chainloader +1
makeactive

 

返回页首


8.
问:
我编辑了 /boot/grub/menu.lst,但 GRUB 屏幕上并未显示这些更改。
答:
系统很可能是从 Solaris 引导分区进行引导的。在这种情况下,将在 /stubboot 中挂载引导分区。活动 GRUB 菜单为 /stubboot/boot/grub/menu.lst

返回页首


9.
问:
如何设置 netinstall 服务器以便为多个 Solaris 映像提供服务?
答:
请参见文章“GRUB 和 Solaris 10 1/06 操作系统:用于 x86 平台的新引导加载器”中的附录 B: http://www.sun.com/bigadmin/features/articles/grub_boot_solaris.html。< /div>

返回页首


10.
问:
我能否使用 pxelinux 加载 Solaris 操作系统?
答:
您可以使用 pxelinux 加载 pxegrub,然后再加载 Solaris 操作系统。

返回页首


11.
问:
在没有 PXE/DHCP 服务器的情况下,能否从网络进行引导?
答:
可以,但只能使用某种本地介质(软盘或 CD-ROM)进行引导。您可以创建一个 GRUB 软盘,并通过 GRUB 命令 rarpifconfig 配置网络,然后通过 tftp 下载 multibootboot_archive

返回页首


12.
问:
引导新的 Solaris 发行版时,如何应用驱动程序更新?
答:
引导 miniroot 时,请从 Install(安装)菜单中选择 5。出现提示时,插入包含该软件的软盘或 CD-ROM。CD-ROM 上的软件布局必须采用为 ITU 软盘定义的相同目录分层结构。

返回页首


13.
问:
prtconf -pv 输出没有提供我以前获取的信息。应该怎么办?
答:
目前,由内核负责设备枚举。应通过 prtconf -v 获取所有设备信息。

返回页首


14.
问:
我有一台旧计算机,但没有 ACPI 表。我仍然可以引导 Solaris 操作系统吗?
答:
可以,如果找不到 ACPI 表,引导代码会自动使用一组缺省接口,它将配置标准 PS/2 键盘/鼠标和串行/并行端口。您可以添加引导选项 -B acpi-user-options=2 以手动禁用 ACPI(另请参见 eeprom(1M))。

返回页首


15.
问:
我能否自定义故障安全归档,并将其作为可移植恢复映像放在 USB 存储棒中?
答:
当前的故障安全归档是 miniroot,采用的是 gzip 压缩的 UFS 格式。可以将其作为 lofi 设备进行挂载,并使用文件系统操作对其进行操作。您可以将驱动程序添加到归档中,以获取增强的硬件支持。通常,不支持添加应用程序软件包,因为miniroot 是一个非常小的环境,仅用于执行操作系统安装和升级操作。

返回页首


16.
问:
如何将 GRUB 控制台重定向到串行线路?
答:
在 Solaris 操作系统中,使用 eeprom console=ttya(或 ttyb)重定向操作系统控制台。如果可以重定向 BIOS 控制台,请对其进行设置。如果无法重定向 BIOS 控制台,可通过在 /boot/grub/menu.lst 中添加以下行,将 GRUB 输出重定向到 ttya
        serial --unit=0 --speed=9600

terminal serial

 

建议不要同时设置 BIOS 控制台重定向和 GRUB 控制台重定向。它们可能会相互干扰。

返回页首


17.
问:
在进入故障安全模式并修复配置文件后,不知道什么原因就损坏了引导归档。无论重新引导到故障安全模式多少次,都无法使其重新生成归档以使我能够进行引导。< /div>答:
引导到故障安全模式,对出现的 'updated archives'(更新的归档)问题回答 'yes'(是)后,将会在 /a 中挂载基于实际磁盘的根文件系统。运行以下命令: bootadm update-archive -f -R /a

返回页首


18.
问:
GRUB 通常安装在 Solaris 分片中。能否将其安装在主引导记录 (Master Boot Record, MBR) 中?
答:
如果将 GRUB 安装到主引导目录中 (installgrub -m <stage1> <stage2> /dev/rdsk/<slice>),系 统将从 GRUB 中启动,而不论是否激活了 Solaris 分区。

但是,如果安装的第二个操作系统覆盖了 MBR,则无法恢复 Solaris 版本的 GRUB,除非从安装 DVD 中引导并再次运行 installgrub 命令。

因此,从恢复的角度看,如果将 Solaris 10 1/06 版本的 GRUB 保留在 Solaris 分区中,情况可能会更好一些。

返回页首


19.
问:
我在系统中安装了 Solaris 操作系统,但无法引导它。
答:
确保将 BIOS 引导磁盘设置为安装了 Solaris 操作系统的磁盘,并且 Solaris 分区处于活动状态。

返回页首


20.
问:
是否应该在安装时创建 Solaris 引导分区?
答:
不必。从 Solaris 10 1/06 开始,全新安装不会创建引导分区,也不会重新使用现有的引导分区。从以前的 Solaris 发行版进行升级时,将 保留引导分区并将其挂载到 /stubboot 中。

返回页首