系统管理指南:基本管理

x86: 引导过程

下表介绍了基于 x86 的系统上的引导过程。

表 16–2 x86: 引导过程的说明

引导阶段 

说明 

BIOS 

1. 打开系统时,BIOS 将运行自检诊断,以验证系统的硬件和内存。如果未发现任何错误,系统便会开始自动进行引导。如果发现了错误,则会显示错误消息,说明恢复选项。 

此时会运行其他硬件设备的 BIOS。 

 

2. BIOS 引导程序尝试读取引导设备中的第一个磁盘扇区。引导设备上的第一个磁盘扇区包含已加载并执行的主引导记录 mboot。如果系统未找到 mboot 文件,则会显示错误消息。

引导程序 

3. 主引导记录 mboot 包含查找活动分区和 Solaris 引导程序 pboot 位置所需的磁盘信息,并会装入和执行 pbootmboot

 

4. Solaris 引导程序 pboot 装入主引导程序 bootblkbootblk 命令用于装入位于 UFS 文件系统中的辅助引导程序。

 

5. 如果有多个可引导的分区,bootblk 会读取 fdisk 表以找到缺省的引导分区,并生成和显示可用分区的菜单。您有 30 秒的时间来选择用于引导的替代分区。只有在系统中存在多个可引导的分区时,才会出现此步骤。

 

6. bootblk 在根 (/) 文件系统中查找并执行辅助引导程序 boot.binufsboot。您有 5 秒钟的时间来中断自动引导,以便启动 Solaris Device Configuration Assistant。

 

7. 辅助引导程序 boot.binufsboot 启动用于执行 /etc/bootrc 脚本的命令解释程序。此脚本提供了用于引导系统的选项菜单。缺省操作是装入并执行内核。您有 5 秒钟的时间间隔来指定引导选项或启动引导解释程序。

内核初始化 

8. 内核自行进行初始化并使用辅助引导程序(boot.binufsboot)开始装入模块,以读取文件。内核为挂载根 (/) 文件系统装入足够的模块后,它将取消映射辅助引导程序并使用其自己的资源继续操作。

 

9. 内核创建用户进程并启动 /sbin/init 进程,从而通过读取 /etc/inittab 文件来启动其他进程。

init

10. 在此 Oracle Solaris 发行版中,/sbin/init 进程会启动 /lib/svc/bin/svc.startd,从而启动将执行以下操作的系统服务:

  • 检查并挂载文件系统

  • 配置网络和设备

  • 启动各种进程并执行系统维护任务

此外,svc.startd 还会执行用于保持兼容性的运行控制 (rc) 脚本。