#!/bin/sh # # (c) 2009-2011 Wheel Systems Sp. z o.o. # # Author: Pawel Jakub Dawidek # if [ $# -ne 1 ]; then echo "usage: $0 name" >/dev/stderr exit 1 fi if [ "${1}" = "jailbase" ]; then zfs destroy -R system/root@jailbase_old [ $? -eq 0 ] || exit 1 zfs rename system/root@jailbase system/root@jailbase_old [ $? -eq 0 ] || exit 1 zfs snapshot system/root@jailbase exit $? fi base="system/jails/$1" path="/jails/$1" zfsupgrade() { zfs destroy ${base}_old [ $? -eq 0 ] || exit 1 zfs rename ${base} ${base}_old [ $? -eq 0 ] || exit 1 zfs clone system/root@jailbase ${base} [ $? -eq 0 ] || exit 1 zfs set readonly=on ${base} [ $? -eq 0 ] || exit 1 for fs in etc tmp var usr root; do zfs rename ${base}_old/${fs} ${base}/${fs} [ $? -eq 0 ] || exit 1 done zfs set mountpoint=none ${base}_old [ $? -eq 0 ] || exit 1 } zfsupgrade umask 22 cd /usr/src/etc/rc.d make install DESTDIR="${path}" cd /usr/src mergemaster -p -D "${path}" mergemaster -Fi -D "${path}"