System Administration Guide: Basic Administration
Previous Next

Booting an x86 Based System by Using GRUB (Task Map)

Task

Description

For Instructions

Boot an x86 based system to run level 3, multiuser level.

Use this boot method to bring the system back to multiuser level after shutting down the system or performing a system hardware maintenance task.

x86: How to Boot a System to Run Level 3 (Multiuser)

Boot an x86 based system the in single-user mode.

Use this boot method to perform a system maintenance task, such as backing up a file system.

x86: How to Boot a System to Run Level S (Single-User Level)

Boot an x86 based system interactively.

Use this boot method after making temporary changes to a system file or the kernel for testing purposes.

x86: How to Boot a System Interactively

Display a list a ZFS bootable datasets on an x86 based system.

Use one of the following methods to display the available BEs on an x86 based system that has a ZFS root file system:

  • lustatus

  • bootadm list-menu

How to Display a List of the Available ZFS Boot Environments on an x86 Based System

Boot an x86 based system from a ZFS root file system.

If you install or upgrade your system to a Solaris release that supports a ZFS boot loader, the GRUB menu entry for the default ZFS BE contains the -B $ZFS-BOOTFS boot argument by default. The system boots automatically from ZFS.


Note - This option is supported only for boot devices that contain a ZFS pool.


How to Boot From a ZFS Root File System on an x86 Based System

Boot the failsafe archive on an x86 based system.

Use this procedure to boot the failsafe archive on an x86 based system. Then, run the bootadm command to update the boot archive.

How to Boot the Failsafe Archive on an x86 Based System by Using GRUB

Boot an x86 based failsafe archive to forcibly update a corrupt boot archive.

Use this procedure in cases where the boot archive is corrupt, and the system refuses to boot normally, or you are not prompted to update an inconsistent boot archive.

x86: How to Boot the Failsafe Archive to Forcibly Update a Corrupt Boot Archive

Boot an x86 based system from the network by using GRUB.

Use this method to boot a PXE or non-PXE device from the network with the default network configuration strategy. This method is also used for booting a diskless client.

x86: How to Perform a GRUB Based Boot From the Network

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 http://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.

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

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

  3. Log in to the system.
    hostname console login:
  4. 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.

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

  2. When the GRUB main menu is displayed, type e to edit the GRUB menu.
  3. 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.

  4. Type e again to edit the boot entry.

    From here, you can add options and arguments to the kernel or kernel$ line.

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

  6. To boot the system in single-user mode, type b.
  7. 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.


  8. Verify that the system is at run level S.
    # who -r
    .       run-level S  Jun 13 11:07     S      0  0
  9. Perform the system maintenance task that required the run level change to S.
  10. 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
  1. 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.

  2. To access the GRUB edit menu, type e.
  3. Use the arrow keys to select the kernel or kernel$ line.
  4. Type e to edit the boot entry line.
  5. Type -a to boot the system interactively. Then, press Enter to return to the GRUB main menu.
  6. To boot the system interactively, type b.
  7. Type a default directory for modules, or press Enter to accept the default.
    Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
  8. 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.

  9. 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:
Previous Next