System Administration Guide

x86: The Boot Process Details

Table 10-5 describes the x86 boot process illustrated on the previous page.

Table 10-5 x86: Description of x86 Boot Process

Boot Phase 

Description 

BIOS 

1. When the system is turned on, the PC 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 describing recovery options. 

Additional hardware devices' BIOS are run at this time. 

 

2. The BIOS boot program tries to read the first physical sector from the boot device--either a diskette or hard drive. 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. 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. pboot loads bootblk, the primary boot program, whose purpose is to load the secondary boot program 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. This step only occurs if there is more than one bootable partition present on the system.

 

6. bootblk finds and executes ufsboot, the secondary boot program in the root file system.

 

7. 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.

Kernel Initialization 

8. The kernel initializes itself and begins loading modules, using ufsboot to read the files. When the kernel has loaded enough modules to mount the root file system, it unmaps the fsboot 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.