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.
The following kernel arguments and options can be specified when you edit the GRUB menu at boot time:
Specifies the kernel to boot.
Prompts the user for configuration information.
Specifies an alternative executable as the primordial process. altinit is a valid path to an executable.
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 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 to a single-user state.
Boots the system with verbose messages enabled.
For more information, see the kernel(1M) man page.
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:
Disables the Advanced Configuration and Power Interface (ACPI) enumeration of devices.
Disables ACPI entirely.
Specifies to use VGA text mode for booting. See Redirecting the Oracle Solaris Console at Boot Time.
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.
Redirects the console to ttya.
Redirects the console to ttya and disables the ACPI enumeration of devices.
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 ConsoleIn 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-textExample 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
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:
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.
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.