Home | History | Annotate | Download | only in milestone
      1 #
      2 # CDDL HEADER START
      3 #
      4 # The contents of this file are subject to the terms of the
      5 # Common Development and Distribution License (the "License").
      6 # You may not use this file except in compliance with the License.
      7 #
      8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9 # or http://www.opensolaris.org/os/licensing.
     10 # See the License for the specific language governing permissions
     11 # and limitations under the License.
     12 #
     13 # When distributing Covered Code, include this CDDL HEADER in each
     14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15 # If applicable, add the following below this CDDL HEADER, with the
     16 # fields enclosed by brackets "[]" replaced with your own identifying
     17 # information: Portions Copyright [yyyy] [name of copyright owner]
     18 #
     19 # CDDL HEADER END
     20 #
     21 
     22 Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
     23 Use is subject to license terms.
     24 
     25 ident	"%Z%%M%	%I%	%E% SMI"
     26 
     27 /lib/svc/share/README
     28 
     29 smf(5):  Notes on maintenance mode and recovery
     30 
     31 Failures that bring the system to maintenance mode may include hardware
     32 or critical software failures.  The procedures below are given so that
     33 some software repairs can be made; the recommended exit approach once a
     34 repair has been made is to reboot the system.  The system can be brought
     35 to maintenance mode deliberately via the '-s' option to boot(1M), or via
     36 the 's' option to init(1M).
     37 
     38 In failure scenarios, smf(5) may or may not be running, depending on
     39 which component has failed.  If smf(5) is running, and the /usr
     40 filesystem is reachable, then the usual svcadm(1M) invocations to clear
     41 maintenance state and restart services instances can be used.
     42 Otherwise, the following instructions describe the direct execution of
     43 service methods, so that capabilities that svc.startd(1M) would normally
     44 start automatically can be started manually.  In the case that the
     45 document recommends an invocation like
     46 
     47 # /lib/svc/method/example-method start
     48 
     49 you may also consider running these scripts with the shell displaying
     50 the commands from the service method as they are executed.  For sh(1)
     51 based scripts, this would mean running the method as
     52 
     53 # /sbin/sh -x /lib/svc/method/example-method start
     54 
     55 Some methods may be written to instead use ksh(1), with invocation
     56 
     57 # /usr/bin/ksh -x /lib/svc/method/example-method start
     58 
     59 The first line of the service method script will generally specify its
     60 required interpreter using the standard #! notation.  Method scripts may
     61 potentially require interpreters other than sh(1) or ksh(1).
     62 
     63 1.  Boot archive failure
     64 
     65 The boot archive may become out of sync with the root filesystem in a
     66 reboot following an abnormal system shutdown. The recommended action is
     67 to reboot immediately to rebuild the archive and correct the inconsistency.
     68 To accomplish this, on a GRUB-based platform, choose "Solaris failsafe"
     69 when the boot menu is displayed.  Type 'i' to get an interactive recovery
     70 shell and follow instructions to update the boot archive.  On an OBP-
     71 based platform, type 'boot -F failsafe' and follow the instructions.
     72 
     73 If the list of stale files are not yet loaded by the kernel
     74 or are compatible, you may continue booting by clearing the
     75 boot-archive service state
     76 
     77 # svcadm clear system/boot-archive
     78 
     79 2.  Failure to mount filesystems.
     80 
     81 In cases where the system was unable to bring a combination of the
     82 system/filesystem/{root,usr,minimal} services online, it may be possible
     83 to directly execute the corresponding service methods
     84 
     85 # /lib/svc/method/fs-root
     86 # /lib/svc/method/fs-usr
     87 # /lib/svc/method/fs-minimal
     88 
     89 to mount the various filesystems.  In the case that these methods fail,
     90 a direct invocation of mount(1M), and potentially fsck(1M), should be
     91 attempted for file systems required for recovery purposes.
     92 
     93 /lib/svc/method/fs-usr attempts to remount the root file system
     94 read-write, such that persistent changes can be made to the system's
     95 configuration.  If this method is failing, one can directly remount
     96 using the mount(1M) command via
     97 
     98 # /sbin/mount -o rw,remount /
     99 
    100 /etc/svc/volatile is a temporary filesystem generally reserved for Sun
    101 private use.  It may prove a useful location to create mount points if
    102 the root file system cannot be remounted read-write.
    103 
    104 3.  Failure to run svc.configd(1M).
    105 
    106 svc.configd(1M) will give detailed instructions for recovery if the
    107 corruption is detected in the repository.  If svc.configd(1M) cannot be
    108 run because of missing or corrupt library components, then the affected
    109 components will need to be replaced.  Components could be copied from a
    110 CD-ROM or DVD-ROM, or from another system.
    111 
    112 4.  Failure to run svc.startd(1M).
    113 
    114 If the inittab(4) line to invoke svc.startd(1M) is missing or incorrect,
    115 it will need to be restored.  A valid entry is
    116 
    117 smf::sysinit:/lib/svc/bin/svc.startd    >/dev/msglog 2<>/dev/msglog </dev/console
    118 
    119 If svc.startd(1M) cannot be run because of missing or corrupt library
    120 components, then the affected components will need to be replaced, as
    121 for svc.configd(1M) above.
    122 
    123 5.  Activating basic networking configuration.
    124 
    125 If svc.startd(1M) did not execute successfully, it may also be necessary
    126 to activate network interfaces manually, such that other hosts can be
    127 contacted.  The service methods can be invoked directly as
    128 
    129 # /lib/svc/method/net-loopback
    130 # /lib/svc/method/net-physical
    131 
    132 If these methods fail, a direct invocation of ifconfig(1M) can be
    133 attempted.
    134 
    135 In some scenarios, one may be able to use routeadm(1M) to activate more
    136 dynamic route management functionality; restoring the default dynamic
    137 routing behaviour can be done using the '-u' option.  (Invoking routeadm
    138 with no arguments will display which commands must be accessible for the
    139 current routing configuration to be invoked.)  Otherwise, once
    140 interfaces are up, a default route can be manually added using the
    141 route(1M) command.  On typical IPv4 networks, this invocation would be
    142 
    143 # /sbin/route add net default _gateway_IP_
    144 
    145 --
    146 
    147 (An extended version of this document is available at
    148 http://sun.com/msg/SMF-8000-QD.  That version includes additional
    149 document references.)
    150