| 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