|Skip Navigation Links|
|Exit Print View|
|Booting and Shutting Down Oracle Solaris on x86 Platforms Oracle Solaris 11 Information Library|
The primary methods for modifying boot parameters on an x86 based system are as follows:
By using the eeprom command
The eeprom command is used to assign a different value to a standard set of parameters. These values, which are equivalent to the SPARC OpenBoot PROM NVRAM variables, are stored either in the /boot/solaris/bootenv.rc file or in the menu.lst file. Changes that are made to boot parameters by using the eeprom command persist over each system reboot and are preserved during a software upgrade. See the eeprom(1M) man page for more information.
Caution - If you directly edit the menu.lst file, certain boot parameters (boot-file, boot-arguments, and console) cannot be changed at a later time by using the eeprom command.
By editing the GRUB menu at boot time
Changes that are made by modifying the default kernel usage at boot time override options that you set by using the eeprom command. However, these changes only remain in effect until the next time you boot the system. See the kernel(1M) man page for more information.
By editing the GRUB configuration file
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.
# eeprom parameter=new-value
# 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
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:
Specifies the kernel to boot.
Prompts the user for configuration information.
Boots the system to a single-user state.
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.
Boots the system with verbose messages enabled.
Does not boot the system in clustered mode.
Boots the system with the kernel debugger enabled
Controls the boot behavior of the Service Management Facility (SMF)
There are two categories of options: recovery options and messages options.
Specifies an alternative executable as the primordial process. altinit is a valid path to an executable.
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:
Disables the Advanced Configuration and Power Interface (ACPI) enumeration of devices.
Disables ACPI entirely.
Specifies to use VGA text mode for booting. See Support for Bitmapped Console.
Specifies that the console use graphics mode for booting, which enables a high-resolution state.
Specifies that the console use text mode for booting, which enables a high-resolution state.
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.
Redirects the console to ttya.
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.
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.
When the boot sequence begins, the GRUB main menu is displayed.
Note - Pressing the Escape key returns you to the GRUB main menu without saving your changes.
Changes you make take effect when the system is booted.
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:
Specifies to use VGA text mode for booting.
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:
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:
The vbeset entry must be specified after the kernel$ and module$ entries in the GRUB menu.
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:
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
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
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--------------------
Specifies the title of the operating system for the menu entry.
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.
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.
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.
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.
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.
Typically, this file is /boot/grub/menu.lst.
# bootadm list-menu
$ su root Password:
# vi /pool-name/boot/grub/menu.lst
where pool-name is the name of the ZFS storage pool.
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 - 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.
When the system reboots, the GRUB menu should include entries for both the Linux and Oracle Solaris operating systems.
Use this procedure to determine the location of the active GRUB menu and to list current GRUB menu entries.
# bootadm 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
# bootadm set-menu menu-entry
Maintains the GRUB menu. The location of the active GRUB menu is boot/grub/menu.lst.
Specifies the GRUB menu entry to set as the default.
# 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