JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
System Administration Guide: Basic Administration     Oracle Solaris 10 8/11 Information Library
search filter icon
search icon

Document Information

About This Book

1.  Oracle Solaris Management Tools (Road Map)

2.  Working With the Solaris Management Console (Tasks)

3.  Working With the Oracle Java Web Console (Tasks)

4.  Managing User Accounts and Groups (Overview)

5.  Managing User Accounts and Groups (Tasks)

6.  Managing Client-Server Support (Overview)

7.  Managing Diskless Clients (Tasks)

8.  Introduction to Shutting Down and Booting a System

9.  Shutting Down and Booting a System (Overview)

10.  Shutting Down a System (Tasks)

11.  Modifying Oracle Solaris Boot Behavior (Tasks)

12.  Booting an Oracle Solaris System (Tasks)

13.  Managing the Oracle Solaris Boot Archives (Tasks)

14.  Troubleshooting Booting an Oracle Solaris System (Tasks)

15.  x86: GRUB Based Booting (Reference)

x86: Boot Processes

x86: System BIOS

x86: Kernel Initialization Process

x86: Support for GRUB in the Oracle Solaris OS

x86: GRUB Terminology

x86: Functional Components of GRUB

Naming Conventions That Are Used for Configuring GRUB

Naming Conventions That Are Used by the findroot Command

How Multiple Operating Systems Are Supported by GRUB

x86: Supported GRUB Versions

Description of the menu.lst File (ZFS Support)

Description of the menu.lst File (UFS Support)

16.  x86: Booting a System That Does Not Implement GRUB (Tasks)

17.  Working With the Oracle Solaris Auto Registration regadm Command (Tasks)

18.  Managing Services (Overview)

19.  Managing Services (Tasks)

20.  Managing Software (Overview)

21.  Managing Software With Oracle Solaris System Administration Tools (Tasks)

22.  Managing Software by Using Oracle Solaris Package Commands (Tasks)

23.  Managing Patches

A.  SMF Services

Index

x86: Support for GRUB in the Oracle Solaris OS

The following sections contain additional reference information for administering GRUB in the Oracle Solaris OS.

x86: GRUB Terminology

To thoroughly grasp GRUB concepts, an understanding of the following terms is essential.


Note - Some of the terms that are described in this list are not exclusive to GRUB based booting.


boot archive

A collection of critical files that is used to boot the Oracle Solaris OS. These files are needed during system startup before the root file system is mounted. Multiple boot archives are maintained on a system:

  • A primary boot archive is used to boot the Oracle Solaris OS on an x86 based system.

  • A failsafe boot archive that is used for recovery when a primary boot archive is damaged. This boot archive starts the system without mounting the root file system. On the GRUB menu, this boot archive is called failsafe. The archive's primary purpose is to regenerate the primary boot archives, which are usually used to boot the system.

boot loader

The first software program that runs after you power on a system. This program begins the booting process.

failsafe archive

See boot archive.

GRUB

GNU GRand Unified Bootloader (GRUB) is an open-source boot loader with a menu interface. The menu displays a list of the operating systems that are installed on a system. GRUB enables you to easily boot these various operating systems, such as the Oracle Solaris OS, Linux, or Windows.

GRUB main menu

A boot menu that lists the operating systems that are installed on a system. From this menu, you can easily boot an operating system without modifying the BIOS or fdisk partition settings.

GRUB edit menu

A submenu of the GRUB main menu. GRUB commands are displayed on this submenu. These commands can be edited to change boot behavior.

menu.lst file

A configuration file that 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 in the GRUB menu. From the GRUB menu, you can easily boot an operating system without modifying the BIOS or fdisk partition settings.

miniroot

A minimal, bootable root (/) file system that resides on the Solaris installation media. A miniroot consists of the Solaris software that is required to install and upgrade systems. On x86 based systems, the miniroot is copied to the system to be used as the failsafe boot archive. See boot archive for details about the failsafe boot archive.

primary boot archive

See boot archive.

x86: Functional Components of GRUB

GRUB consists of the following functional components:

You cannot use the dd command to write stage1 and stage2 images to disk. The stage1 image must be able to receive information about the location of the stage2 image that is on the disk. Use the installgrub command, which is the supported method for installing GRUB boot blocks.

Naming Conventions That Are Used for Configuring GRUB

GRUB uses device-naming conventions that are slightly different from previous Solaris releases. 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 for this Oracle Solaris release.

Table 15-1 Conventions for GRUB Devices

Device Name
Description
(fd0)
First diskette
(fd1)
Second diskette
(nd)
Network device
(hd0,0)
First fdisk partition on first hard disk
(hd0,1)
Second fdisk partition on first hard disk
(hd0,0,a),
Slice a on first fdisk partition on first hard disk
(hd0,0,b)
Slice b on first fdisk partition on first hard disk

Note - All GRUB device names must be enclosed in parentheses.


For more information about fdisk partitions, see Guidelines for Creating an fdisk Partition in System Administration Guide: Devices and File Systems.

Naming Conventions That Are Used by the findroot Command

Starting with the Solaris 10 10/08 release, the findroot command replaces the root command that was previously used by GRUB. The findroot command provides enhanced capabilities for discovering a targeted disk, regardless of the boot device. The findroot command also supports booting from a ZFS root file system.

The following is a description of the device naming convention that is used by the findroot command for various GRUB implementations:

How Multiple Operating Systems Are Supported by GRUB

This section describes how multiple operating systems that are on the same disk are supported with GRUB. The following is an example of an x86 based system that has the Solaris 10 10/08 OS, the Solaris 9 OS, Linux, and Windows installed on the same disk.

Table 15-2 Sample GRUB Menu Configuration

Operating System
Location on Disk
Windows
fdisk partition 0
Linux
fdisk partition 1
Oracle Solaris
fdisk partition 2
Solaris 9 OS
Slice 0
Solaris 10 10/08 OS
Slice 3

Based on the preceding information, the GRUB menu would look like the following:

title Oracle Solaris 10
            findroot (pool_rpool,0,a)
            kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
            module /platform/i86pc/boot_archive
title Solaris 9 OS (pre-GRUB)
            root (hd0,2,a)
            chainloader +1
            makeactive
title Linux
            root (hd0,1)
            kernel <from Linux GRUB menu...>
            initrd <from Linux GRUB menu...>
title Windows
            root (hd0,0)
            chainloader +1

Note - The Oracle Solaris slice must be the active partition. Also, do not indicate makeactive under the Windows menu. Doing so causes the system to boot Windows every time. Note that if Linux has installed GRUB on the master boot block, you cannot access the Oracle Solaris boot option. The inability to access the Solaris boot option occurs whether or not you designate it as the active partition.


In this case, you can do one of the following:

For information about the Oracle Solaris Live Upgrade boot environment, see Oracle Solaris 10 8/11 Installation Guide: Solaris Live Upgrade and Upgrade Planning.

x86: Supported GRUB Versions

In Oracle Solaris 10, GRUB uses multiboot. The contents of the menu.lst file vary, depending on the Oracle Solaris release you are running, the installation method that is used, and whether you are booting the system from an Oracle Solaris ZFS root or a UFS root.

Description of the menu.lst File (ZFS Support)

The following are various examples of a menu.lst file for a boot environment that contains a ZFS boot loader:


Note - Because the miniroot is mounted as the real root file system, the entry for failsafe booting in the menu.lst file does not change to the ZFS bootfs property, even if the failsafe archive is read from a ZFS dataset. The ZFS dataset is not accessed after the boot loader reads the miniroot.


Example 15-1 Default menu.lst File (New Installation or Standard Upgrade)

title Solaris 10 5/08 s10x_nbu6wos_nightly X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

Example 15-2 Default menu.lst File (Oracle Solaris Live Upgrade)

title be1
findroot (BE_be1,0,a)
bootfs rpool/ROOT/szboot_0508
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title be1 failsafe
findroot (BE_be1,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

Description of the menu.lst File (UFS Support)

The following are examples of a menu.lst file on a system that supports booting from UFS.

Example 15-3 Default GRUB menu.lst File (New Installation or Standard Upgrade)

title Solaris 10 5/08 s10x_nbu6wos_nightly X86 
findroot (pool_rpool,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (rootfs0,0,a)
kernel /boot/multiboot kernel/unix -s -B console-ttyb
module /boot/x86.miniroot-safe

Example 15-4 Default GRUB menu.lst File (Oracle Solaris Live Upgrade)

title be1
findroot (BE_be1,0,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive

title be1 failsafe
findroot (BE_be1,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe