xref: /illumos-gate/usr/src/cmd/svc/milestone/boot-archive (revision 0173c38a73f34277e0c97a19fedfd25d81ba8380)
1#!/sbin/sh
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#
23# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26# ident	"%Z%%M%	%I%	%E% SMI"
27
28. /lib/svc/share/smf_include.sh
29. /lib/svc/share/fs_include.sh
30
31ERRORFILE=/etc/svc/volatile/boot_archive_error
32FILELIST=/etc/svc/volatile/boot_archive_filelist
33UPDATEFILE=/etc/svc/volatile/boot_archive_needs_update
34
35#
36# no boot-archive on sparc...yet
37#
38if [  `uname -p` = "sparc" ]; then
39	exit $SMF_EXIT_OK
40fi
41
42smf_is_globalzone || exit $SMF_EXIT_OK
43
44#
45# Make sure we return failure only once. If user choose to ignore
46# error, we return success to permit boot to continue. The boot
47# archive will be updated on the subsequent shutdown.
48#
49if [ -f "${ERRORFILE}" ]; then
50	rm ${ERRORFILE}
51	exit $SMF_EXIT_OK
52fi
53
54#
55# Now check the archive.
56#
57/sbin/bootadm update-archive -vnC 2> /dev/null
58if [ $? = 0 ]; then
59	exit $SMF_EXIT_OK
60fi
61
62touch $ERRORFILE
63touch $UPDATEFILE
64
65cecho ""
66cecho "WARNING: The following files in / differ from the boot archive:"
67cecho ""
68
69/sbin/bootadm update-archive -vn | grep -v "cannot find" > /dev/msglog
70
71cecho ""
72cecho "The recommended action is to reboot and select the \"Solaris failsafe\""
73cecho "option from the boot menu. Then follow the prompts to update the"
74cecho "boot archive. To continue booting at your own risk, you may clear the"
75cecho "service by running: \"svcadm clear system/boot-archive\""
76cecho ""
77
78exit $SMF_EXIT_ERR_FATAL
79