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