The following table describes the boot process on x86 based systems.
Boot Phase | Description |
BIOS | 1. When the system is turned on, the BIOS runs self-test
diagnostics to verify the system's hardware and memory. The system begins
to boot automatically if no errors are found. If errors are found, error messages
are displayed that describe recovery options. The BIOS of additional
hardware devices are run at this time. |
| 2. The BIOS boot program tries to read the first physical
sector from the boot device. This first disk sector on the boot device contains
the master boot record mboot, which is loaded and executed.
If no mboot file is found, an error message is displayed. |
Boot Programs | 3. The master boot record, mboot, which contains disk information needed to find the active partition
and the location of the Solaris boot program, pboot, loads
and executes pboot. |
| | 4. The Solaris boot program, pboot loads bootblk, the primary boot program, whose purpose is to load the secondary
boot program that is located in the ufs file system. |
| | 5. If there is more than one bootable partition, bootblk
reads the fdisk table to locate the default boot partition,
and builds and displays a menu of available partitions. You have a 30-second
interval to select an alternate partition from which to boot. This step only
occurs if there is more than one bootable partition present on the system. |
| | 6. bootblk finds and executes the secondary boot program, boot.bin or ufsboot, in the root (/) file system. You have a 5-second interval to interrupt
the autoboot to start the Solaris Device Configuration Assistant. |
| | 7. The secondary boot program, boot.bin or ufsboot, starts a command interpreter that executes the /etc/bootrc script, which provides a menu of choices for booting the system.
The default action is to load and execute the kernel. You have a 5-second
interval to specify a boot option or to start the boot interpreter. |
Kernel initialization | 8. The kernel initializes itself and
begins loading modules by using the secondary boot program (boot.bin or ufsboot) to read the files. When the kernel
has loaded enough modules to mount the root (/) file
system, the kernel unmaps the secondary boot program and continues, using
its own resources. |
| | 9. The kernel creates a user process and starts the /sbin/init
process, which starts other processes by reading the /etc/inittab file. |
init | 10. The /sbin/init
process starts the run control (rc) scripts, which execute
a series of other scripts. These scripts (/sbin/rc*)
check and mount file systems, start various processes, and perform system
maintenance tasks. |