System Administration Guide, Volume I

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, x86: 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 SPARC: 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.

  
   

The kernel starts the init process.

     
       
 

init Phase

 

The init process starts the run control scripts.

  
         

SPARC: The Boot Process Details

Table 10-2 describes the SPARC boot process illustrated above.

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.

 

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

init

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

At three times during the Solaris boot process, you can make the following choices about a booting system:

Table 10-3 summarizes the purpose of the primary x86 boot interfaces. See the sections that follow for a detailed description and example of each boot subsystem.

Table 10-3 x86: Boot Subsystems

Boot Subsystem 

Purpose 

Primary Boot Subsystem 

This menu appears if the disk you are booting from contains more than one fdisk partition, in addition to the Solaris fdisk partition.

Secondary Boot Subsystem 

This menu appears each time you boot the Solaris release. The Solaris release is booted automatically unless you choose to run the Solaris Device Configuration Asisstant by interrupting the autoboot process. 

Solaris Device Configuration Assistant/Boot Diskette 

There are two ways to access the Solaris Device Configuration Assistant menus:  

  1. Use the Solaris Device Configuration Assistant Boot Diskette to boot the system.

  2. Interrupt the autoboot process when booting Solaris from an installed disk.

Current Boot Parameters Menu 

This menu appears when you boot from a disk with the Solaris operating environment installed or if you want to install the Solaris release from the Solaris installation CD or the network. In either case, this menu presents a list of boot options. 

During the boot process, the boot subsystem menus allow you to customize boot choices. If the system receives no response during the time-out periods, it continues to boot automatically using default selections. You can stop the boot process when each boot subsystem menu is displayed or you can let it continue automatically.

The following section provides examples of each subsystem screen.

x86: Booting Solaris

During the device identification phase, the Configuration Assistant:

During the Boot phase, the system:

Examples of device identification during each phase are provided below. Device output varies based on your system configuration.

x86: Menus Displayed During the Device Identification Phase

Several menus are displayed as the Configuration Assistant attempts to identify devices on the system.

x86: Configuration Assistant Menu

This menu appears each time you run the Configuration Assistant.


Solaris Device Configuration Assistant 
 
The Solaris(TM) (Intel Platform Edition) Device Configuration Assistant
scans to identify system hardware, lists identified devices, and can
boot the Solaris software from a specified device. This program must be
used to install the Solaris operating environment, add a Driver Update,
or change the hardware on the system.
 
> To perform a full scan to identify all system hardware, choose Continue.
 
> To diagnose possible full scan failures, choose Specific Scan.
 
> To add new or updated device drivers, choose Driver Update.
 
About navigation...
    - The mouse cannot be used.
    - If the keyboard does not have function keys or they do not respond, 
      press ESC. The legend at the bottom of the screen will change to 
      show the ESC keys to use for navigation.
    - The F2 key performs the default action.
 
F2_Continue		F3_Specific Scan		F4_Driver Update		F6_Help

x86: Bus Enumeration Menu

The Bus Enumeration menu appears briefly while the Configuration Assistant gathers hardware configuration data for devices that can be detected automatically.


Bus Enumeration
 
 
 
Determining bus types and gathering hardware configuration data ...
 
 
 
Please wait ...

x86: Scanning Devices Menu

The Scanning Devices menu appears while the Configuration Assistant manually scans for devices that can only be detected with special drivers.


Scanning Devices
 
The system is being scanned to identify system hardware.
 
If the scanning stalls, press the system's reset button. When the
system reboots, choose Specific Scan or Help.
 
 
			Scanning: Flpppy disk controller
 
   #######################
			|         |        |         |         |         |
			0	 		 20       40        60	       80       100
 
 
 
Please wait ...

x86: Identified Devices Menu

The Identified Devices menu displays which devices have been identified on the system. From here, you can continue to the "Boot Solaris" menu or perform optional tasks, such as set a keyboard configuration, view and edit devices, set up a serial console, and save and delete configurations.


Identified Devices
 
The following devices have been identified on this system. To identify
devices not on this list or to modify device characteristics, such as
keyboard configuration, choose Device Tasks. Platform types may be
included in this list.
 
	EISA: Adaptec 1740/1742 SCSI controller
	EISA: Motherboard
	EISA: SMC EtherCard Elite32C Ethernet adapter
	ISA: Floppy disk controller
	ISA: Game port (Joy stick)
	ISA: PCMCIA controller
	ISA: Parallel port
	ISA: Serial port
	ISA: System keyboard (US-English)
	ISA: VGA w/ 8514/A compatible graphics adapter
 
 
 
F2_Continue		F3_Back			F4_Device Tasks			F6_Help
 

x86: Menus Displayed During the Boot Phase

During this phase, you can determine the way in which the system is booted.

x86: Boot Solaris Menu

The Boot Solaris menu allows you to select the device from which to boot the Solaris release. You can also perform optional tasks, such as view and edit autoboot and property settings. Once a boot device is selected and you choose Continue, the Solaris kernel will begin to boot.


Boot Solaris
 
Select one of the identified devices to boot the Solaris kernel and
choose Continue.
 
To perform optional features, such as modifying the autoboot and property
settings, choose Boot Tasks.
 
An asterisk (*) indicates the current default boot device.
 
> To make a selection use the arrow keys, and press Enter to mark it [X].
 
  [ ] DISK: Target 0, IMPRIMIS 94241-7			0888
	    			on Adaptec 1740/1742 SCSI controller in EISA Slot 4
  [ ] CD  : Target 2, TOSHIBA  CD-ROM XM-3501TA 3054
	    			on Adaptec 1740/1742 SCSI controller in EISA Slot 4
  [ ] NET : SMC EtherCard Elite32C Ethernet adapter
	    			in EISA Slot 6
 
 
 
 
F2_Continue		F3_Back			F4_Boot Tasks			F6_Help

x86: Solaris Boot Options Menu

This menu appears each time you boot Solaris from the local disk. Let the five-second timeout elapse if you want to boot the default Solaris kernel. If you want to boot with different options, select an appropriate option before the timeout period elapses.


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

x86: The Boot Process

Table 10-4 x86: 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. The Primary Boot Subsystem menu is displayed at this time.

  
   

bootblk loads the secondary boot program, boot.bin or ufsboot. You can press the ESC key to enter the Configuration Assistant Menu at this point.

  
   

The secondary boot program, boot.bin or ufsboot, reads the /etc/bootrc script, which loads the kernel. The Solaris Boot options menu is displayed at this time.

     
       
 

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

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. You have a 30-second timeout 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 timeout interval to interrupt the autoboot to start the 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 timeout interval to specify a boot option or start the boot interpreter.

Kernel Initialization 

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