System Administration Guide: Basic Administration

Chapter 16 x86: Booting a System That Does Not Implement GRUB (Tasks)

This chapter describes the procedures for booting an x86 based system in Oracle Solaris releases that do not implement GRUB.


Note –

Starting with the Solaris 10 1/06 release, the open source GRand Unified Bootloader (GRUB) has been implemented on x86 based systems. GRUB is responsible for loading a boot archive, which contains the kernel modules and configuration files, into the system's memory. For more information about GRUB based booting, see Booting an x86 Based System by Using GRUB (Task Map).


For overview information about the boot process, see Chapter 9, Shutting Down and Booting a System (Overview).

For step-by-step instructions on booting a SPARC based system, see Chapter 12, Booting an Oracle Solaris System (Tasks).

x86: Booting a System (Task Map)

Header 

Header 

Header 

Boot an x86 based system to run level 3. 

Boot to run level 3. Used after shutting down the system or performing some system hardware maintenance task.  

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

Boot an x86 based system to single-user mode. 

Boot to run level S. Used after performing 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. 

Boot interactively. Used after making temporary changes to a system file or the kernel for testing purposes. 

x86: How to Boot a System Interactively

Boot an x86 based system from the network. 

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

x86: How to Boot a System From the Network

Solaris 10: Use the Device Configuration Assistant on an Oracle Solaris x86 based system.


Note –

Starting with the Solaris 10 1/06 release, the Device Configuration Assistant has been replaced by the GRUB menu.


Used after changing the hardware configuration of the system. This utility enables you to boot the Solaris system from a different boot device, configure new or incorrectly configured hardware, or perform other device-related or boot-related tasks. 

x86: How to Enter the Device Configuration Assistant

Boot a system for recovery purposes. 

Used to boot the system when a damaged file is preventing the system from booting. You might need to do one or both of the following to boot for recovery purposes: 

x86: How to Stop a System for Recovery Purposes

x86: Forcing a Crash Dump and Reboot of the System

x86: How to Boot a System for Recovery Purposes

Boot the system with the kernel debugger (kmdb).

Used to troubleshooting system problems  

x86: How to Boot a System With the Kernel Debugger (kmdb)

Troubleshoot boot problems on systems that have 64-bit computing capabilities. 

If you have hardware that requires the system to load one or more device drivers that are not available in 64-bit mode, booting the system to 64-bit mode could fail. You would then need to boot the system to 32-bit mode. 

x64: Troubleshooting a Failed 64-Bit Boot

x86: Booting a System That Does Not Implement GRUB

The following procedures use the reset button to restart the system. If your system does not have a reset button, use the power switch to restart the system. You might be able to press Ctrl-Alt-Del to interrupt system operation, depending upon the state of the system.

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

Use this procedure to boot a system that is currently at run level 0 to run level 3.

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

    The Current Boot Parameters menu is displayed after a few minutes.

  2. Type b to boot the system to run level 3, then ress Enter.

    If you do not make a selection within five seconds, the system is automatically booted to run level 3.

  3. Verify that the system has booted to run level 3.

    The login prompt is displayed when the boot process has finished successfully.


    hostname console login:

Example 16–1 x86: Booting a System to Run Level 3 (Multiuser Level)

For new installations, typing b at the boot prompt automatically boots 64-bit capable x86 based systems to 64-bit mode. For upgrades, typing b at the boot prompt also boots 64-bit capable x86 based systems to 64-bit mode, unless the eeprom boot-file parameter was previously set to a value other than kernel/unix.

This example shows how to boot an x86 based system that has 64-bit computing capabilities to run level 3.


Press any key to reboot
           .
           .
           .
                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 
Type    b [file-name] [boot-flags] <ENTER>      to boot with options
or      i <ENTER>                               to enter boot interpreter
or      <ENTER>                                 to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b
SunOS Release 5.10 Version amd64-gate-2004-09-27 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:


Example 16–2 x64: Manually Booting a System That Has 64-Bit Computing Capabilities in 64-Bit Mode to Run Level 3 (Multiuser Level)

For new installations, typing b at the boot prompt automatically boots 64-bit capable x86 based systems to 64-bit mode. For upgrades, typing b at the boot prompt also boots 64-bit capable x86 based systems to 64-bit mode, unless the eeprom boot-file parameter was previously set to a value other than kernel/unix.

This example shows how to manually boot this type of system in 64-bit mode to run level 3.


# init 0
# svc.startd: The system is coming down.  Please wait.
svc.startd: 68 system services are now being stopped.
umount: /etc/svc/volatile busy
svc.startd: The system is down.
syncing file systems... done
Press any key to reboot.

Initializing system
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>    to boot with options
or      i <ENTER>                             to enter boot interpreter
or      <ENTER>                               to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/amd64/unix
SunOS Release 5.10 Version amd64-gate-2004-09-27 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:


Example 16–3 Manually Booting a System That Has 64-Bit Computing Capabilities in 32–Bit Mode to Run Level 3 (Multiuser Level)

For new installations, typing b at the boot prompt automatically boots 64-bit capable x86 based systems to 64-bit mode. For upgrades, typing b at the boot prompt also boots 64-bit capable x86 based systems to 64-bit mode, unless the eeprom boot-file parameter was previously set to a value other than kernel/unix.

This example shows how to manually boot this type of system in 32-bit mode to run level 3.


# init 0
# svc.startd: The system is coming down.  Please wait.
svc.startd: 68 system services are now being stopped.
umount: /etc/svc/volatile busy
svc.startd: The system is down.
syncing file systems... done
Press any key to reboot.
Resetting...
If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.

                                                    
Initializing system
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/unix
SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:

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

Use this procedure to boot a system that is currently at run level 0 to run level S.

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

    The Current Boot Parameters menu is displayed after a few minutes.

  2. Type b -s to boot the system to run level S. Press Enter.

    If you do not make a selection within five seconds, the system is automatically booted to run level 3.

  3. Type the superuser password, if prompted.

  4. Verify that the system is at run level S.


    # who -r
       .       run-level S  Jul 19 14:37     S      0  3
  5. Perform the maintenance task that required the run level change to S.

  6. After you complete the system maintenance task, type Control-D to bring the system to the multiuser state.


Example 16–4 x86: Booting a System to Run Level S (Single-User Level)


Press any key to reboot.
Resetting...
.
.
.
Initializing system 
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b -s
SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Booting to milestone "milestone/single-user:default".
Hostname: venus
NIS domain name is example.com
Requesting System Maintenance Mode
SINGLE USER MODE

Root password for system maintenance (control-d to bypass): xxxxxx
Entering System Maintenance Mode
.
.
.
# who -r
   .       run-level S  Jul 19 14:37     S      0  3
(Perform some maintenance task)
# ^D

Procedurex86: How to Boot a System Interactively

Use this procedure to boot a system when you need to specify an alternate kernel or the /etc/system file.

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

    The Primary Boot Subsystem menu is displayed after a few minutes.

  2. Select the Solaris partition (if not marked as active) from the list. Press Enter.

    If you do not make a selection within five seconds, the active boot partition is selected automatically.

    The Current Boot Parameters menu is displayed after a few minutes.

  3. Type b -a to boot the system interactively. Press Enter.

    If you do not make a selection within five seconds, the system is automatically booted to run level 3.

  4. Answer the following system prompts:

    1. When prompted, enter the name of the kernel to use for booting.

      Press enter to use the default kernel file name. Otherwise, provide the name of an alternate kernel, press Enter.

    2. When prompted, provide an alternate path for the module directories.

      Press enter to use the default module directories. Otherwise, provide the alternate paths to module directories, press Enter.

    3. When prompted, provide the name of an alternate system file.

      Type /dev/null if your /etc/system file has been damaged.

    4. When prompted, enter the root file system type.

      Press enter to select local disk booting with UFS, which is the default, or enter NFS for network booting.

    5. When prompted, enter the physical name of root device.

      Provide an alternate device name or press return to use the default.

  5. If you are not prompted to answer these questions, verify that you typed the boot -a command correctly.


Example 16–5 x86: Booting a System Interactively

In the following example, the default choices (shown in square brackets []) are accepted.


Press any key to reboot.
Resetting...
.
.
.
Autobooting from bootpath: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a


If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.


Initializing system
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults
Running Configuration Assistant...
                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b -a
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
Press Enter
Name of system file [etc/system]: Press Enter
SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
root filesystem type [ufs]: Press Enter
Enter physical name of root device[/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a]: Press Enter
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:

x86: Booting From the Network

Any system can boot from the network if a boot server is available. You might want to boot a stand-alone system from the network for recovery purposes if the system cannot boot from the local disk.

You can boot Solaris OS x86 based systems directly from a network without the Solaris boot diskette on x86 based systems that support the Preboot Execution Environment (PXE) network booting protocol. The PXE network boot is available only for devices that implement the Intel Preboot Execution Environment specification. If the system is capable of a PXE network boot, you might want to boot the system directly from the network without using either the Device Configuration Assistant boot diskette or the Solaris Software 1 CD or DVD.


Note –

In this Oracle Solaris release, the software is delivered on DVD only.


Procedurex86: How to Boot a System From the Network

This procedure includes instructions for booting an x86 based system from the network with the Solaris Device Configuration Assistant. Note that the behavior of the Device Configuration assistant changed, starting with the Oracle Solaris OS.

Starting with the Solaris 10 1/06 release, GRUB based booting has been implemented on x86 based systems that are running the Solaris OS. The GRUB menu replaces the Device Configuration Assistant. For information about booting an x86 based system from the Network with GRUB, see Booting an x86 Based System from the Network.

There are two network configuration strategies, Reverse Address Resolution Protocol (RARP) or Dynamic Host Configuration Protocol (DHCP). The default network boot strategy for a PXE network boot is DHCP. The default network boot strategy for non-PXE devices is RARP. For non-PXE devices, you can use either strategy, depending on whether a RARP boot server or a DHCP boot server is available on your network.


Note –

If you use a DHCP server for PXE network boots, additional DHCP configuration is required. For general information on DHCP configuration, see Part III, DHCP, in System Administration Guide: IP Services. If you want to set up your DHCP server to support installation, see Oracle Solaris 10 9/10 Installation Guide: Network-Based Installations.


If you are performing a PXE network boot, or if you are booting the system from the Solaris Software media, the system boots automatically. The Device Configuration Assistant menu is no longer displayed by default. If you are booting a non-PXE device, you will need to follow the steps in this procedure that describe how to enter the Device Configuration Assistant menu to change the network configuration.

  1. Insert the Device Configuration Assistant boot diskette or the Solaris Software media that you want to boot from.

    • Or, use the system or network adapter BIOS configuration program to enable the PXE network boot.

      • If you are using the boot diskette, the first menu of the Device Configuration Assistant is displayed.

      • If you are using the Oracle Solaris Software 1 CD, DVD, or booting a PXE device from the network, the system boots automatically.

        If you choose to change the network configuration and enter the Device Configuration Assistant menu, press ESC when the following message is displayed.


        If the system hardware has changed, or to boot from a different
        device, interrupt the autoboot process by pressing ESC.
        
        Press ESCape to interrupt autoboot in 5 seconds.

    The Device Configuration Assistant screen is displayed.

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

  3. Press the F2 key (F2_Continue) to scan for devices.

    Device identification is performed. Then, the Identified Devices screen is displayed.

  4. Press the F2 key (F2_Continue) to load drivers.

    Bootable drivers are loaded. Then, the Boot Solaris menu is displayed.

  5. Use the Device Configuration Assistant to change the network configuration.

    1. Press the F4 key (F4_Boot Tasks).

    2. Select Set Network Configuration Strategy. Press the F2 key (F2_Continue).

    3. Select either RARP or DHCP and press the F2 key (F2_Continue).


      Note –

      The previous step applies only if you are booting a non-PXE device from the network. For a PXE network boot, you must use DHCP, which is the default network boot strategy.


      A message that confirms your new network boot strategy is displayed. Your network boot strategy selection is saved as the default network boot method for the next time the diskette is used for booting.

    4. Press F3_Back to return to the Boot Solaris menu.

  6. Select NET as the boot device.

  7. Press F2 to continue to boot the network device.

    The Solaris boot option screen is displayed.

x86: Using the Device Configuration Assistant


Note –

In this Solaris release the Device Configuration Assistant has been replaced by the GRUB menu. For more information about this feature, see Booting an x86 Based System by Using GRUB (Task Map).


Solaris 10: The Device Configuration Assistant for the Oracle Solaris x86 based systems is a program that enables you to perform various hardware configuration and booting tasks.

You can access the Device Configuration Assistant menu from either of the following:

For the procedures in this chapter, you might be requested to insert the Device Configuration Assistant boot diskette to boot the Configuration Assistant. Alternately, if your system's BIOS supports booting from the CD or DVD, you can insert the Solaris Software 1 CD or DVD to boot the Device Configuration Assistant.

Procedurex86: How to Enter the Device Configuration Assistant

Solaris 10: This procedure shows how to interrupt the boot process to enter the Device Configuration Assistant. In the current Solaris release, the GRUB menu replaces the Device Configuration Assistant.

  1. Boot the system.

    • If you are booting from the Device Configuration boot diskette, the first menu of the Device Configuration Assistant is displayed after a few minutes.

    • If you are booting from the Oracle Solaris Software 1 CD, DVD, hard disk, or performing a PXE network boot, the following message is displayed:


      If the system hardware has changed, or to boot from a different
      device, interrupt the autoboot process by pressing ESC.
      
      Press ESCape to interrupt autoboot in 5 seconds.

      If you choose to enter the Device Configuration Assistant menu, press ESC to interrupt the autoboot process.

      The Device Configuration Assistant menu is displayed.

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

Procedurex86: How to Stop a System for Recovery Purposes

  1. Stop the system by using one of the following commands, if possible:

    • If the system is running, become superuser and type init 0 to stop the system. After the Press any key to reboot prompt appears, press any key to reboot the system.

    • If the system is running, become superuser and type init 6 to reboot the system.

  2. If the system doesn't respond to any input from the mouse or keyboard, press the Reset key, if it exists, to reboot the system. Or, you can use the power switch to reboot the system.

Procedurex86: How to Boot a System for Recovery Purposes

Follow these steps to boot the system to repair a critical system resource. The example shows you how to boot from an Oracle Solaris Software CD, DVD, or from the network, mount the root (/) file system on the disk, and repair the /etc/passwd file.

Substitute the device name of the file system to be repaired for the device-name variable. If you need help identifying a system's device names, refer to Displaying Device Configuration Information in System Administration Guide: Devices and File Systems.

  1. Stop the system by using the system's Stop key sequence.

    Use the Stop key sequence for your system if you don't know the root password, or if you can't log in to the system. For more information, see x86: How to Stop a System for Recovery Purposes.

  2. Boot the system from the Oracle Solaris Software CD, DVD, or from the network, to single-user mode.

    1. Insert the Device Configuration Assistant boot diskette or the Oracle Solaris Software CD or DVD that you want to boot from.


      Note –

      If you are using the boot diskette the Device Configuration Assistant menu is displayed. If you are using the Oracle Solaris Software CD or DVD, the system boots automatically. To enter the Device Configuration Assistant menu, press ESC to interrupt the boot process, when prompted by the system.


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

  3. The Current Boot Parameters menu is displayed after a few minutes.

  4. Type b -s at the prompt. Press Enter.

    After a few minutes, the single-user mode # prompt is displayed.

  5. Mount the root (/) file system that contains the invalid passwd file.

  6. Change to the newly mounted etc directory.

  7. Make the necessary change to the file by using an editor.

  8. Change to the root (/) directory.

  9. Unmount the /a directory.

  10. Reboot the system. Verify that the system has booted to run level 3.

    The login prompt is displayed when the boot process has finished successfully.


    host-name console login:

Example 16–6 x86: Solaris 10: Booting a System for Recovery Purposes

The following example shows how to repair the /etc/passwd file after booting the system automatically from a local CD-ROM in Oracle Solaris 10. GRUB based booting was introduced in the Solaris 10 1/06 release. For information about booting a system for recovery purposes in a GRUB based boot environment, see How to Boot an x86 Based System in Failsafe Mode.


SunOS Secondary Boot version 3.00



                              Solaris Booting System



Running Configuration Assistant...





If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.

Press ESCape to interrupt autoboot in 5 seconds.





Initializing system
Please wait...


                         <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@1/sd@0,0:a
Boot args:


Select the type of installation you want to perform:

				1 Solaris Interactive
				2 Custom JumpStart
				3 Solaris Interactive Text (Desktop session)
				4 Solaris Interactive Text (Console session)
Enter the number of your choice followed by the <ENTER> key.
Alternatively, enter custom boot arguments directly.

If you wait for 30 seconds without typing anything,
an interactive installation will be started.

Select type of installation: b -s
      .
      .
      .
# mount /dev/dsk/c0t0d0s0 /a
      .
      .
      .
# cd /a/etc
# vi passwd
(Remove invalid entry)
# cd /
# umount /a
# init 6

Procedurex86: How to Boot a System With the Kernel Debugger (kmdb)

This procedure shows the basics for loading the kernel debugger (kmdb) in Oracle Solaris 10. The savecore feature is enabled by default. For more detailed information about using the kernel debugger, see the Oracle Solaris Modular Debugger Guide.

For step-by-step instructions on booting a system with the kernel debugger in the current Solaris release, see x86: How to Boot a System With the Kernel Debugger in the GRUB Boot Environment (kmdb).

  1. Boot the system.

  2. Type b -k at the Select (b)oot or (i)nterpreter prompt. Press Enter.

  3. Access the kernel debugger.

    The method used to enter the debugger is dependent upon the type of console that is used to access the system:

    • If a locally attached keyboard is being used, press F1–A.

    • If a serial console is being used, send a break by using the method appropriate to the type of serial console that is being used.

    A welcome message is displayed when you access the kernel debugger for the first time.


Example 16–7 x86: Booting a System With the Kernel Debugger (kmdb)

Typing b -k at the Select (b)oot or (i)nterpreter boot prompt boots a system to its default mode and also loads kmdb. This example shows how to boot an x86 based system that has 32–bit computing capabilities to 32–bit mode and also load kmdb.


Press any key to reboot.
.
.
.
<<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults
Running Configuration Assistant...
                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b -k
Loading kmdb...
SunOS Release 5.10 Version gate:2004-10-21 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
.
.
.


Example 16–8 x64: Manually Booting a System That Has 64-Bit Computing Capabilities to 64-Bit Mode With the Kernel Debugger (kmdb)

This example shows how to manually boot an x86 based system that has 64-bit computing capabilities to 64-bit mode with kmdb.


Press any key to reboot
        .
        .
        .
            <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:
Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

            <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/amd64/unix -k
Loading kmdb...


Example 16–9 32-bit x64: Manually Booting a System That Has 64-Bit Computing Capabilities to 32-Bit Mode With the Kernel Debugger (kmdb)

This example shows how to manually boot an x86 based system that has 64-bit computing capabilities to 32-bit mode with kmdb.


Press any key to reboot
        .
        .
        .
            <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:
Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

            <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/unix -k
Loading kmdb...

x86: Forcing a Crash Dump and Reboot of the System

Forcing a crash dump and rebooting the system is sometimes necessary for troubleshooting purposes. The savecore feature is enabled by default.

For more information on system crash dumps, see Chapter 17, Managing System Crash Information (Tasks), in System Administration Guide: Advanced Administration.

Procedurex86: How to Force a Crash Dump and Reboot of the System

If you cannot use the reboot -d or the halt -d command, you can use the kernel debugger, kmdb, to force a crash dump. The kernel debugger must have been loaded, either at boot, or with the mdb -k command, for the following procedure to work.


Note –

You must be in text mode to enter the kernel debugger (kmdb). So, first exit any window system.


  1. If a locally-attached keyboard is being used as the system console, press F1-A on that keyboard. If the system is configured to use a remote (serial) console, use the mechanism that is appropriate to that console to send a break character.

    The kmdb prompt is displayed.

  2. Use the systemdump macro to induce a crash.


    [0]> $<systemdump
    

    Panic messages are displayed, the crash dump is saved, and the system reboots.

  3. Verify that the system has rebooted by logging in at the console login prompt.


Example 16–10 x86: Forcing a Crash Dump and Reboot of the System by Using halt -d

This example shows how to force a crash dump and reboot of the x86 based system neptune by using the halt -d and boot commands. Use this method to force a crash dump of the system. You will need to manually reboot the system after running the halt command with the -d option.


# halt -d
Aug 11 12:51:27 neptune halt:
halted by <user> panic[cpu45]/thread=d3971a00: forced crash dump initiated at user request

d363ae58 genunix:kadmin+bd (5, 0, 0, d3fefac0)
d363af88 genunix:uadmin+88 (5, 0, 0, 0, 0, d363afb4)

syncing file systems... done
dumping to /dev/dsk/c0t0d0s1, offset 107806720, content: kernel
100% done: 40223 pages dumped, compression ratio 4.11, dump succeeded
Press any key to reboot.
Resetting...
.
.
.
SunOS Secondary Boot version 3.00
Autobooting from bootpath: /pci@0,0/pci1028,10a@3/sd@0,0:a 
Running Configuration Assistant... 
If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.


Initializing system
Please wait...   

<<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci1028,10a@3/sd@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>    to boot with options
or      i <ENTER>                             to enter boot interpreter
or      <ENTER>                               to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter:
Loading kmdb...
SunOS Release 5.10 Version s10_62 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: iprb0.
add net default: gateway 172.20.26.248
Hostname: neptune
The system is coming up.  Please wait.
checking ufs filesystems
/dev/rdsk/c0t0d0s7: is logging.
NIS domain name is example.com
starting rpc services: rpcbind keyserv ypbind done.
Setting netmask of iprb0 to 255.255.255.0
Setting default IPv4 interface for multicast: add net 224.0/4: gateway venus
syslog service starting.
System dump time: Wed Aug 11 12:51:29 2004
Aug 11 13:13:26 venus savecore: saving system crash dump in /var/crash/venus/*.1
Constructing namelist /var/crash/venus/unix.1
Constructing corefile /var/crash/venus/vmcore.1
100% done: 42157 of 42157 pages saved
volume management starting.
The system is ready.
.
.
.

x64: Troubleshooting a Failed 64-Bit Boot

In some instances, an attempt to boot a 64-bit capable x86 based system to 64-bit mode might fail. This failure might produce an error similar to the following:


Select (b)oot or (i)nterpreter: b kernel/amd64/unix
.
.
.
pci: cannot load driver
Cannot load drivers for /pci@0,0/pci1022,7450@a/pci17c2,10@4/sd@0,0:a
(Can't load the root filesystem)
Press any key to reboot.
.
.
.

In the event such a failure occurs, boot the system to 32-bit mode by typing the following command at the Select (b)oot or (i)nterpreter boot prompt:


Select (b)oot or (i)nterpreter: b kernel/unix

For more information, see Example 16–3.

x86: Boot Processes (Reference)

The following sections include reference information that pertains to booting a Solaris x86 based system that does not implement GRUB based booting.


Note –

The GRUB menu has replaced the Solaris Device Configuration Assistant in this release. For more information about booting an x86 based system in this Oracle Solaris release, see Booting an x86 Based System by Using GRUB (Task Map).


x86: Boot Subsystems

During the boot process, the boot subsystem menus allow you to customize boot choices. If the system receives no response during the timeout periods, it continues to boot automatically using the default selections. You can stop the boot process when each boot subsystem menu is displayed. Or, you can let the boot process continue automatically.

At three points during the Solaris boot process, you can make the following choices about a booting system:

The following table summarizes the purpose of the primary x86 based system boot interfaces. See the sections that follow for a detailed description and example of each boot interface.

Table 16–1 x86: Boot Subsystems

Boot Subsystem 

Purpose 

Primary Boot Subsystem (Partition Boot menu) 

This menu appears if the disk you are booting from contains multiple operating systems, including the Oracle Solaris OS (Solaris OS). 

Secondary Boot Subsystem 

This menu appears each time you boot the Oracle Solaris release. The system is booted automatically, unless you choose to run the Solaris Device Configuration Assistant by interrupting the autoboot process. 

Solaris Device Configuration Assistant/Boot Diskette 

There are two ways to access the Device Configuration Assistant menus:

  • Use the Device Configuration Assistant boot diskette or the Oracle Solaris Software CD (on systems that can boot from the CD-ROM drive) to boot the system.

  • Interrupt the autoboot process when you boot the Solaris software from an installed disk.

Current Boot Parameters menu 

This menu appears when you boot the Oracle Solaris release from the software media, or the network. The menu presents a list of boot options. 


Note –

If you need to create the Solaris Device Configuration Assistant boot diskette, go to http://www.sun.com/bigadmin/hcl/drivers/dca_diskettes/.


x86: Booting the Solaris Release

In this release, if you are booting an x86 based system with the Oracle Solaris Software CD, DVD, or performing a PXE network boot, the system will boot automatically. To use the Device Configuration Assistant, you must interrupt the boot process by pressing ESC when prompted by the system.

During the device identification phase, the Device Configuration Assistant does the following:

During the boot phase, the Device Configuration Assistant does the following:

The following section provides examples of menus that appear during the device identification phase. The device output varies based on your system configuration.

x86: Screens Displayed During the Device Identification Phase

Several screens are displayed as the Device Configuration Assistant attempts to identify devices on the system.

This section provides examples of the following boot subsystem screens:

x86: Device Configuration Assistant Screen


Note –

In this Oracle Solaris release, the Device Configuration Assistant Screen has been replaced with the GRUB menu on x86 based systems. For more information, see Booting an x86 Based System by Using GRUB (Task Map).


In the Solaris 10 initial release, the autoboot process bypasses the Device Configuration Assistant menus, unless you press ESC when prompted by the system during the boot phase. If you choose to use the Device Configuration Assistant, the following screen is displayed.


Solaris Device Configuration Assistant
                                             
The Solaris(TM)Device Configuration Assistant
scans to identify system hardware, lists identified devices, and can
boot the Solaris software from a specified device. This program must be
used to install the Solaris operating environment, add a driver,
or change the hardware on the system. 

> To perform a full scan to identify all system hardware, choose Continue. 
> To diagnose possible full scan failures, choose Specific Scan.
> To add new or updated device drivers, choose Add Driver. 

About navigation...  
	- The mouse cannot be used. 
	- If the keyboard does not have function keys or they do not respond,
	  press ESC. The legend at the bottom of the screen will change to
	  show the ESC keys to use for navigation. 
	- The F2 key performs the default action.

F2_Continue		F3_Specific Scan		F4_Add Driver		F6_Help

x86: Bus Enumeration Screen

The Bus Enumeration screen appears briefly while the Device Configuration Assistant gathers hardware configuration data for devices that can be detected automatically.


Bus Enumeration

Determining bus types and gathering hardware configuration data ...

Please wait ...

x86: Scanning Devices Screen

The Scanning Devices screen appears while the Device Configuration Assistant manually scans for devices that can only be detected with special drivers.


Scanning Devices

The system is being scanned to identify system hardware.

If the scanning stalls, press the system's reset button. When the
system reboots, choose Specific Scan or Help.


Scanning: Floppy disk controller

#######################
|      |        |         |         |         |
0	 		 20       40        60	       80       100

Please wait ...

x86: Identified Devices Screen

The Identified Devices screen displays which devices have been identified on the system. From here, you can continue to the Boot Solaris menu.

Or, you can perform the following optional device tasks:


Identified Devices

The following devices have been identified on this system. To identify
devices not on this list or to modify device characteristics, such as
keyboard configuration, choose Device Tasks. Platform types may be
included in this list.

ISA: Floppy disk controller
	ISA: Motherboard
	ISA: PnP bios: 16550-compatible serial controller
	ISA: PnP bios: 16550-compatible serial controller
	ISA: PnP bios: Mouse controller
	ISA: PnP bios: Parallel port
	ISA: System keyboard (US-English)
	PCI: Bus Mastering IDE controller
	PCI: Universal Serial Bus
	PCI: VGA compatible display adapter

F2_Continue   F3_Back   F4_Device Tasks   F6_Help

x86: Menus Displayed During the Boot Phase


Note –

Starting with the Solaris 10 1/06 release the GRUB is displayed when the system is booted. For more information about GRUB based booting, see Booting an x86 Based System by Using GRUB (Task Map).


During this phase, you can determine the way in which the system is booted.

The following menus are displayed during the boot phase:

x86: Boot Solaris Menu

The Boot Solaris menu allows you to select the device from which to boot the Oracle Solaris release. You can also perform optional tasks, such as viewing and editing autoboot and property settings. Once you select a boot device and you choose Continue, the Solaris kernel begins to boot.


Boot Solaris
Select one of the identified devices to boot the Solaris kernel and
choose Continue.

To perform optional features, such as modifying the autoboot and property
settings, choose Boot Tasks.

An asterisk (*) indicates the current default boot device.

> To make a selection use the arrow keys, and press Enter to mark it [X].

[X]  DISK: (*) Target 0:QUANTUM  FIREBALL1280A
on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
[ ]  DISK: Target 1:ST5660A
on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
[ ]  DISK: Target 0:Maxtor 9 0680D4
	on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
[ ]  CD  : Target 1:TOSHIBA  CD-ROM XM-5602B  1546
	on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1

F2_Continue   F3_Back   F4_Boot Tasks   F6_Help

x86: Current Boot Parameters Menu

This menu appears each time you boot the Oracle Solaris release from the local disk. Let the five-second timeout elapse if you want to boot the default kernel. If you want to boot with different options, select an appropriate option before the timeout period elapses.


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 
Type    b [file-name] [boot-flags] <ENTER>       to boot with options
or      i <ENTER>                                to enter boot interpreter
or      <ENTER>                                  to boot with defaults
 
 
                     <<< timeout in 5 seconds >>>
 
Select (b)oot or (i)nterpreter: 

x86: Boot Process

The following table describes the boot process on x86 based systems.

Table 16–2 x86: Description of the Boot Process

Boot Phase 

Description 

BIOS 

1. When the system is turned on, the BIOS runs self-test diagnostics to verify the system's hardware and memory. The system begins to boot automatically if no errors are found. If errors are found, error messages are displayed that describe recovery options. 

The BIOS of additional hardware devices are run at this time. 

 

2. The BIOS boot program tries to read the first disk sector from the boot device. This first disk sector on the boot device contains the master boot record mboot, which is loaded and executed. If no mboot file is found, an error message is displayed.

Boot Programs 

3. The master boot record, mboot, contains disk information needed to find the active partition and the location of the Solaris boot program, pboot, loads and executes pboot, mboot.

 

4. The Solaris boot program, pboot, loads bootblk, the primary boot program. The purpose of bootblk is to load the secondary boot program, which is located in the UFS file system.

 

5. If there is more than one bootable partition, bootblk reads the fdisk table to locate the default boot partition, and builds and displays a menu of available partitions. You have a 30 seconds to select an alternate partition from which to boot. This step occurs only if there is more than one bootable partition present on the system.

 

6. bootblk finds and executes the secondary boot program, boot.bin or ufsboot, in the root (/) file system. You have five seconds to interrupt the autoboot to start the Solaris Device Configuration Assistant.

 

7. The secondary boot program, boot.bin or ufsboot, starts a command interpreter that executes the /etc/bootrc script. This script provides a menu of choices for booting the system. The default action is to load and execute the kernel. You have a 5–second interval to specify a boot option or to start the boot interpreter.

Kernel initialization 

8. The kernel initializes itself and begins loading modules by using the secondary boot program (boot.bin or ufsboot) to read the files. When the kernel has loaded enough modules to mount the root (/) file system, the kernel unmaps the secondary boot program and continues, using its own resources.

 

9. The kernel creates a user process and starts the /sbin/init process, which starts other processes by reading the /etc/inittab file.

init

10. In this Oracle Solaris release, the /sbin/init process starts /lib/svc/bin/svc.startd, which starts system services that do the following:

  • Check and mount file systems

  • Configure network and devices

  • Start various processes and perform system maintenance tasks

In addition, svc.startd executes the run control (rc) scripts for compatibility.

x86: Boot Files

In addition to the run control scripts and boot files, there are additional boot files that are associated with booting x86 based systems.

Table 16–3 x86: Boot Files

File 

Description 

/etc/bootrc

Contains menus and options for booting the Oracle Solaris release. 

/boot

Contains files and directories needed to boot the system. 

/boot/mdboot

DOS executable that loads the first-level bootstrap program (strap.com) into memory from disk.

/boot/mdbootbp

DOS executable that loads the first-level bootstrap program (strap.com) into memory from diskette.

/boot/rc.d

Directory that contains install scripts. Do not modify the contents of this directory. 

/boot/solaris

Directory that contains items for the boot subsystem. 

/boot/solaris/boot.bin

Loads the Solaris kernel or stand-alone kmdb. In addition, this executable provides some boot firmware services.

/boot/solaris/boot.rc

Prints the Oracle Solaris Operating OS on an x86 system and runs the Device Configuration Assistant in DOS-emulation mode. 

/boot/solaris/bootconf.exe

DOS executable for the Device Configuration Assistant. 

/boot/solaris/bootconf.txt

Text file that contains internationalized messages for Device Configuration Assistant (bootconf.exe).

/boot/solaris/bootenv.rc

Stores eeprom variables that are used to set up the boot environment.

/boot/solaris/devicedb

Directory that contains the master file, a database of all possible devices supported with realmode drivers.

/boot/solaris/drivers

Directory that contains realmode drivers. 

/boot/solaris/itup2.exe

DOS executable run during install time update (ITU) process.  

/boot/solaris/machines

Obsolete directory. 

/boot/solaris/nbp

File associated with network booting. 

/boot/solaris/strap.rc

File that contains instructions on what load module to load and where in memory it should be loaded. 

/boot/strap.com

DOS executable that loads the second-level bootstrap program into memory.