Properly create and activate cloned BE's
This commit is contained in:
parent
6cbdf50c17
commit
87501e9de4
20
beadm
20
beadm
|
|
@ -77,12 +77,15 @@ __be_new() { # 1=SOURCE 2=TARGET
|
||||||
do
|
do
|
||||||
OPTS="-o ${PROPERTY}=${VALUE} ${OPTS}"
|
OPTS="-o ${PROPERTY}=${VALUE} ${OPTS}"
|
||||||
done << EOF
|
done << EOF
|
||||||
$( zfs get -s local,none -H all ${FS} | grep -v -E "(type|creation|used|available|referenced|compressratio|mounted|origin|version|utf8only|normalization|casesensitivity|vscan|nbmand|mlslabel|refcompressratio|canmount)" )
|
$( zfs get -s local -H all ${FS} | grep -v -E "(mountpoint|canmount)" )
|
||||||
EOF
|
EOF
|
||||||
SOURCE=${1##*/}
|
SOURCE=${1##*/}
|
||||||
TARGET=${2##*/}
|
TARGET=${2##*/}
|
||||||
DATASET=$( echo ${FS} | awk '{print $1}' | sed -E s/"^${POOL}\/ROOT\/${SOURCE}"/"${POOL}\/ROOT\/${TARGET}"/g )
|
DATASET=$( echo ${FS} | awk '{print $1}' | sed -E s/"^${POOL}\/ROOT\/${SOURCE}"/"${POOL}\/ROOT\/${TARGET}"/g )
|
||||||
|
[ "${OPTS}" = "-o =" ] && OPTS=""
|
||||||
zfs clone -o canmount=noauto ${OPTS} ${FS}@${2##*/} ${DATASET}
|
zfs clone -o canmount=noauto ${OPTS} ${FS}@${2##*/} ${DATASET}
|
||||||
|
MOUNT=$( zfs get -H -o value mountpoint ${FS} )
|
||||||
|
zfs set mountpoint=${MOUNT} ${DATASET}
|
||||||
done
|
done
|
||||||
echo "Created successfully"
|
echo "Created successfully"
|
||||||
}
|
}
|
||||||
|
|
@ -150,7 +153,10 @@ case ${1} in
|
||||||
;;
|
;;
|
||||||
(activate) # ----------------------------------------------------------------
|
(activate) # ----------------------------------------------------------------
|
||||||
__be_exist ${POOL}/ROOT/${2}
|
__be_exist ${POOL}/ROOT/${2}
|
||||||
[ "${BOOTFS}" = "${POOL}/ROOT/${2}" ] || {
|
[ "${BOOTFS}" = "${POOL}/ROOT/${2}" ] && {
|
||||||
|
echo "Already activated"
|
||||||
|
exit 0
|
||||||
|
} || {
|
||||||
[ "${ROOTFS}" = "${POOL}/ROOT/${2}" ] || {
|
[ "${ROOTFS}" = "${POOL}/ROOT/${2}" ] || {
|
||||||
MNT="/tmp/BE"
|
MNT="/tmp/BE"
|
||||||
mkdir -p ${MNT} || {
|
mkdir -p ${MNT} || {
|
||||||
|
|
@ -158,10 +164,12 @@ case ${1} in
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
zfs set mountpoint=${MNT} ${POOL}/ROOT/${2}
|
zfs set mountpoint=${MNT} ${POOL}/ROOT/${2}
|
||||||
cp /boot/zfs/zpool.cache ${MNT}/boot/zfs/zpool.cache 2> /dev/null
|
zfs mount ${POOL}/ROOT/${2}
|
||||||
|
cp /boot/zfs/zpool.cache ${MNT}/boot/zfs/zpool.cache # 2> /dev/null
|
||||||
LOADER_CONFIGS=${MNT}/boot/loader.conf
|
LOADER_CONFIGS=${MNT}/boot/loader.conf
|
||||||
[ -f ${MNT}/boot/loader.conf.local ] && LOADER_CONFIGS="${LOADER_CONFIGS} ${MNT}/boot/loader.conf.local"
|
[ -f ${MNT}/boot/loader.conf.local ] && LOADER_CONFIGS="${LOADER_CONFIGS} ${MNT}/boot/loader.conf.local"
|
||||||
sed -i '' -E s/"^vfs.root.mountfrom=.*$"/"vfs.root.mountfrom=\"zfs:${POOL}\/ROOT\/${2##*/}\""/g ${LOADER_CONFIGS} 2> /dev/null
|
sed -i '' -E s/"^vfs.root.mountfrom=.*$"/"vfs.root.mountfrom=\"zfs:${POOL}\/ROOT\/${2##*/}\""/g ${LOADER_CONFIGS} 2> /dev/null
|
||||||
|
zfs umount ${POOL}/ROOT/${2}
|
||||||
zfs set mountpoint=legacy ${POOL}/ROOT/${2}
|
zfs set mountpoint=legacy ${POOL}/ROOT/${2}
|
||||||
}
|
}
|
||||||
zpool set bootfs=${POOL}/ROOT/${2} ${POOL} && {
|
zpool set bootfs=${POOL}/ROOT/${2} ${POOL} && {
|
||||||
|
|
@ -179,8 +187,11 @@ case ${1} in
|
||||||
zfs list -H -o name -t filesystem -r ${POOL}/ROOT/${2} \
|
zfs list -H -o name -t filesystem -r ${POOL}/ROOT/${2} \
|
||||||
| while read I
|
| while read I
|
||||||
do
|
do
|
||||||
|
MOUNT=$( zfs get -H -o value mountpoint ${I} )
|
||||||
|
zfs set canmount=noauto ${I}
|
||||||
|
[ "${MOUNT}" = legacy ] || zfs set mountpoint=${MOUNT} ${I}
|
||||||
zfs set canmount=on ${I} 2> /dev/null
|
zfs set canmount=on ${I} 2> /dev/null
|
||||||
zfs promote ${I} 2> /dev/null
|
zfs promote ${I}
|
||||||
done
|
done
|
||||||
echo "Activated successfully"
|
echo "Activated successfully"
|
||||||
;;
|
;;
|
||||||
|
|
@ -216,7 +227,6 @@ case ${1} in
|
||||||
do
|
do
|
||||||
zfs destroy -r ${I} 2> /dev/null
|
zfs destroy -r ${I} 2> /dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
echo "Destroyed successfully"
|
echo "Destroyed successfully"
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue