System Administration Guide: Basic Administration
Previous Next

Troubleshooting Booting on the x86 Platform (Task Map)

Task

Description

For Instructions

Stop a system for recovery purposes.

If a damaged file is preventing the system from booting normally, first stop the system to attempt recovery

x86: How to Stop a System for Recovery Purposes

Force a crash dump of and reboot of the system.

You can force a crash dump and reboot of the system as a troubleshooting measure.

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

Boot a system with the kernel debugger.

You can the system with the kernel debugger to troubleshoot booting problems. Use the kmdb command to boot the system.

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

x86: Troubleshooting Error Messages Upon System Boot

If any multiboot entries that support directly booting the unix kernel are encountered by GRUB, the following message is displayed:

multiboot is no longer used to boot the Solaris Operating System.
The grub entry should be changed to:
kernel$ /boot/$ISADIR/xen.gz
module$ /platform/i86xpv/kernel/$ISADIR/unix /platform/i86xpv/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
See http://www.sun.com/msg/SUNOS-8000-AK for details.
Press any key to reboot.

If the preceding message is displayed, you will need to update the entries in the GRUB menu.lst manually to successfully boot the system. More information can be found at http://www.sun.com/msg/SUNOS-8000-AK and the boot(1M) man page. For further information and instructions, see x86: Error Messages Upon System Boot.

x86: How to Stop a System for Recovery Purposes

  1. Stop the system by using one of the following commands, if possible:
    • If the keyboard and mouse are functional, become superuser. Then, 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 keyboard and mouse are functional, become superuser. then, type init 6 to reboot the system.

  2. If the system does not respond to any input from the mouse or the keyboard, press the Reset key, if it exists, to reboot the system.

    Or, you can use the power switch to reboot the system.

x86: Forcing a Crash Dump and Reboot of the System

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

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

x86: 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 access the kernel debugger (kmdb). So, first exit any window system.


  1. Access the kernel debugger.

    The method used to access the debugger is dependent upon the type of console that you are using to access the system.

    • If you are using a locally attached keyboard, press F1–A.

    • If you are using a serial console, send a break by using the method appropriate to that type of serial console.

    The kmdb prompt is displayed.

  2. To induce a crash, use the systemdump macro.
    [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 13-6 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. Reboot the system afterwards manually.

# halt -d
4ay 30 15:35:15 wacked.Central.Sun.COM halt: halted by user

panic[cpu0]/thread=ffffffff83246ec0: forced crash dump initiated at user request

fffffe80006bbd60 genunix:kadmin+4c1 ()
fffffe80006bbec0 genunix:uadmin+93 ()
fffffe80006bbf10 unix:sys_syscall32+101 ()

syncing file systems... done
dumping to /dev/dsk/c1t0d0s1, offset 107675648, content: kernel
NOTICE: adpu320: bus reset
100% done: 38438 pages dumped, compression ratio 4.29, dump succeeded

Welcome to kmdb
Loaded modules: [ audiosup crypto ufs unix krtld s1394 sppp nca uhci lofs 
genunix ip usba specfs nfs md random sctp ]
[0]> 
kmdb: Do you really want to reboot? (y/n) y

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

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

  1. Boot the system.

    The GRUB menu is displayed when the system is booted.

  2. When the GRUB menu is displayed, type e to access the GRUB edit menu.
  3. Use the arrow keys to select the kernel$ line.

    If you cannot use the arrow keys, use the ^ key to scroll up and the v key to scroll down.

  4. Type e to edit the line.

    The boot entry menu is displayed. In this menu, you can modify Solaris boot behavior by adding additional boot arguments to the end of the kernel$ line.

  5. Type -k at the end of the line.
  6. Press enter to return to the GRUB main menu.
  7. Type b to boot the system with the kernel debugger enabled.
  8. Access the kernel debugger.

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

    • If you are using a locally attached keyboard, press F1–A.

    • If you are using a serial console, send a break by using the method appropriate to that type of serial console.

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

Example 13-7 x86: Booting a System With the Kernel Debugger (Hypervisor Support)

This example shows how to boot a 64-bit capable x86 based system, with the kernel debugger enabled:

kernel$ /boot/$ISADIR/xen.gz
module$ /platform/i86xpv/kernel/$ISADIR/unix /platform/i86xpv/kernel/$ISADIR/unix -B $ZFS-BOOTFS -k

This example shows how to boot a 64-bit capable x86 based system in 32-bit mode, with the kernel debugger enabled:

kernel$ /boot/xen.gz
module$ /platform/i86xpv/kernel/unix /platform/i86xpv/kernel/unix -B $ZFS-BOOTFS -k
Example 13-8 x86: Booting a System With the Kernel Debugger (Support for Directly Loading and Booting the unix Kernel)

The following examples apply to a Solaris release with GRUB support for directly loading and booting the unix kernel.

This example shows how to boot a 64-bit capable x86 based system, with the kernel debugger enabled.

kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS -k

This example shows how to boot a 64-bit capable x86 based system in 32-bit mode, with the kernel debugger enabled.

kernel$ /platform/i86pc/kernel/unix -B $ZFS-BOOTFS -k
Example 13-9 x86: Booting a System With the Kernel Debugger (GRUB Multiboot Implementation)

This example shows how to manually boot a 64-bit capable x86 based system with the kernel debugger enabled.

kernel$ /platform/i86pc/multiboot kernel/amd64/unix -k -B $ZFS-BOOTFS

This example shows how to boot a 64-bit capable x86 based system 32-bit mode with the kernel debugger enabled.

kernel$ /platform/i86pc/multiboot kernel/unix -k -B $ZFS-BOOTFS
Previous Next