Current File : //etc/fs/zfs/bootinstall
#!/bin/ksh -p

#
# Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
#

PATH="/usr/bin:/usr/sbin:${PATH}"; export PATH
ARCH=$(uname -p)
KARCH=$(uname -m)

LOGDEV=/dev/sysmsg
LOGGER=/usr/bin/logger
PROGNAME=$0



print_err()
{
	msg=`gettext "Error installing bootloader:"`
	echo $msg $1
	$LOGGER -t $PROGNAME -i -p syslog.err  "$msg $1"
}

if [ "$ARCH" != "i386" -a "$ARCH" != "sparc" ] ; then
	msg=`gettext "Unknown architecture:"`
	print_err  "$msg $ARCH"
	exit 1
fi

POOL="$1"
DEV=$(echo "$2" | sed -e 's+/dsk/+/rdsk/+')

if [ -z "${POOL}" -o -z "${DEV}" ]; then
	msg=`gettext "Invalid usage"`
	print_err "$* $msg"
	exit 1
fi



CURPOOL=$(df -k / | awk 'NR == 2 {print $1}' | sed 's,/.*,,')
BPOOL=$(zfs get -H -o value com.oracle:boot-pool "$CURPOOL" | sed 's/^-$//g')

if [ "$CURPOOL" != "$POOL" -a "$BPOOL" != "$POOL" ] ; then
	fmt=`gettext "Modified pool (%s), must be current root pool (%s)"`
	print_err "`printf "$fmt" ${POOL} ${CURPOOL}`"
	exit 1
fi

#
#

/usr/sbin/bootadm install-bootloader ${DEV} 2> $LOGDEV
if [ $? != 0 ]; then
	fmt=`gettext "bootadm install-bootloader failed on %s"`
	print_err "`printf "$fmt" ${DEV}`"
	exit 1
fi

exit 0