x86: GRUB Based Booting (Planning)
This section describes the basics of GRUB based booting and describes the GRUB
When you install the Solaris OS, two GRUB menu entries are installed on
the system by default. The first entry is the Solaris OS entry.
The second entry is the failsafe boot archive, which is to be used
for system recovery. The Solaris GRUB menu entries are installed and updated automatically
as part of the Solaris software installation and upgrade process. These entries are directly
managed by the OS and should not be manually edited.
During a standard Solaris OS installation, GRUB is installed on the Solaris fdisk
partition without modifying the system BIOS setting. If the OS is not on
the BIOS boot disk, you need to do one of the following:
The preferred method is to install the Solaris OS on the boot
disk. If multiple operating systems are installed on the machine, you can add
entries to the menu.lst file. These entries are then displayed in the GRUB menu
the next time you boot the system.
For additional information on multiple operating systems, see How Multiple Operating Systems Are Supported in the GRUB Boot Environment in System Administration Guide: Basic Administration.
x86: Performing a GRUB Based Installation From the Network
Performing a GRUB based network boot requires a DHCP server that is configured
for PXE clients and an install server that provides tftp service. The DHCP
server must be able to respond to the DHCP classes, PXEClient and
GRUBClient. The DHCP response must contain the following information:
Note - rpc.bootparamd, which is usually a requirement on the server side for performing a
network boot, is not required for a GRUB based network boot.
If no PXE or DHCP server is available, you can load GRUB
from CD-ROM or local disk. You can then manually configure the network in
GRUB and download the multiboot program and the boot archive from the file
For more information, see Overview of Booting and Installing Over the Network With PXE in Solaris Express Installation Guide: Network-Based Installations.
Description of the GRUB Main Menu
When you boot an x86 based system, the GRUB menu is displayed. This
menu provides a list of boot entries to choose from. A boot entry is
an OS instance that is installed on your system. The GRUB menu is
based on the menu.lst file, which is a configuration file. The menu.lst file
is created by the Solaris installation program and can be modified after installation. The
menu.lst file dictates the list of OS instances that are shown in the
If you install or upgrade the Solaris OS, the GRUB menu is automatically updated. The Solaris OS is then displayed as a new boot entry.
If you install an OS other than the Solaris OS, you must modify the menu.lst configuration file to include the new OS instance. Adding the new OS instance enables the new boot entry to appear in the GRUB menu the next time that you boot the system.
Example 6-1 GRUB Main Menu
In the following example, the GRUB main menu shows the Solaris and
Microsoft Windows operating systems. A Solaris Live Upgrade boot environment is also listed
that is named second_disk. See the following for descriptions of each menu item.
GNU GRUB version 0.95 (616K lower / 4127168K upper memory)
|Solaris failsafe |
|second_disk failsafe |
Use the ^ and v keys to select which entry is highlighted. Press
enter to boot the selected OS, 'e' to edit the commands before
booting, or 'c' for a command-line.
Specifies the Solaris OS.
- Solaris failsafe
Specifies a boot archive that can be used for recovery if the Solaris OS is damaged.
Specifies a Solaris Live Upgrade boot environment. The second_disk boot environment was created as a copy of the Solaris OS. It was upgraded and activated with the luactivate command. The boot environment is available for booting.
Specifies the Microsoft Windows OS. GRUB detects these partitions but does not verify that the OS can be booted.
Description of GRUB menu.lst File
The GRUB menu.lst file lists the contents of the GRUB main menu. The
GRUB main menu lists boot entries for all the OS instances that are
installed on your system, including Solaris Live Upgrade boot environments. The Solaris software
upgrade process preserves any changes that you make to this file.
Any revisions made to the menu.lst file are displayed on the GRUB main
menu, along with the Solaris Live Upgrade entries. Any changes that you make
to the file become effective at the next system reboot. You can revise
this file for the following reasons:
Caution - Do not use the GRUB menu.lst file to modify Solaris Live Upgrade entries.
Modifications could cause Solaris Live Upgrade to fail.
Although you can use the menu.lst file to customize booting behavior such as
booting with the kernel debugger, the preferred method for customization is to use
the eeprom command. If you use the menu.lst file to customize, the Solaris
OS entries might be modified during a software upgrade. Changes to the file
would then be lost.
For information about how to use the eeprom command, see How to Modify Boot Behavior by Using the eeprom Command in System Administration Guide: Basic Administration.
Example 6-2 Menu.lst
Here is a sample of a menu.lst file:
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B console=ttya
title Solaris failsafe
kernel /boot/platform/i86pc/kernel/unix -s -B console=ttya
#----- second_disk - ADDED BY LIVE UPGRADE - DO NOT EDIT -----
title second_disk failsafe
kernel /boot/platform/i86pc/kernel/unix -s
#----- second_disk -------------- END LIVE UPGRADE ------------
Specifies which item to boot if the timeout expires. To change the default, you can specify another item in the list by changing the number. The count begins with zero for the first title. For example, change the default to 2 to boot automatically to the second_disk boot environment.
Specifies the number of seconds to wait for user input before booting the default entry. If no timeout is specified, you are required to choose an entry.
- title OS name
Specifies the name of the operating system.
If this is a Solaris Live Upgrade boot environment, OS name is the name you gave the new boot environment when it was created. In the previous example, the Solaris Live Upgrade boot environment is named second_disk.
If this is a failsafe boot archive, this boot archive is used for recovery when the primary OS is damaged. In the previous example, Solaris failsafe and second_disk failsafe are the recovery boot archives for the Solaris and second_disk operating systems.
- root (hd0,0,a)
Specifies on which disk, partition, and slice to load files. GRUB automatically detects the file system type.
- kernel$ /platform/i86pc/kernel/$ISADIR/unix
Specifies the boot loader that runs on the system. GRUB expands the $ISADIR keyword to amd64 on 64-bit hardware. $ISADIR becomes a null value on 32-bit only hardware.
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.
For a complete description of multiple operating systems, see How Multiple Operating Systems Are Supported in the GRUB Boot Environment in System Administration Guide: Basic Administration.
Locating the menu.lst File to Change the GRUB Menu
You must always use the bootadm command to locate the GRUB menu's menu.lst
file. The list-menu subcommand finds the active GRUB menu. The menu.lst file lists
all the operating systems that are installed on a system. The
contents of this file dictate the list of operating systems that is
displayed on the GRUB menu. If you want to make changes to
this file, see Locating the GRUB Menu’s menu.lst File (Tasks) in Solaris Express Installation Guide: Solaris Live Upgrade and Upgrade Planning.