mpxio-upgrade revision c17d6d0368a95d88a7901e522b92d3f7b95da5da
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#!/sbin/sh
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# CDDL HEADER START
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# The contents of this file are subject to the terms of the
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# Common Development and Distribution License (the "License").
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# You may not use this file except in compliance with the License.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# or http://www.opensolaris.org/os/licensing.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# See the License for the specific language governing permissions
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# and limitations under the License.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# When distributing Covered Code, include this CDDL HEADER in each
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk# If applicable, add the following below this CDDL HEADER, with the
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# fields enclosed by brackets "[]" replaced with your own identifying
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk# information: Portions Copyright [yyyy] [name of copyright owner]
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# CDDL HEADER END
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# Use is subject to license terms.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#ident "%Z%%M% %I% %E% SMI"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk. /lib/svc/share/fs_include.sh
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk. /lib/svc/share/net_include.sh
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# Make sure that the essential libraries can be found.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkLD_LIBRARY_PATH=/lib; export LD_LIBRARY_PATH
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkSTMSBOOTUTIL=/lib/mpxio/stmsboot_util
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkSAVEDIR=/etc/mpxio
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkRECOVERFILE=$SAVEDIR/recover_instructions
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkDEVFSADM=/usr/sbin/devfsadm
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkMETADEVADM=/usr/sbin/metadevadm
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkusrmounted=0
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkMACH=`/usr/bin/uname -p`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkEGREP=/usr/bin/egrep
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkSED=/usr/bin/sed
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# map $special and $fsckdev
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkmpxio_mapdev()
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk{
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk new_special=`$STMSBOOTUTIL -m $special`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ $? -eq 0 ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk special=$new_special
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk new_fsckdev=`$STMSBOOTUTIL -m $fsckdev`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ $? -eq 0 ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fsckdev=$new_fsckdev
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkmpxio_error()
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk{
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cecho "\nERROR: stmsboot: $1"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # display recovery instructions - the first call logs to the service
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk # log and the second call displays on the console.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk shcat $RECOVERFILE
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk shcat $RECOVERFILE >/dev/msglog 2>&1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cecho "These instructions were also logged to the file $RECOVERFILE\n"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# root ("/") is already mounted read only by the kernel.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# Remount the root read-write.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkmpxio_mount_root()
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk{
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk exec < $vfstab; readvfstab /
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_mapdev
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk checkopt "llock" $mntopts
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk mntopts='remount'
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk [ -n "$otherops" ] && mntopts="${mntopts},${otherops}"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /sbin/mount -m -F $fstype -o $mntopts $special $mountp \
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk>/dev/msglog 2>&1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# mount /usr read only
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkmpxio_mount_usr()
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk{
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk exec < $vfstab; readvfstab "/usr"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk ret_val=0
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ -n "$mountp" ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_mapdev
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "$fstype" = cachefs ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # Mount read-only without the cache.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk case "$mntopts" in
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk *backfstype=nfs*)
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cfsbacktype=nfs
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk ;;
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk *backfstype=hsfs*)
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cfsbacktype=hsfs
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk ;;
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk *)
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cecho 'stmsboot: invalid vfstab entry for /usr'
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cfsbacktype=nfs
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk ;;
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk esac
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # see the comment below for /dev/null
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /sbin/mount -m -F $cfsbacktype -o ro $special $mountp \
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk>/dev/null 2>&1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk ret_val=$?
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk else
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # Must use -o largefiles here to ensure the read-only
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # mount does not fail as a result of having a large
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # file present on /usr.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "x$mntopts" = x- ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mntopts='ro,largefiles'
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk else
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk checkopt largefiles $mntopts
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "x$option" != xlargefiles ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mntopts="largefiles,$mntopts"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk checkopt ro $mntopts
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "x$option" != xro ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mntopts="ro,$mntopts"
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk fi
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # Requesting logging on a read-only mount
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # causes errors to be displayed, so remove
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # "logging" from the list of options.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk checkopt logging $mntopts
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "x$option" = xlogging ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mntopts="$otherops"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # In case of a manual restart of the service, mount
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # will emit messages if /usr is already mounted.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # So redirect the output to /dev/null.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /sbin/mount -m -F $fstype -o $mntopts $special /usr \
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk>/dev/null 2>&1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk ret_val=$?
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ $ret_val -eq 0 ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk usrmounted=1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk return $ret_val
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# update system dump configuration
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkupdate_dumpconf()
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk{
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # Disable device-in-use checking (done in libdiskmgt).
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # Without disabling this check, the configuration of dump device
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # would fail as the device-in-use code incorrectly concludes that
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # the device is in use and hence prevents configuration of the dump
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # device.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk NOINUSE_CHECK=1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk export NOINUSE_CHECK
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk set -- `dumpadm -u 2>&1 | $EGREP 'cannot use /dev.* as dump device'`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "x$4" != x ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk newname=`$STMSBOOTUTIL -M $4`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ $? -eq 0 ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if /usr/sbin/dumpadm -d $newname > /dev/msglog 2> /dev/console; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cecho "stmsboot: dump configuration has been \
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkupdated."
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk else
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_error "failed to configure $newname as \
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkthe dump device.\nold dump device name: $4"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk return 1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk return 0
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# Update bootpath for x86 here when we are enabling mpxio on root
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkupdate_bootpath()
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk{
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cur_bootpath=`/usr/sbin/eeprom bootpath | $SED 's/bootpath=[ ]*//g' | $SED 's/[ ].*//'`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # only take care of phci-based path here
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk PHCIOPT=`$STMSBOOTUTIL -D mpt -n`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk echo $cur_bootpath | $EGREP -s "/fp@.*/disk|$PHCIOPT"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ $? -eq 0 ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk new_bootpath=`$STMSBOOTUTIL -m /devices$cur_bootpath`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ $? -eq 0 -a "x$new_bootpath" != "x" ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # stmsboot_util -m phci-based path got mapped path back means
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # mpxio is enabled on bootpath
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk new_bootpath=`echo $new_bootpath|$SED "s/.*\/devices//"`
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /usr/sbin/eeprom bootpath=$new_bootpath
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cecho "stmsboot: bootpath has been updated"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /sbin/bootadm update-archive
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk# do the actual work
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk#
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkmpxio_main()
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk{
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # NOTE: If the first attempt to run the service has failed due to an
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # expected error, users should be able to manually rerun the service.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # First mount /usr read only. This must be done to run
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # utilities such as fsck and devfsadm.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # In the case of a manual rerun of the service, mounting of /usr here
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # fails if /usr already happens to be mounted. It is better that we
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # do not mount /usr if already mounted, but there seems to be no
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # apparent way to check whether /usr is mounted or not as we mount
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # /usr without making an entry into /etc/mnttab. So instead of
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # explicitly checking for mount failures, we just do a sanity check
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # by looking for some file (in this case devfsadm) in /usr.
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk #
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_mount_usr
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ ! -s $DEVFSADM ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_error "failed to mount the /usr filesystem."
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk return
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if mpxio_mount_root; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # create /dev links
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk cecho "stmsboot: configuring devices"
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk $DEVFSADM
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # update /etc/vfstab to reflect device name changes
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if $STMSBOOTUTIL -u >/dev/msglog 2>&1; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if update_dumpconf; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # update svm configuration to reflect new names
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ -s /kernel/drv/md.conf ] && \
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk [ -x $METADEVADM ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk $METADEVADM -r >/dev/msglog 2>&1
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk if [ "x$MACH" = "xi386" ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk # only update bootpath here for x86
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk update_bootpath
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk else
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_error "failed to update /etc/vfstab."
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /usr/sbin/svcadm disable system/device/mpxio-upgrade
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /usr/sbin/reboot
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk else
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk mpxio_error "failed to mount the root filesystem."
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk if [ $usrmounted -eq 1 ]; then
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk /sbin/umount /usr
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk fi
dbcf55756e293292dfbfbb75fe317dd094b0585fjeff.schenk}
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenkmpxio_main
faaa489e1cc905efd364e01fe09111173c95db68jeff.schenk