JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Booting and Shutting Down Oracle Solaris on x86 Platforms     Oracle Solaris 11 Information Library
search filter icon
search icon

Document Information

About This Book

1.  Booting and Shutting Down an x86 Based System (Overview)

2.  Booting an x86 Based System to a Specified State (Tasks)

3.  Shutting Down a System (Tasks)

4.  Rebooting an x86 Based System (Tasks)

5.  Booting an x86 Based System From the Network (Tasks)

6.  Modifying Boot Parameters on an x86 Based System (Tasks)

Modifying Boot Parameters on an x86 Based System (Task Map)

Modifying Boot Parameters on an x86 Based System

Displaying and Setting Boot Parameters by using the eeprom Command

How to Modify Boot Parameters by Using the eeprom Command

Modifying Boot Parameters at Boot Time

x86: How to Modify Boot Parameters at Boot Time

Support for Bitmapped Console

Disabling Shutdown Animation

Modifying Boot Entries and Parameters by Editing the menu.lst File

How to Add a Linux Entry to the GRUB Menu After Installing Oracle Solaris

Displaying and Setting Parameters for Boot Entries by Using the bootadm Command

How to Locate the Active GRUB Menu and List Current Menu Entries

How to Set the Default Boot Entry for the Active GRUB Menu

7.  Creating, Administering, and Booting From ZFS Boot Environments on x86 Platforms (Tasks)

8.  Keeping an x86 Based System Bootable (Tasks)

9.  Troubleshooting Booting an x86 Based System (Tasks)

Index

Modifying Boot Parameters on an x86 Based System

The primary methods for modifying boot parameters on an x86 based system are as follows:

Displaying and Setting Boot Parameters by using the eeprom Command

To determine the default values for a specific boot parameter, use the eeprom command, as follows:

$ eeprom parameter

For example, to display the default value for the boot-device parameter, you would type:

$ eeprom boot-device

Note - You do not need to be the root user to display boot parameters. However, to change boot parameters or any other parameters by using the eeprom command, you must become the root user.


How to Modify Boot Parameters by Using the eeprom Command

  1. Become the root role.
  2. Change the specified parameter.
    # eeprom parameter=new-value
  3. Verify that the new parameter has been set.
    # eeprom parameter

    The output should display the new eeprom value for the specified parameter.

Example 6-1 Setting the auto-boot Parameter by Using the eeprom Command

The following example shows how to set the auto-boot boot parameter to true.

# eeprom auto-boot?=true

When the eeprom command is run in user mode, any parameters that have a trailing question mark (?) need to be enclosed in double quotation marks to prevent the shell from interpreting the question mark. Preceding the question mark with an escape character (\) also prevents the shell from interpreting the question mark. For example:

# eeprom "auto-boot?"=true

Modifying Boot Parameters at Boot Time

To modify a system's boot behavior at boot time, for example to boot a system to a single-user state or with the kernel debugger enabled, when the GRUB menu is displayed, interrupt the boot process by typing e to edit the boot entry in the GRUB menu.

The following list describes the boot arguments and options that you can specify by editing the GRUB menu at boot time:

unix

Specifies the kernel to boot.

-a

Prompts the user for configuration information.

-s

Boots the system to a single-user state.

-r

Specifies a reconfiguration boot.

The system probes all attached hardware devices and then assigns nodes in the file system to represent only those devices that are actually found.

-v

Boots the system with verbose messages enabled.

-x

Does not boot the system in clustered mode.

-k

Boots the system with the kernel debugger enabled

-m smf-options

Controls the boot behavior of the Service Management Facility (SMF)

There are two categories of options: recovery options and messages options.

-i altinit

Specifies an alternative executable as the primordial process. altinit is a valid path to an executable.

-B prop=value [,prop=value]...

Specifies kernel boot parameters.

The following are various ways you can modify boot parameters in the GRUB menu by using the -B prop=val option:

-B acpi-enum=off

Disables the Advanced Configuration and Power Interface (ACPI) enumeration of devices.

-B acpi-user-options=0x2

Disables ACPI entirely.

-B console=force-text

Specifies to use VGA text mode for booting. See Support for Bitmapped Console.

-B console=graphics

Specifies that the console use graphics mode for booting, which enables a high-resolution state.

-B console=text

Specifies that the console use text mode for booting, which enables a high-resolution state.

-B screen-#columns=value, screen-#rows=
value

Specifies the number of rows and columns of the frame buffer console. The most appropriate font for the selected number of rows or columns is automatically detected by the system. This option is used to optimize the frame buffer console size. See Support for Bitmapped Console.

-B console=ttya

Redirects the console to ttya.

-B console=ttya,acpi-enum=off

Redirects the console to ttya and disables the ACPI enumeration of devices.


Note - When parameters are specified by using the eeprom command and on the GRUB command line, the GRUB command line takes precedence.


x86: How to Modify Boot Parameters at Boot Time

When you modify the default kernel usage by editing the GRUB menu at boot time, the changes do not persist over a system reboot. The default boot parameters are restored the next time you boot the system.

  1. Reboot the system.

    When the boot sequence begins, the GRUB main menu is displayed.

  2. Use the arrow keys to select the boot entry to edit.
  3. Type e to access the GRUB edit menu.
  4. Select the kernel$ line in the menu.
  5. Type e to add boot arguments to the line.
  6. Type any additional boot arguments.
  7. Press Return to save your changes and return to the previous menu.

    Note - Pressing the Escape key returns you to the GRUB main menu without saving your changes.


  8. To boot the system, type b.

    Changes you make take effect when the system is booted.

Support for Bitmapped Console

Oracle Solaris 11 supports higher resolution and color depth on x86 based systems than the older Video Graphics Array (VGA) 640-480 16-color console. This support is provided for systems that use traditional BIOS and Video Electronics Standards Association (VESA) option read-only memory (ROM). Note that support is limited to when a graphics card or frame buffer is used as a physical or virtual console. There is no impact on the behavior of serial consoles.

To support this feature, two command-line -B option=val parameters are available:

-B console=force-text

Specifies to use VGA text mode for booting.

-B screen-#columns=value, screen-#rows=
value

Specifies the number of rows and columns of the frame buffer console. The most appropriate font for the selected number of rows or columns is automatically detected by the system. This option is used to optimize the frame buffer console size.

By default, GRUB detects a resolution and color depth that works with the installed video card and monitor. However, a different resolution can be specified, for example, a higher resolution and different color depth.

GRUB supports the following two methods for specifying video mode:

vbeset hexmode

Specifies the hex code of the desired VESA mode. To obtain a list of all of the modes that are supported by the card and monitor, use the vbeprobe command at the GRUB command prompt, which displays a list similar to the following:

0x117: Direct Color, 1024x768x16
0x118: Direct Color, 1024x768x32
0x11a: Direct Color, 1280x1024x16
0x11b: Direct Color, 1280x1024x32
[...]

A vbeset entry that specifies a 1024x768x32 configuration is shown as follows:

vbset 0x118

The vbeset entry must be specified after the kernel$ and module$ entries in the GRUB menu.

vbematch xres yres depth

Directs GRUB to search for the specified configuration, for example 1024x768x32. If found, GRUB sets the configuration that is specified.

When used instead of a vbeset entry, a vbematch entry for a 1024x768x32 configuration looks like the following:

vbematch 1024 768 32

A vbematch entry must be specified after the kernel$ and module$ entries in the GRUB menu.

Example 6-2 x86: Configuring Text Mode Boot Parameters for the Console

In text mode, the console output is sent to the frame buffer, and input is received from the keyboard. A variant of text mode, the graphics mode displays an image with an animation until either a key is pressed or console interaction is required by the console login, sulogin, or kmdb command. A new property of text, force-text, directs the system to not use a VGA adapter as a bitmap device and sets the adapter to VGA text mode.

When this property is not present, the console device reverts to the device that is specified by the input-device and output-device property pair. When neither the console property, nor the input-device and output-device property pair are present, the console defaults to the frame buffer and keyboard.

The following example shows how to specify the -B console=force-text property on the kernel command line at boot time:

-B console=force-text

Example 6-3 x86: Enabling a Graphical Display and Configuring Console Text Mode Parameters

By default, the console text mode is 80 columns by 24 rows. To reconfigure this parameter, use the -B option with the screen-#columns=value and screen-#rows=value parameters.

For example, the following parameters can be specified on the kernel command line to enable a graphical display and allocate a console terminal of 100 columns by 60 rows:

-B console=graphics, screen-#columns=100,screen-#rows=60

Disabling Shutdown Animation

During the shutdown process, if the console=graphics option was used to boot the system, and the shutdown is triggered by the Xorg server, a progress status indicator is displayed. To prevent the progress status indicator from displaying, set the new splash-shutdown property of the svc:/system/boot-config SMF service to false, as follows:

# svccfg -s svc:/system/boot-config:default setprop config/splash_shutdown = false
# svcadm refresh svc:/system/boot-config:default

Modifying Boot Entries and Parameters by Editing the menu.lst File

The GRUB menu, which is based on entries in the menu.lst configuration file, can be customized. Solaris automatically manages GRUB menu.lst entries for Oracle Solaris boot environments (BEs). As boot environments are created (either by the packaging system or explicitly with the beadm command), GRUB entries are added to the menu.lst file. When boot environments are removed by using the beadm destroy command with the destroy subcommand, the corresponding entries are removed from the GRUB menu.lst file. Oracle Solaris does not automatically add menu.lst entries for other operating systems that you have installed on your system. You must manually add menu entries for those operating systems. For more information, see How to Add a Linux Entry to the GRUB Menu After Installing Oracle Solaris.

A typical menu.lst file for Oracle Solaris 11 could include the following information:

#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Oracle Solaris 11 1
findroot (pool_rpool,0,a) 2
bootfs rpool/ROOT/solaris 3
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics 4
module$ /platform/i86pc/$ISADIR/boot_archive 5
#---------------------END BOOTADM-------------------- 
  1. Specifies the title of the operating system for the menu entry.

  2. Searches all partitions for the SIGNATURE file name. In this example, the file name is pool_rpool).

    GRUB searches only in the /boot/grub/bootsign directory for the file name and then stops as soon as the first instance of the file is found. To be useful, the name of the signature file must be unique across all partitions. After locating the signature file, GRUB invokes the rootcommand on that partition. To optimize the search, an optional partition and slice can be specified.

  3. Sets the current ZFS boot file system to the specified value. In this example of the menu.lst file, the property sets the current ZFS boot file system to rpool/ROOT/solaris.

  4. Loads the primary boot image from the specified path. The rest of this line is passed verbatim as the kernel command line. The dollar sign ($) is an expansion of the $ISADIR entry.

  5. Loads the boot archive for the given kernel. The dollar sign ($) is an expansion of the $ISADIR entry.


Note - To learn more about specific GRUB commands, type help command from the command line.


A configurable timeout is available to boot the default operating system. The default entry that is booted is configurable through the default command. The installation software typically sets the command to boot one of the valid boot entries. To boot a different version of Oracle Solaris (if applicable), or to boot another operating system besides Oracle Solaris, use the arrow keys to select that boot entry, then press Enter to boot that operating system. Note that if the default command is not set, the first boot entry in the GRUB menu will boot.

Only the active menu.lst file is used to boot the system. To modify the GRUB menu that is displayed when you boot the system, edit the active GRUB menu.lst file. Changing any other menu.lst file has no effect on the menu that is displayed when you boot the system. To determine the location of the active menu.lst file, use the list-menu subcommand of the bootadm command.

How to Add a Linux Entry to the GRUB Menu After Installing Oracle Solaris

If you are setting up a boot environment in such a way that you install Linux on one partition first and Oracle Solaris on another partition afterwards, you will need to follow special instructions to ensure that the GRUB menu information from the new installation does not erase the GRUB menu information from a previous installation. The following procedure describes how to manually update the menu.lst file to include a Linux entry from a previous installation. These instructions assume that you have already installed Linux on your system and then installed Oracle Solaris afterwards.

  1. At the completion of the Linux installation, copy the active menu.lst file to a USB drive, so you can reuse the information after you have completed the Oracle Solaris installation.

    Typically, this file is /boot/grub/menu.lst.

    • If you are unsure about the location of the active menu.lst file, use the bootadm command to locate the file:
      # bootadm list-menu
    • If you are unsure about the location of the USB drive, use the mount command, with no options, to determine where the USB drive is mounted. Then, copy the menu.list file to that location.
  2. After the installation has completed, edit the active menu.lst file, as follows:
    1. Open a terminal window and become the root role.
      $ su root
      Password:
    2. Using a text editor, edit the menu.lst file.

      For example:

      # vi /pool-name/boot/grub/menu.lst

      where pool-name is the name of the ZFS storage pool.

    3. Using the USB drive that you copied the menu.lst file to in Step 1, copy the Linux menu.lst information from the original Linux installation to the end of new menu.lst file.

      For example, the menu.lst file from an Ubuntu installation would look similar to the following:

      title        Ubuntu 8.04, kernel 2.6.24-18-generic
          root        (hd0,4)
          kernel        /vmlinuz-2.6.24-18-generic \
      root=UUID=1ed7fa17-6d77-4b49-be1a-22481310fd1b ro quiet splash
          initrd        /initrd.img-2.6.24-18-generic
          quiet
      
          title        Ubuntu 8.04, kernel 2.6.24-18-generic (recovery mode)
          root        (hd0,4)
          kernel        /vmlinuz-2.6.24-18-generic \
      root=UUID=1ed7fa17-6d77-4b49-be1a-22481310fd1b ro single
          initrd        /initrd.img-2.6.24-18-generic

      Caution

      Caution - Do not directly edit the original contents of the menu.lst file. Always add new information to the end of the file, or make changes by duplicating the existing content, then modify that content.


    4. Save and exit the file.
  3. Reboot the system.

    When the system reboots, the GRUB menu should include entries for both the Linux and Oracle Solaris operating systems.

Displaying and Setting Parameters for Boot Entries by Using the bootadm Command

How to Locate the Active GRUB Menu and List Current Menu Entries

Use this procedure to determine the location of the active GRUB menu and to list current GRUB menu entries.

  1. Become the root role.
  2. To list the location of the active GRUB menu and current GRUB menu entries, type:
    # bootadm list-menu
    list-menu

    Lists the location of the active GRUB menu, as well as the current GRUB menu entries. Information about the autoboot-timeout default entry number, and the title of each entry, is included in the output.

Example 6-4 Listing the Location of the Active GRUB Menu and Current GRUB Menu Entries

# bootadm list-menu
The location for the active GRUB menu is: /stubboot/boot/grub/menu.lst
default=0
timeout=30
0 2010-12-10-be
1 Oracle Solaris 11
2 Linux

How to Set the Default Boot Entry for the Active GRUB Menu

  1. Become the root role.
  2. To set the default boot entry in the active GRUB menu, type:
    # bootadm set-menu menu-entry
    set-menu

    Maintains the GRUB menu. The location of the active GRUB menu is boot/grub/menu.lst.

    menu-entry

    Specifies the GRUB menu entry to set as the default.

  3. To verify that the default menu entry has been changed, type:
    # bootadm list-menu

    The new default menu entry should be displayed.

Example 6-5 Switching the GRUB Default Menu Entry

This example shows how to switch the default GRUB menu to one of the menu entries that is displayed in the previous example. The menu entry that is selected is Linux, menu entry 2.

# bootadm set-menu default=2