System Administration Guide

Chapter 10 The Boot Process (Reference)

This chapter describes the hardware used for booting on SPARC and x86 systems and a conceptual overview of the boot process on each platform.

This is a list of overview information in this chapter.

For instructions on booting a system, see Chapter 8, Booting a SPARC System (Tasks), or Chapter 9, Intel: Booting a System (Tasks).

SPARC: The Boot PROM

Each SPARC system has a PROM (programmable read-only memory) chip with a program called the monitor. The monitor controls the operation of the system before the kernel is available. When a system is turned on, the monitor runs a quick self-test procedure that checks things such as the hardware and memory on the system. If no errors are found, the system begins the automatic boot process.


SPARC only -

Some older systems may require PROM upgrades before they will work with the Solaris system software. Contact your local service provider for more information.


SPARC: The Boot Process

Table 10-1 The Boot Process
      
 

Boot PROM Phase 

 

The boot PROM runs self-test diagnostics. 

 
   

The boot PROM loads the bootblock program.

     
       
 

Boot Programs Phase 

 

The boot block program loads the ufsboot program.

 
   

After the ufsboot program is loaded, it loads the kernel.

     
       
 

Kernel Initialization Phase 

 

The kernel initializes itself and loads the modules needed to mount the root (/) file system.

     
       
 

init Phase

 

The kernel starts the init process.

 
   

The init process starts the run controls scripts.

     
         

SPARC: The Boot Process Details

Table 10-2 describes the SPARC boot process illustrated on the previous page.

Table 10-2 SPARC: Description of SPARC Boot Process

Boot Phase 

Description 

Boot PROM 

1. The PROM displays system identification information and then runs self-test diagnostics to verify the system's hardware and memory. 

 

2. Then the PROM loads the primary boot program, bootblk, whose purpose is to load the secondary boot program located in the ufs file system from the default boot device.

Boot Programs 

3. The bootblk program finds and executes the secondary boot program, ufsboot, and loads it into memory.

 

4. After ufsboot program is loaded, the ufsboot program loads the kernel.

Kernel Initialization 

5. 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 ufsboot program and continues, using its own resources.

init

6. The kernel creates a user process and starts the /sbin/init process, which starts other processes by reading the /etc/inittab file.

 

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

x86: The PC BIOS

Before the kernel is started, the system is controlled by the read-only-memory (ROM) Basic Input/Output System (BIOS), the firmware interface on a PC.

Hardware adapters can have an onboard BIOS that displays the physical characteristics of the device and can be used to access the device.

During the startup sequence, the PC BIOS checks for the presence of any adapter BIOS and if found, loads and executes each one. Each individual adapter's BIOS runs self-test diagnostics and displays device information.

x86: Boot Subsystems

Booting an x86 system uses a Solaris Boot Options screen to specify the way in which a system should be booted.

Additionally, identifying attached devices or booting from the network or a local CD-ROM drive uses the Configuration Assistant/Boot Diskette.

Table 10-3 describes both interfaces used to boot all levels on an x86 system.

Table 10-3 x86: x86 Boot Subsystems

Boot Subsystem 

This Subsystem Menu Displays ... 

Configuration Assistant/Boot Diskette 

Solaris Device Configuration Assistant, identifies device attaches to the system. 

Solaris Boot Screen, presents a list of bootable devices such as disk, network, or CD-ROM.  

Solaris Boot Option Screen 

A list of boot options. The system automatically boots to run level 3 if you don't select an option (after a five-second time out) from this menu. The other options enable you to specify boot options or enter the boot interpreter (see boot(1M)).

During the boot process, the boot subsystem menus display different device and booting options. If the system receives no response after several time-out periods, it continues to boot automatically using default selections. You can stop the boot process when the boot subsystem menus are displayed or let it continue automatically.

The following section provides examples of each subsystem screen. Screen displays will vary based on system configurations.

x86: Configuration Assistant/Boot Diskette

During the Configuration Assistant phase, the system:

During the Boot phase, the system:

Examples of device configuration during each phase are provided below. Device output will vary based on each system configuration.

Configuration Assistant Phase

During this phase, the Configuration Assistant attempts to identify devices on the system.


Solaris Device Configuration Assistant 
 
The Solaris(TM) 2.6 (Intel Platform Edition) Device Configuration 
Assistant scans to identify the devices on the system, lists 
identified devices, and enables you to boot the Solaris software 
from a specified device. This program must be used whenever you 
install the Solaris operating environment or change the hardware 
on the system. 
 
> To perform a full scan and identify all the devices on the system, 
  choose Continue.         
 
> To perform a partial scan and identify only the automatically
  detected devices, choose Partial Scan. (Choose Partial Scan if a
  full scan has previously failed.) 
                                                                                                    F2_Continue    F4_Partial Scan    F6_Help

Scanning Devices Phase

During this phase, all devices connected to the system are scanned.


Scanning Devices  
 
The system is being scanned to identify all devices on the system.  
If the scanning stalls, press the system's reset button. When the 
system reboots, choose Partial Scan or Help. 
                                                                                                                    Building driver list --    
           |        |         |         |         |         |   
           0       20        40        60        80       100                                                                                      Please wait ...  

Identifying Devices Phase

During this phase, all devices connected to the system are identified in this example.


Identified Devices  
 
The following devices have been identified in this system. To 
identify devices that on not in this list, choose Device Tasks. 
                           
    ISA: Bidirectional parallel port 
    ISA: Floppy disk controller 
    ISA: IDE controller
    ISA: Intel EtherExpress network card
    ISA: Motherboard 
    ISA: PS/2 mouse 
    ISA: Serial controller
    ISA: Serial controller 
    ISA: System keyboard    
    ISA: VGA Compatible Display Adapter  
 
 
F2_Continue    F3_Back    F4_Device Tasks    F5_Boot Solaris

Solaris Boot Phase

During this phase, you can select a device from which to boot. Select the Boot Tasks option to change the default boot device.


Select one of the identified devices to boot Solaris.    
                                                                  
> To make a selection, use the arrow keys, then press Enter to mark   
  it [X]. 
 
  Boot Solaris
------------------------------------------------------------------         
  [ ]  DISK: IDE(ATA) QUANTUM FIREBALL1080A 
             target: 0; port: 1F0-1F7, 3F6-3F7; irq: 14      
  [ ]  NET : Intel EtherExpress network card
             port: 300-30F; irq: 5        
 
Esc-2_Boot Solaris    Esc-3_Back    Esc-4_Boot Tasks    Esc-6_Help

Solaris Boot Options Phase

During this phase, you can boot the system with a specific option or let it boot to run level 3 by default.


 
                     <<< Current Boot Parameters >>>
Boot path: /isa/ata@1f0,0/cmdk@0,0:a
Boot args: 
 
Type    b [file-name] [boot-flags]       to boot with options
or      i                                to enter boot interpreter
or                                       to boot with defaults
 
                  <<< timeout in 5 seconds >>>
 
Select (b)oot or (i)nterpreter:

x86: The Boot Process

Table 10-4 The Boot Process
      
 

BIOS Phase 

 

The PC BIOS loads and executes any hardware device's BIOS. 

  
   

The BIOS boot program loads and executes the master boot record, mboot.

     
       
 

Boot Programs Phase 

 

mboot loads pboot, the Solaris boot partition boot program.

     

pboot loads bootblk, the primary boot program.

     

bootblk reads the fdisk table to locate the default boot partition.

     

bootblk loads ufsboot, the secondary boot program.

   

ufsboot reads the /etc/bootrc script, which loads the kernel.

     
       
 

Kernel Initialization Phase 

 

The kernel initializes itself and loads the modules needed to mount the root (/) file system.

  
   

The kernel starts the init process.

     
          
 

init Phase

 

The init process starts the run control scripts.

     
         

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.