<?Pub UDT _bookmark _target?><?Pub UDT __target_1 _target?><?Pub UDT registeredtm trademark?><?Pub CX solbook(?><chapter id="hbtsboot-1"><?Pub Tag atict:info tracking="off" ref="0"?><?Pub Tag atict:user user="sk23612" fullname="Juanita Heieck"?><?Pub Tag atict:user
user="jonj" fullname="Juanita Heieck"?><?Pub Tag atict:user user="kathys"
fullname="Kathy Slattery"?><?Pub Tag atict:user user="cathleen" fullname=""?><?Pub Tag
atict:user user="eb151805" fullname="Juanita Heieck"?><?Pub Tag atict:user
user="jh118764" fullname="Juanita Heieck"?><?Pub Tag atict:user user="lh136763"
fullname="Laura Hartman"?><title>Troubleshooting Booting a Solaris System (Tasks)</title><highlights><para>This chapter describes the procedures for booting the Solaris release
on SPARC and x86 based systems.</para><itemizedlist><para>The following is a list of information that is in this chapter:</para><listitem><para><olink targetptr="ggkti" remap="internal">Troubleshooting Booting on the SPARC
Platform (Task Map)</olink></para>
</listitem><listitem><para><olink targetptr="ghtrz" remap="internal">Troubleshooting Booting on the x86
Platform (Task Map)</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="ggkti"><title>Troubleshooting Booting on the SPARC Platform (Task
Map)</title><informaltable frame="all" pgwide="1"><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="112.00*"/><colspec colname="column2" colwidth="158.85*"/><colspec colname="column3" colwidth="125.15*"/><thead><row rowsep="1"><entry colsep="1" rowsep="1"><para>Task</para>
</entry><entry colsep="1" rowsep="1"><para>Description</para>
</entry><entry colsep="1" rowsep="1"><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><?PubTbl row rht="1.96in"?><entry colsep="1" rowsep="1"><para>Stop a system for recovery purposes. </para>
</entry><entry colsep="1" rowsep="1"><para>If a damaged file is preventing the system from booting normally, first
stop the system to attempt recovery</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="hbsparcboot-50162" remap="internal">How to Stop the System for Recovery
Purposes</olink></para>
</entry>
</row><row><?PubTbl row rht="1.81in"?><entry colsep="1" rowsep="1"><para>Force a crash dump of and reboot of the system.</para>
</entry><entry colsep="1" rowsep="1"><para>You can force a crash dump and reboot of the system as a troubleshooting
measure.</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="hbsparcboot-70469" remap="internal">How to Force a Crash Dump and Reboot
of the System</olink></para>
</entry>
</row><row><?PubTbl row rht="1.81in"?><entry colsep="1" rowsep="1"><para>Boot a SPARC based system for recovery purposes.</para>
</entry><entry colsep="1" rowsep="1"><para>Boot to repair an important system file that is preventing the system
from booting successfully.</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="hbsparcboot-82678" remap="internal">How to Boot a System for Recovery
Purposes</olink></para>
</entry>
</row><row><entry colsep="1" rowsep="1"><para>Boot a system with the kernel debugger.</para>
</entry><entry colsep="1" rowsep="1"><para>You can the system with the kernel debugger to troubleshoot booting
problems. Use the <command>kmdb</command> command to boot the system.</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="euayz" remap="internal">How to Boot the System With the Kernel Debugger
(kmdb)</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><itemizedlist><para>You might need to use one or more of the following methods to troubleshoot
problems that prevent the system from booting successfully.</para><listitem><para>Troubleshoot error messages when the system boots.</para>
</listitem><listitem><para>Stop the system to attempt recovery.</para>
</listitem><listitem><para>Boot a system for recovery purposes.</para>
</listitem><listitem><para>Force a crash dump and reboot of the system.</para>
</listitem><listitem><para>Boot the system with the kernel debugger by using the <command>kmdb</command> command.</para>
</listitem>
</itemizedlist><task id="hbsparcboot-50162" arch="sparc"><title>How to Stop the System for
Recovery Purposes</title><procedure><step id="ggpng"><para><indexterm><primary>stopping</primary><secondary>a system for recovery purposes</secondary><tertiary>SPARC</tertiary></indexterm>Type
the Stop key sequence for your system.</para><para>The monitor displays the <literal>ok</literal> PROM prompt.</para><screen>ok</screen><para><indexterm id="ggpmv"><primary><literal>Stop-A</literal> keys</primary></indexterm><indexterm id="ggpqn"><primary><literal>L1-A</literal> keys</primary></indexterm><indexterm id="ggpuw"><primary><literal>Break</literal> key</primary></indexterm>The specific Stop key sequence depends on your keyboard type.
For example, you can press Stop-A or L1-A. On terminals, press the Break key. </para>
</step><step id="ggpuz"><para>Synchronize the file systems.</para><screen>ok <userinput>sync</userinput></screen>
</step><step id="ggptj"><para>When you see the <literal>syncing file systems...</literal> message,
press the Stop key sequence again.</para>
</step><step id="ggptw"><para>Type the appropriate <command>boot</command> command
to start the boot process.</para><para>For more information, see the <olink targetdoc="refman" targetptr="boot-1m" remap="external"><citerefentry><refentrytitle>boot</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</step><step id="ggpsm"><para>Verify that the system was booted to the specified
run level.</para><screen># <userinput>who -r</userinput>
 .       run-level s  May  2 07:39     3      0  S</screen>
</step>
</procedure><example arch="sparc"><title>Stopping the System for Recovery Purposes</title><screen><lineannotation>Press Stop-A</lineannotation>
ok <userinput>sync</userinput>
syncing file systems...
<lineannotation>Press Stop-A</lineannotation>
ok <userinput>boot</userinput></screen>
</example>
</task><sect2 id="hbsparcboot-37" arch="sparc"><title>Forcing a Crash Dump and Reboot
of the System</title><para>Forcing a crash dump and reboot of the system are sometimes necessary
for troubleshooting purposes. The <command>savecore</command> feature is enabled
by default.</para><para>For more information about system crash dumps, see <olink targetdoc="sysadv2" targetptr="tscrashdumps-40145" remap="external">Chapter 17, <citetitle remap="chapter">Managing System Crash Information (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Advanced Administration</citetitle></olink>. </para><task id="hbsparcboot-70469" arch="sparc"><title>How to Force a Crash Dump
and Reboot of the System</title><tasksummary><para>Use this procedure to force a crash dump of the system. The example
that follows this procedure shows how to use the <command>halt</command> <option>d</option> command to force a crash dump of the system. You will need to manually
reboot the system after running this command.</para>
</tasksummary><procedure><step id="ggpul"><para>Type the stop key sequence for your system.</para><para>The
specific stop key sequence depends on your keyboard type. For example, you
can press Stop-A or L1-A. On terminals, press the Break key.</para><para>The PROM displays the <literal>ok</literal> prompt.</para>
</step><step id="ggpsc"><para><indexterm id="ggptg"><primary><command>sync</command> command</primary></indexterm><indexterm id="ggprl"><primary>synchronize file systems with <command>sync</command> command</primary></indexterm>Synchronize the
file systems and write the crash dump.  </para><screen>&gt; <userinput>n</userinput>
ok <userinput>sync</userinput></screen><para>After the crash dump is written to disk, the system will continue to
reboot.</para>
</step><step id="ggpun"><para>Verify the system boots to run level 3.</para><para>The
login prompt is displayed when the boot process has finished successfully.</para><screen><replaceable>hostname</replaceable> console login:</screen>
</step>
</procedure><example id="ggptc" arch="sparc"><title>Forcing a Crash Dump and Reboot of the System by Using the <command>halt</command> <option>d</option> Command</title><para>This example shows how to force a crash dump and reboot of the system <literal>jupiter</literal> by using the <command>halt</command> <option>d</option> and <command>boot</command> command. Use this method to force a crash dump and reboot of
the system.</para><screen># <userinput>halt -d</userinput>
Jul 21 14:13:37 jupiter halt: halted by root

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

000002a1008f7860 genunix:kadmin+438 (b4, 0, 0, 0, 5, 0)
  %l0-3: 0000000000000000 0000000000000000 0000000000000004 0000000000000004
  %l4-7: 00000000000003cc 0000000000000010 0000000000000004 0000000000000004
000002a1008f7920 genunix:uadmin+110 (5, 0, 0, 6d7000, ff00, 4)
  %l0-3: 0000030002216938 0000000000000000 0000000000000001 0000004237922872
  %l4-7: 000000423791e770 0000000000004102 0000030000449308 0000000000000005

syncing file systems... 1 1 done
dumping to /dev/dsk/c0t0d0s1, offset 107413504, content: kernel
100% done: 5339 pages dumped, compression ratio 2.68, dump succeeded
Program terminated
ok boot
Resetting ... 

Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard
OpenBoot 3.15, 128 MB memory installed, Serial #10933339.
Ethernet address 8:0:20:a6:d4:5b, Host ID: 80a6d45b.

Rebooting with command: boot
Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a
File and args: kernel/sparcv9/unix
SunOS Release 5.10 Version s10_60 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: hme0.
add net default: gateway 172.20.27.248
Hostname: jupiter
The system is coming up.  Please wait.
NIS domain name is example.com
.
.
.
System dump time: Wed Jul 21 14:13:41 2004
Jul 21 14:15:23 jupiter savecore: saving system crash dump
in /var/crash/jupiter/*.0
Constructing namelist /var/crash/jupiter/unix.0
Constructing corefile /var/crash/jupiter/vmcore.0
100% done: 5339 of 5339 pages saved

Starting Sun(TM) Web Console Version 2.1-dev...
.
.
.</screen>
</example>
</task>
</sect2><task id="hbsparcboot-82678" arch="sparc"><title>How to Boot a System for
Recovery Purposes</title><tasksummary><para>Use this procedure when an important file, such as <filename>/etc/passwd</filename>,
has an invalid entry and causes the boot process to fail. </para><para>Use the stop sequence described in this procedure if you do not know
the <literal>root</literal> password or if you can't log in to the system.
For more information, see <olink targetptr="hbsparcboot-50162" remap="internal">How to Stop
the System for Recovery Purposes</olink>.</para><para>Substitute the device name of the file system to be repaired for the <replaceable>device-name</replaceable> variable in the following procedure. If you need
help identifying a system's device names, refer to <olink targetdoc="sagdfs" targetptr="devconfig-27211" remap="external"><citetitle remap="section">Displaying Device Configuration Information</citetitle> in <citetitle remap="book">System Administration Guide: Devices and File Systems</citetitle></olink>.</para>
</tasksummary><procedure><step id="hbsparcboot-step-68"><para>Stop the system by using the system's
Stop key sequence.</para>
</step><step id="hbsparcboot-step-21"><para>Boot the system in single-user mode.</para><itemizedlist><listitem><para>Boot the system from the Solaris Software 1 CD or DVD,</para><itemizedlist><listitem><para>Insert the Solaris installation media into the drive.</para>
</listitem><listitem><para>Boot from the installation media in single-user mode.</para><screen>ok <userinput>boot cdrom -s</userinput></screen>
</listitem>
</itemizedlist>
</listitem><listitem><para>Boot the system from the network if an installation server
or remote CD or DVD drive is not available.</para><screen>ok <userinput>boot net -s</userinput></screen>
</listitem>
</itemizedlist>
</step><step id="hbsparcboot-step-22"><para>Mount the file system that contains the
file with an invalid entry.</para><screen># <userinput>mount /dev/dsk/</userinput><replaceable>device-name</replaceable> <userinput>/a</userinput></screen>
</step><step id="hbsparcboot-step-23"><para>Change to the newly mounted file system.</para><screen># <userinput>cd /a/</userinput><replaceable>file-system</replaceable></screen>
</step><step id="hbsparcboot-step-24"><para>Set the terminal type.</para><screen># <userinput>TERM=</userinput><replaceable>sun</replaceable>
# <userinput>export TERM</userinput></screen>
</step><step id="hbsparcboot-step-25"><para>Remove the invalid entry from the file
by using an editor.</para><screen># <userinput>vi</userinput> <replaceable>filename</replaceable></screen>
</step><step id="hbsparcboot-step-26"><para>Change to the root (<filename>/</filename>)
directory.</para><screen># <userinput>cd /</userinput></screen>
</step><step id="hbsparcboot-step-27"><para>Unmount the <filename>/a</filename> directory.</para><screen># <userinput>umount /a</userinput></screen>
</step><step id="hbsparcboot-step-28"><para>Reboot the system.</para><screen># <userinput>init 6</userinput></screen>
</step><step id="hbsparcboot-step-51"><para>Verify that the system booted to run
level 3.</para><para>The login prompt is displayed when the boot process has
finished successfully.</para><screen><replaceable>hostname</replaceable> console login:</screen>
</step>
</procedure><example arch="sparc"><title>Booting a System for Recovery Purposes (Damaged Password File)</title><para><indexterm id="hbsparcboot-ix1004"><primary>repairing the <filename>/etc/passwd</filename> file</primary><secondary>SPARC</secondary></indexterm><indexterm id="hbsparcboot-ix1005"><primary sortas="etc/passwd file"><filename>/etc/passwd</filename> file</primary><secondary>recovering</secondary><tertiary>SPARC</tertiary></indexterm><indexterm><primary><filename>passwd</filename> file</primary><secondary>recovering</secondary><tertiary>SPARC</tertiary></indexterm>The
following example shows how to repair an important system file (in this case, <filename>/etc/passwd</filename>) after booting from a local CD-ROM. </para><screen>ok <userinput>boot cdrom -s</userinput>
# <userinput>mount /dev/dsk/c0t3d0s0 /a</userinput>
# <userinput>cd /a/etc</userinput>
# <userinput>TERM=vt100</userinput>
# <userinput>export TERM</userinput>
# <userinput>vi passwd</userinput>
<lineannotation>(Remove invalid entry)</lineannotation>
# <userinput>cd /</userinput>
# <userinput>umount /a</userinput>
# <userinput>init 6</userinput></screen>
</example><example arch="sparc"><title>Booting a System if You Forgot the <literal>root</literal> Password</title><para><indexterm><primary>forget root password</primary><secondary>SPARC</secondary></indexterm><indexterm><primary>root password, forget</primary><secondary>SPARC</secondary></indexterm><indexterm><primary>recover root password (how to)</primary><secondary>SPARC</secondary></indexterm><indexterm><primary>superuser (root) password, forget</primary><secondary>SPARC</secondary></indexterm>The following
example shows how to boot the system from the network when you have forgotten
the <literal>root</literal> password. This example assumes that the network
boot server is already available. Be sure to apply a new <literal>root</literal> password
after the system has rebooted.</para><screen>ok <userinput>boot net -s</userinput>
# <userinput>mount /dev/dsk/c0t3d0s0 /a</userinput>
# <userinput>cd /a/etc</userinput>
# <userinput>TERM=vt100</userinput>
# <userinput>export TERM</userinput>
# <userinput>vi shadow</userinput>
<lineannotation>(Remove root's encrypted password string)</lineannotation>
# <userinput>cd /</userinput>
# <userinput>umount /a</userinput>
# <userinput>init 6</userinput></screen>
</example>
</task><task id="euayz" arch="sparc"><title>How to Boot the System With the Kernel
Debugger (<command>kmdb</command>)</title><tasksummary><para>This procedure shows you the basics for loading the kernel debugger
(<command>kmdb</command>). For more detailed information, see the <citetitle>Solaris
Modular Debugger Guide</citetitle>.</para><note><para>Use the <command>reboot</command> and <command>halt</command> command
with the <option>d</option> option if you do not have time to debug the system
interactively. To run the <command>halt</command> command with the <option>d</option> option
requires a manual reboot of the system afterwards. Whereas, if you use the <command>reboot</command> command, the system boots automatically. See the <olink targetdoc="refman" targetptr="reboot-1m" remap="external"><citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> for more information.</para>
</note>
</tasksummary><procedure><step><para>Halt the system, causing it to display the <literal>ok</literal> prompt.</para><para>To halt the system gracefully, use the <command>/usr/sbin/halt</command> command.</para>
</step><step><para>Type either <command>boot kmdb</command> or <command>boot <option>k</option></command> to
request the loading of the kernel debugger. Press return.</para>
</step><step><para>Enter the kernel debugger.</para><itemizedlist><para>The method used to enter the debugger is dependent upon the type of
console that is used to access the system:</para><listitem><para>If a locally attached keyboard is being used, press Stop-A
or L1&ndash;A, depending upon the type of keyboard.</para>
</listitem><listitem><para>If a serial console is being used, send a break by using the
method that is appropriate for the type of serial console that is being used.</para>
</listitem>
</itemizedlist><para>A welcome message is displayed when you enter the kernel debugger for
the first time.</para><screen>Rebooting with command: kadb
Boot device: /iommu/sbus/espdma@4,800000/esp@4,8800000/sd@3,0
.
.
.</screen>
</step>
</procedure><example arch="sparc"><title>Booting a System With the Kernel Debugger (<command>kmdb</command>)</title><screen>ok <userinput>boot kmdb</userinput>
Resetting...

Executing last command: boot kmdb -d
Boot device: /pci@1f,0/ide@d/disk@0,0:a File and args: kmdb -d
Loading kmdb...</screen>
</example>
</task>
</sect1><sect1 id="ghtrz"><title>Troubleshooting Booting on the x86 Platform (Task
Map)</title><informaltable frame="all" pgwide="1"><tgroup cols="3" colsep="0" rowsep="0"><colspec colname="column1" colwidth="112.00*"/><colspec colname="column2" colwidth="158.85*"/><colspec colname="column3" colwidth="125.15*"/><thead><row rowsep="1"><entry colsep="1" rowsep="1"><para>Task</para>
</entry><entry colsep="1" rowsep="1"><para>Description</para>
</entry><entry colsep="1" rowsep="1"><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><?PubTbl row rht="1.96in"?><entry colsep="1" rowsep="1"><para>Stop a system for recovery purposes. </para>
</entry><entry colsep="1" rowsep="1"><para>If a damaged file is preventing the system from booting normally, first
stop the system to attempt recovery</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="fvzot" remap="internal">How to Stop a System for Recovery Purposes</olink></para>
</entry>
</row><row><?PubTbl row rht="1.81in"?><entry colsep="1" rowsep="1"><para>Force a crash dump of and reboot of the system.</para>
</entry><entry colsep="1" rowsep="1"><para>You can force a crash dump and reboot of the system as a troubleshooting
measure.</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="fvzni" remap="internal">How to Force a Crash Dump and Reboot of the
System</olink></para>
</entry>
</row><row><entry colsep="1" rowsep="1"><para>Boot a system with the kernel debugger.</para>
</entry><entry colsep="1" rowsep="1"><para>You can the system with the kernel debugger to troubleshoot booting
problems. Use the <command>kmdb</command> command to boot the system.</para>
</entry><entry colsep="1" rowsep="1"><para><olink targetptr="fvzpl" remap="internal">How to Boot a System With the Kernel Debugger
in the GRUB Boot Environment (kmdb)</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><sect2 id="gewzl" arch="x86"><title>Troubleshooting
Error Messages Upon System Boot</title><indexterm><primary>troubleshooting error messages</primary><secondary>GRUB based booting</secondary>
</indexterm><indexterm><primary>error messages</primary><secondary>GRUB based booting</secondary><tertiary>troubleshooting</tertiary>
</indexterm><indexterm><primary>booting an x86 based system</primary><secondary>troubleshooting error messages</secondary>
</indexterm><indexterm><primary>GRUB based booting</primary><secondary>troubleshooting error messages upon system boot</secondary>
</indexterm><para>If any multiboot entries that support directly booting the <filename>unix</filename> kernel
are encountered by GRUB, the following message is displayed:</para><screen>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.</screen><para>If the preceding message is displayed, you will need to update the entries
in the GRUB <filename>menu.lst</filename> manually to successfully boot the
system. More information can be found at <ulink url="http://www.sun.com/msg/SUNOS-8000-AK" type="url"></ulink> and the <olink targetdoc="group-refman" targetptr="boot-1m" remap="external"><citerefentry><refentrytitle>boot</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page. For further information
and instructions, see <olink targetptr="ggpts" remap="internal">Error Messages Upon System
Boot</olink>.</para>
</sect2><task id="fvzot" arch="x86"><title>How to Stop a System for Recovery Purposes</title><procedure><step><para><indexterm><primary>stopping</primary><secondary>a system for recovery purposes (how to)</secondary><tertiary>x86</tertiary></indexterm>Stop
the system by using one of the following commands, if possible:</para><itemizedlist><listitem><para>If the keyboard and mouse are functional, become superuser.
Then, type <command>init 0</command> to stop the system. After the <literal>Press
any key to reboot</literal> prompt appears, press any key to reboot the system.</para>
</listitem><listitem><para>If the keyboard and mouse are functional, become superuser.
then, type <command>init 6</command> to reboot the system.</para>
</listitem>
</itemizedlist>
</step><step id="fvzoz"><para>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. </para><para>Or, you can use the power switch to reboot the system.</para>
</step>
</procedure>
</task><sect2 id="fvzpo" arch="x86"><title>Forcing a Crash Dump and Reboot of the
System</title><para>Forcing a crash dump and reboot of the system are sometimes necessary
for troubleshooting purposes. The <command>savecore</command> feature is enabled
by default.</para><para>For more information about system crash dumps, see <olink targetdoc="sysadv2" targetptr="tscrashdumps-40145" remap="external">Chapter 17, <citetitle remap="chapter">Managing System Crash Information (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Advanced Administration</citetitle></olink>. </para><task id="fvzni" arch="x86"><title>How to Force a Crash Dump and Reboot of
the System</title><tasksummary><para>If you cannot use the <command>reboot</command> <option>d</option> or
the <command>halt</command> <option>d</option> command, you can use the kernel
debugger, <command>kmdb</command>, to force a crash dump. The kernel debugger
must have been loaded, either at boot, or with the <command>mdb</command> <option>k</option> command, for the following procedure to work.</para><note><para>You must be in text mode to access the kernel debugger (<command>kmdb</command>). So, first exit any window system.</para>
</note>
</tasksummary><procedure><step><para>Access the kernel debugger.</para><itemizedlist><para>The method used to access the debugger is dependent upon the type of
console that you are using to access the system.</para><listitem><para>If you are using a locally attached keyboard, press F1&ndash;A.</para>
</listitem><listitem><para>If you are using a serial console, send a break by using the
method appropriate to that type of serial console.</para>
</listitem>
</itemizedlist><para>The <command>kmdb</command> prompt is displayed.</para>
</step><step><para>To induce a crash, use the <literal>systemdump</literal> macro.</para><screen>[0]&gt; $&lt;<userinput>systemdump</userinput></screen><para>Panic messages are displayed, the crash dump is saved, and the system
reboots.</para>
</step><step id="ghttw"><para>Verify that the system has rebooted by logging in at
the console login prompt.</para>
</step>
</procedure><example id="ghtua" arch="x86"><title>Forcing a Crash Dump and Reboot of the System by Using <command>halt</command> <option>d</option></title><para>This example shows how to force a crash dump and reboot of the x86 based
system <literal>neptune</literal> by using the <command>halt</command> <option>d</option> and <command>boot</command> commands. Use this method to force a crash dump of the system.
Reboot the system afterwards manually.</para><screen width="100"># <userinput>halt -d</userinput>
4ay 30 15:35:15 wacked.Central.Sun.COM halt: halted by <replaceable>user</replaceable>

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]&gt; 
kmdb: Do you really want to reboot? (y/n) <userinput>y</userinput></screen>
</example>
</task>
</sect2><task id="fvzpl" arch="x86"><title>How to Boot a System With the Kernel Debugger
in the GRUB Boot Environment (<command>kmdb</command>)</title><tasksummary><para>This procedure shows the basics for loading the kernel debugger (<command>kmdb</command>). The <command>savecore</command> feature is enabled by default.
For more detailed information about using the kernel debugger, see the <olink targetdoc="moddebug" remap="external"><citetitle remap="book">Solaris Modular Debugger Guide</citetitle></olink>.</para>
</tasksummary><procedure><step><para>Boot the system.</para><para>The GRUB menu is displayed when the
system is booted.</para>
</step><step id="ghtuq"><para>When the GRUB menu is displayed, type <command>e</command> to
access the GRUB edit menu.</para>
</step><step><para>Use the arrow keys to select the <filename>kernel$</filename> line.</para><para>If you cannot use the arrow keys, use the <literal>^</literal> key to
scroll up and the <literal>v</literal> key to scroll down.</para>
</step><step><para>Type <command>e</command> to edit the line.</para><para>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 <filename>kernel$</filename> line.</para>
</step><step><para>Type <option>k</option> at the end of the line.</para>
</step><step><para>Press enter to return to the GRUB main menu.</para>
</step><step><para>Type <command>b</command> to boot the system with the kernel debugger
enabled.</para>
</step><step><para>Access the kernel debugger.</para><itemizedlist><para>The method used to access the debugger is dependent upon the type of
console that you are using to access the system:</para><listitem><para>If you are using a locally attached keyboard, press F1&ndash;A.</para>
</listitem><listitem><para>If you are using a serial console, send a break by using the
method appropriate to that type of serial console.</para>
</listitem>
</itemizedlist><para>A welcome message is displayed when you access the kernel debugger for
the first time.</para>
</step>
</procedure><example id="ghtwx" arch="x86"><title>Booting a System With the Kernel Debugger (Hypervisor Support)</title><para>This example shows how to boot a 64-bit capable x86 based system, with
the kernel debugger enabled:</para><screen>kernel$ /boot/$ISADIR/xen.gz
module$ /platform/i86xpv/kernel/$ISADIR/unix /platform/i86xpv/kernel/$ISADIR/unix -B $ZFS-BOOTFS <userinput>-k</userinput></screen><para>This example shows how to boot a 64-bit capable x86 based system in
32-bit mode, with the kernel debugger enabled:</para><screen>kernel$ /boot/xen.gz
module$ /platform/i86xpv/kernel/unix /platform/i86xpv/kernel/unix -B $ZFS-BOOTFS <userinput>-k</userinput></screen>
</example><example id="ghtwr" arch="x86"><title>Booting a System With the Kernel Debugger (Support for Directly Loading
and Booting the <filename>unix</filename> Kernel)</title><para>The following examples apply to a Solaris release with GRUB support
for directly loading and booting the <filename>unix</filename> kernel.</para><para>This example shows how to boot a 64-bit capable x86 based system, with
the kernel debugger enabled.</para><screen>kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS <userinput>-k</userinput></screen><para>This example shows how to boot a 64-bit capable x86 based system in
32-bit mode, with the kernel debugger enabled.</para><screen>kernel$ /platform/i86pc/kernel/unix -B $ZFS-BOOTFS <userinput>-k</userinput></screen>
</example><example id="ghtwy" arch="x86"><title>Booting a System With the Kernel Debugger (GRUB Multiboot Implementation)</title><para>This example shows how to manually boot a 64-bit capable x86 based system
with the kernel debugger enabled.</para><screen>kernel$ /platform/i86pc/multiboot <userinput>kernel/amd64/unix -k</userinput> -B $ZFS-BOOTFS</screen><para>This example shows how to boot a 64-bit capable x86 based system 32-bit
mode with the kernel debugger enabled.</para><screen>kernel$ /platform/i86pc/multiboot <userinput>kernel/unix -k -B $ZFS-BOOTFS</userinput></screen>
</example>
</task>
</sect1>
</chapter><?Pub *0000030691 0?>