本节包含有关基于 x86 的系统引导所特有的引导过程的信息。
打开基于 x86 的系统时,系统由只读存储器 (read-only-memory, ROM) 基本输入/输出系统 (Basic Input/Output System, BIOS) 进行控制。BIOS 是具有 x86 64 位和 32 位支持的 Oracle Solaris 操作系统上的固件接口。
硬件适配器通常具有显示设备的物理特征的板载 BIOS。该 BIOS 用于访问设备。启动过程期间,系统 BIOS 将检查是否存在任何适配器 BIOS。如果找到了任何适配器,则系统会装入并执行每个适配器 BIOS。每个适配器的 BIOS 都会运行自检诊断,然后显示设备信息。
大多数系统上的 BIOS 都有一个用户界面,您可以在该界面中选择已排序的引导设备的列表,其中包含以下选择:
软盘
CD 或 DVD
硬盘
网络
BIOS 尝试从每个设备轮流进行引导,直到找到带有可引导程序的有效设备为止。
/platform/i86pc/multiboot 程序是一个 ELF32 可执行程序,包含在多引导规范中定义的信息头。
多引导程序负责执行以下任务:
解释引导归档文件的内容
自动检测具备 64 位计算能力的系统
选择用于引导系统的最佳内核模式
在内存中汇编核心内核模块
将系统控制权转交给 Solaris 内核
内核获得系统控制权后,便会对 CPU、内存和设备子系统进行初始化。随后,内核会挂载引导设备,该设备与在 /boot/solaris/bootenv.rc 文件中指定的 bootpath 和 fstype 属性对应。此文件是引导归档文件的一部分。如果没有在 bootenv.rc 文件或 GRUB 命令行中指定这些属性,则根文件系统将缺省为 /devices/ramdisk:a 上的 UFS。引导安装 miniroot 时,根文件系统将缺省为 UFS。挂载引导设备后,内核将对 sched 和 init 命令进行初始化。这些命令可以启动服务管理工具 (Service Management Facility, SMF) 服务。