x86: GRUB Based Booting (Overview)
GRUB, the open source boot loader, has been adopted as the default
boot loader in the Solaris OS.
Note - GRUB based booting is not available on SPARC based systems.
The boot loader is the first software program that runs after you power on
a system. After you power on an x86 based system, the Basic Input/Output
System (BIOS) initializes the CPU, the memory, and the platform hardware. When the
initialization phase has completed, the BIOS loads the boot loader from the configured
boot device, and then transfers control of the system to the boot loader.
GRUB is an open source boot loader with a simple menu interface
that includes boot options that are predefined in a configuration file. GRUB also has
a command-line interface that is accessible from the menu interface for performing various
boot commands. In the Solaris OS, the GRUB implementation is compliant with the
Multiboot Specification. The specification is described in detail at https://www.gnu.org/software/grub/grub.html.
Because the Solaris kernel is fully compliant with the Multiboot Specification, you can
boot a Solaris x86 based system by using GRUB. With GRUB, you
can more easily boot and install various operating systems. For example, on one system,
you could individually boot the following operating systems:
A key benefit of GRUB is that it is intuitive about file
systems and kernel executable formats, which enables you to load an operating system
without recording the physical position of the kernel on the disk. With GRUB
based booting, the kernel is loaded by specifying its file name, and the
drive, and the partition where the kernel resides. GRUB based booting replaces the Solaris
Device Configuration Assistant and simplifies the booting process with a GRUB menu.
x86: How GRUB Based Booting Works
After GRUB gains control of the system, a menu is displayed on
the console. In the GRUB menu, you can do the following:
Select an entry to boot your system
Modify a boot entry by using the built-in GRUB edit menu
Manually load an OS kernel from the command line
A configurable timeout is available to boot the default OS entry. Pressing any
key aborts the default OS entry boot.
To view an example of a GRUB menu, see Description of the GRUB Main Menu.
x86: GRUB Device Naming Conventions
The device naming conventions that GRUB uses are slightly different from previous Solaris
OS versions. Understanding the GRUB device naming conventions can assist you in correctly
specifying drive and partition information when you configure GRUB on your system.
The following table describes the GRUB device naming conventions.
Table 6-1 Naming Conventions for GRUB Devices
Device Name |
Description |
(fd0), (fd1) |
First diskette,
second diskette |
(nd) |
Network device |
(hd0,0), (hd0,1) |
First and second fdisk partition of first bios disk |
(hd0,0,a),
(hd0,0,b) |
Solaris/BSD slice 0 and 1 on first fdisk partition on the first bios
disk |
Note - All GRUB device names must be enclosed in parentheses. Partition numbers are counted
from 0 (zero), not from 1.
For more information about fdisk partitions, see Guidelines for Creating an fdisk Partition in System Administration Guide: Devices and File Systems.
x86: Where to Find Information About GRUB Based Installations
For more information about these changes, see the following references.
Table 6-2 Where to Find Information on GRUB Based Installations
Note - Starting with the Solaris Express Developer Edition 5/07 release, see new GRUB enhancements described at x86: GRUB Extended Support for Directly Loading and Booting the UNIX Kernel.