Booting an x86 Based System by Using GRUB (Task Map)
x86: Error Messages Upon System Boot
The Solaris installation software and utilities, including the bootadm command, use the
presence of the /boot/multiboot and /platform/i86pc/multiboot files to determine if the system's
running OS or the Solaris installation software implements the GRUB boot method or the
Solaris Device Configuration Assistant boot method.
If the multiboot module from the previous GRUB implementation is loaded by GRUB,
the console displays an error message that says multiboot is no longer support
and to manually update the entries in the menu.lst file to successfully boot
the system. For more information, see https://www.sun.com/msg/SUNOS-8000-AK and the boot(1M) man
page.
For instructions on booting a system interactively modifying the GRUB kernel line at
boot time, see x86: How to Modify Boot Behavior by Editing the GRUB Menu at Boot Time. For instructions on modifying the menu.lst file permanently
after the system has booted, see x86: How to Modify Boot Behavior by Editing the menu.lst File.
x86: How to Boot a System to Run Level 3 (Multiuser)
Use this procedure to boot a system that is currently at run
level 0 to run level 3.
- Reboot the system.
# reboot
If the system displays the Press any key to reboot prompt, press any key to reboot the
system.
You can also use the Reset button at this prompt. If the
system is shut down, turn the system on with the power switch.
When the boot sequence begins, the GRUB menu is displayed.
- When the GRUB menu is displayed, press Enter to boot the default OS
instance.
If you do not choose an entry within 10 seconds, the system automatically
boots to run level 3.
The login prompt is displayed when the boot process has finished successfully.
- Log in to the system.
hostname console login:
- Verify that the system booted to run level 3.
# who -r
system% who -r
. run-level 3 Mar 2 09:44 3 0 S
Example 12-9 x86: Booting a System To Run Level 3 (Multiuser Level)
# reboot
Jul 24 11:29:52 bearskin reboot: rebooted by root
syncing file systems... done
rebooting...
Adaptec AIC-7899 SCSI BIOS v2.57S4
(c) 2000 Adaptec, Inc. All Rights Reserved.
Press <Ctrl><A> for SCSISelect(TM) Utility!
Ch B, SCSI ID: 0 SEAGATE ST336607LSUN36G 160
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
==============================================================
Solaris 10 10/08 s10x_u6wos_03 X86
Solaris failsafe
==============================================================
Use the and keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
SunOS Release 5.10 Version Generic_137138-04 32-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hostname: pups
NIS domain name is ....sfbay.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)
pups console login:
# who -r
. run-level 3 Jul 24 11:31 3 0 S
x86: How to Boot a System to Run Level S (Single-User Level)
Use this procedure to boot a system that is at run level
0 to run level S. The single-user level is used for performing system
maintenance.
Note - This procedure can be used for all GRUB implementations. However, the boot entries
in the GRUB main menu vary, depending on the Solaris release you are
running.
For a description of all the kernel options that you can specify
in the GRUB menu at boot time, see x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time.
- Reboot the system.
# reboot
If the system displays the Press any key to reboot prompt, press any key to reboot the
system.
You can also use the Reset button at this prompt. If the
system is shut down, turn the system on with the power switch.
When the boot sequence begins, the GRUB menu is displayed.
- When the GRUB main menu is displayed, type e to edit the
GRUB menu.
- Depending on the release you are running, use the arrow keys to choose the
kernel or kernel$ line.
If you cannot use the arrow keys, use the caret key (^) key
to scroll up and the letter v key to scroll down.
- Type e again to edit the boot entry.
From here, you can add options and arguments to the kernel or kernel$
line.
- To boot the system in single-user mode, type -s at the end of
the boot entry line. Then, press Return to go back to the
previous screen.
- To specify other boot behaviors, replace the -s option with the appropriate boot
option.
The following alternate boot behaviors can be specified in this manner.
Perform a reconfiguration boot.
Boot a 64-bit capable system in 32-bit mode.
Boot the system with the kernel debugger.
Redirect the console.
For more information, see the boot(1M)man page.
- To boot the system in single-user mode, type b.
- When prompted, type the root password.
Note - If you are running the OpenSolaris 2008.11 release, you need to also enter
an account name before entering the root password. The account name can
be root or any other privileged account, such as “jack” on the Live
CD, or an account that you created during the installation.
- Verify that the system is at run level S.
# who -r
. run-level S Jun 13 11:07 S 0 0
- Perform the system maintenance task that required the run level change to S.
- After you complete the system maintenance task, reboot the system.
Example 12-10 x86: Booting a System in Single-User Mode
# reboot
Jul 2 14:30:01 pups reboot: initiated by root on /dev/console
syncing files...
Press <Ctrl><A> forPSCSISelect(TM) Utility!
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
===================================================
Solaris 10 10/08 s10x_u6wos_03 X86
Solaris failsafe
=====================================================
Use the and keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
=====================================================
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
=====================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
================================================
Use the and keys to select which entry is highlighted.
Press 'b' to boot, 'e' to edit the selected command in the
boot sequence, 'c' for a command-line, 'o' to open a new line
after ('O' for before) the selected line, 'd' to remove the
selected line, or escape to go back to the main menu.
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ESC at any time exits. ]
grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
=======================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s
module /platform/i86pc/boot_archive
======================================
Use the and keys to select which entry is highlighted.
Press 'b' to boot, 'e' to edit the selected command in the
boot sequence, 'c' for a command-line, 'o' to open a new line
after ('O' for before) the selected line, 'd' to remove the
selected line, or escape to go back to the main menu.
.
.
.
SunOS Release 5.10
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Hostname: pups Requesting System Maintenance Mode SINGLE USER MODE
Root password for system maintenance (control-d to bypass):
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
Jul 2 14:41:48 su: 'su root' succeeded for root on /dev/console Sun Microsystems Inc.
# who -r
who -r . run-level S Jul 2 14:39 S 0 0 #
x86: How to Boot a System Interactively
Use this procedure to boot a system if you need to specify
an alternate kernel or an alternate /etc/system file.
Before You Begin
To specify an alternate /etc/system file when booting an x86 based system interactively
by using the boot -a command, you must first perform the following steps:
1. Make backup copies of the /etc/system and the boot/solaris/filelist.ramdisk files.
# cp /etc/system /etc/system.bak
# cp /boot/solaris/filelist.ramdisk /boot/solaris/filelist.ramdisk.orig
2. Add the /etc/system.bak file name to the /boot/solaris/filelist.ramdisk file
# echo "etc/system.bak" >> /boot/solaris/filelist.ramdisk
3. Update the boot archive.
# bootadm update-archive -v
- Reboot the system.
# reboot
If the system displays the Press any key to reboot prompt, press any key to reboot the
system.
You can also use the Reset button at this prompt. If the
system is shut down, turn the system on with the power switch.
When the boot sequence begins, the GRUB main menu is displayed.
- To access the GRUB edit menu, type e.
- Use the arrow keys to select the kernel or kernel$ line.
- Type e to edit the boot entry line.
- Type -a to boot the system interactively. Then, press Enter to return to
the GRUB main menu.
- To boot the system interactively, type b.
- Type a default directory for modules, or press Enter to accept the default.
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
- Type an alternate system file name, alternate-file.
Name of system file [etc/system]: /etc/system.bak
Pressing Enter without providing an alternate file accepts the default.
Repair the damaged /etc/system file.
- Reboot the system to run level 3.
Example 12-11 x86: Booting a System Interactively
# reboot
syncing file systems... done
rebooting...
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
===================================================
Solaris 10 10/08 s10x_u6wos_03 X86
Solaris failsafe
=====================================================
Use the and keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the
commands before booting, or 'c' for a command-line.
=====================================================
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
=====================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive
======================================================
Use the and keys to select which entry is highlighted.
Press 'b' to boot, 'e' to edit the selected command in the
boot sequence, 'c' for a command-line, 'o' to open a new line
after ('O' for before) the selected line, 'd' to remove the
selected line, or escape to go back to the main menu.
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ESC at any time exits. ]
grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a
GNU GRUB version 0.95 (637K lower / 2096064K upper memory)
===================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a
module /platform/i86pc/boot_archive
====================================================
.
.
.
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
Name of system file [/etc/system]: /etc/system.bak
SunOS Release 5.10 Version Generic_137138-04 32-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hostname: pups
NIS domain name is ....sfbay.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)
pups console login: