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