Name temporary mount points with Boot Environment name. Disable mounting datasets with mountpoint=none (avilla).

This commit is contained in:
Slawomir Wojciech Wojtczak (vermaden) 2012-10-30 07:41:54 +01:00
parent 1159385c23
commit 28252ff069
1 changed files with 11 additions and 9 deletions

16
beadm
View File

@ -426,7 +426,7 @@ case ${1} in
# do not change root (/) mounted boot environment mountpoint # do not change root (/) mounted boot environment mountpoint
if [ "${ROOTFS}" != "${POOL}/ROOT/${2}" ] if [ "${ROOTFS}" != "${POOL}/ROOT/${2}" ]
then then
TMPMNT=$( mktemp -d /tmp/tmp.XXXXXX ) TMPMNT=$( mktemp -d /tmp/beadm.${2}.XXXXXX )
if ! mkdir -p ${TMPMNT} 2> /dev/null if ! mkdir -p ${TMPMNT} 2> /dev/null
then then
echo "ERROR: Cannot create '${TMPMNT}' directory" echo "ERROR: Cannot create '${TMPMNT}' directory"
@ -642,7 +642,7 @@ EOF
(mount) # ------------------------------------------------------------ (mount) # ------------------------------------------------------------
if [ ${#} -eq 2 ] if [ ${#} -eq 2 ]
then then
TARGET=$( mktemp -d /tmp/tmp.XXXXXX ) TARGET=$( mktemp -d /tmp/beadm.${2}.XXXXXX )
elif [ ${#} -eq 3 ] elif [ ${#} -eq 3 ]
then then
TARGET=${3} TARGET=${3}
@ -668,7 +668,7 @@ EOF
fi fi
PREFIX=$( echo ${POOL}/ROOT/${2}/ | sed 's/\//\\\//g' ) PREFIX=$( echo ${POOL}/ROOT/${2}/ | sed 's/\//\\\//g' )
zfs list -H -o name,mountpoint -r ${POOL}/ROOT/${2} \ zfs list -H -o name,mountpoint -r ${POOL}/ROOT/${2} \
| grep -v "legacy$" \ | grep -v -E "[[:space:]](legacy|none)$" \
| sort -n \ | sort -n \
| grep -E "^${POOL}/ROOT/${2}/" \ | grep -E "^${POOL}/ROOT/${2}/" \
| while read FS MOUNTPOINT | while read FS MOUNTPOINT
@ -678,12 +678,14 @@ EOF
INHERIT=$( zfs get -H -o source mountpoint ${FS} ) INHERIT=$( zfs get -H -o source mountpoint ${FS} )
if [ "${INHERIT}" = "local" ] if [ "${INHERIT}" = "local" ]
then then
if [ "${MOUNTPOINT}" = "legacy" ] case ${MOUNTPOINT} in
then (legacy|none)
continue continue
else ;;
(*)
MOUNTPOINT="/$( echo "${FS}" | sed s/"${PREFIX}"//g )" MOUNTPOINT="/$( echo "${FS}" | sed s/"${PREFIX}"//g )"
fi ;;
esac
fi fi
fi fi
if ! mkdir -p ${TARGET}${MOUNTPOINT} 1> /dev/null 2> /dev/null if ! mkdir -p ${TARGET}${MOUNTPOINT} 1> /dev/null 2> /dev/null