BIOS
|
1. 打开系统时,BIOS 将运行自检诊断,以验证系统的硬件和内存。如果未发现任何错误,系统便会开始自动进行引导。如果发现了错误,则会显示错误消息,说明恢复选项。
此时会运行其他硬件设备的 BIOS。
|
|
2. BIOS 引导程序尝试读取引导设备中的第一个磁盘扇区。引导设备上的第一个磁盘扇区包含已加载并执行的主引导记录 mboot。如果系统未找到 mboot 文件,则会显示错误消息。
|
引导程序
|
3. 主引导记录 mboot 包含查找活动分区和 Solaris 引导程序 pboot 位置所需的磁盘信息,并会装入和执行 pboot、mboot。
|
|
4. Solaris 引导程序 pboot 装入主引导程序 bootblk。bootblk 命令用于装入位于 UFS 文件系统中的辅助引导程序。
|
|
5. 如果有多个可引导的分区,bootblk 会读取 fdisk 表以找到缺省的引导分区,并生成和显示可用分区的菜单。您有 30 秒的时间来选择用于引导的替代分区。只有在系统中存在多个可引导的分区时,才会出现此步骤。
|
|
6. bootblk 在根 (/) 文件系统中查找并执行辅助引导程序 boot.bin 或 ufsboot。您有 5 秒钟的时间来中断自动引导,以便启动 Solaris Device Configuration Assistant。
|
|
7. 辅助引导程序 boot.bin 或 ufsboot 启动用于执行 /etc/bootrc 脚本的命令解释程序。此脚本提供了用于引导系统的选项菜单。缺省操作是装入并执行内核。您有 5 秒钟的时间间隔来指定引导选项或启动引导解释程序。
|
内核初始化
|
8. 内核自行进行初始化并使用辅助引导程序(boot.bin 或 ufsboot)开始装入模块,以读取文件。内核为挂载根 (/) 文件系统装入足够的模块后,它将取消映射辅助引导程序并使用其自己的资源继续操作。
|
|
9. 内核创建用户进程并启动 /sbin/init 进程,从而通过读取 /etc/inittab 文件来启动其他进程。
|
init
|
10. 在此 Oracle Solaris 发行版中,/sbin/init 进程会启动 /lib/svc/bin/svc.startd,从而启动将执行以下操作的系统服务:
-
检查并挂载文件系统
-
配置网络和设备
-
启动各种进程并执行系统维护任务
此外,svc.startd 还会执行用于保持兼容性的运行控制 (rc) 脚本。
|