Go to main content

Booting and Shutting Down Oracle® Solaris 11.3 Systems

Exit Print View

Updated: October 2017
 
 

x86: Adding Kernel Arguments by Editing the GRUB Menu at Boot Time

On x86 platforms, you can set boot attributes and kernel arguments for a specific boot entry by editing the GRUB menu at boot time. These changes persist until the next time the system is booted.

To permanently set boot attributes for a specific boot entry, use the bootadm command with the change-entry subcommand. See How to Set Attributes for a Specified Boot Entry in the GRUB Menu.

When you boot an x86 based system the GRUB main menu is displayed. This menu contains a list of all of the boot entries that are currently on the system. To edit a specific boot entry, use the arrow keys to select the entry, then type e to edit the entry. In the GRUB edit screen, navigate to the $multiboot line, then type the additional boot option or kernel argument at the end of the line.

The $multiboot line in the GRUB edit menu might look similar to the following:

$multiboot /ROOT/transition/@/$kern $kern -B console=graphics -B $zfs_bootfs

For example, to disable the e1000g network driver and load kmdb at boot time, you would edit the GRUB menu for the specified entry, as follows:

$multiboot /ROOT/solaris/@/$kern $kern -B disable-e1000g=true -k -B $zfs_bootfs

To exit the GRUB edit menu and boot the entry you just edited, press Control-X. If you have a system with UEFI firmware, and you are not using a serial console, pressing F10 also boots the entry.


Note -  If you plan to edit the GRUB menu at boot time, you must reboot the system by using the –p option of the reboot command to ensure that the GRUB menu is displayed during the boot sequence.

The following kernel arguments and options can be specified when you edit the GRUB menu at boot time:

unix

Specifies the kernel to boot.

–a

Prompts the user for configuration information.

–i altinit

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

–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.

–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.

–s

Boots the system to a single-user state.

–v

Boots the system with verbose messages enabled.


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

For more information, see the kernel(1M) man page.

x86: Adding –B prop=val Kernel Arguments at Boot Time by Editing the GRUB Menu

You can specify certain kernel arguments at boot time, for example, setting the Oracle Solaris system console, by specifying –B prop=val options. The following are the various ways in which you can modify boot parameters on x86 platforms at boot time by adding –B prop=val options to a specified boot entry:

–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 Redirecting the Oracle Solaris Console at Boot Time.

–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.

–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.

–B uefirt_disable=1

Disables the use of UEFI runtime services in Oracle Solaris.

For more information, see the boot(1M) man page.

Example 12  Configuring Text Mode Boot Parameters for the Oracle Solaris System 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, console=force-text, directs the system to not use a VGA adapter as a bitmap device and sets the adapter to VGA text mode.

Note that setting the console=force-text property for the console will not transition the VGA adapter to text mode on systems with UEFI firmware.

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 13  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

Redirecting the Oracle Solaris Console at Boot Time

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 UEFI firmware and traditional BIOS firmware with 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.

Oracle Solaris boot entries will attempt a specific set of graphics modes in a particular order. These modes are listed in the set gfxpayload line that follows the $multiboot line in the grub.cfg file. You can alter this line if you desire a mode that is not listed. To make this change persistent, you must copy the entry to the custom.cfg file. Otherwise, the next time the grub.cfg file is autogenerated, the gfxpayload setting is overwritten.

The syntax for the set gfxpayload argument is as follows:

WidthxHeight[xbit-depth]

The “x” is the actual character, for example:

set gfxpayload=1024x768;1280x1024x32

This setting means that GRUB will first attempt to locate the 1024x768 mode, in any bit depth (higher bit depths are preferred), then it will attempt to locate 1280x1024, in a 32-bit depth. The special keyword, text, chooses the text mode. It should be noted that this keyword might not work on UEFI firmware. The keep keyword specifies that the mode that GRUB is using, if a graphical console type is in use, should be maintained and used by Oracle Solaris as its frame buffer console resolution.