echo "*** build zfs volumes ***"
sysctl kern.geom.debugflags=16
gpart delete -i 3 da0
gpart delete -i 2 da0
gpart delete -i 1 da0
gpart delete -i 3 da1
gpart delete -i 2 da1
gpart delete -i 1 da1
gpart destroy da0
gpart destroy da1
gpart create -s gpt da0
gpart create -s gpt da1
gpart add -b 34 -s 64K -t freebsd-boot da0
gpart add -t freebsd-zfs -l disk0 da0
gpart add -b 34 -s 64K -t freebsd-boot da1
gpart add -t freebsd-zfs -l disk1 da1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da1
kldload /boot/kernel/opensolaris.ko
kldload /boot/kernel/zfs.ko
zpool create -f -m /mnt zroot mirror /dev/gpt/disk0 /dev/gpt/disk1
zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
#zfs set mountpoint=/mnt zroot
zfs create -V 8G zroot/swap
zfs set org.freebsd:swap=on zroot/swap
zfs set checksum=off zroot/swap
zfs create zroot/home
zfs create zroot/usr
#cd /mnt/usr ; ln -s ../home home
zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
zfs create -o compression=lzjb zroot/usr/obj
zfs create zroot/var
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs unmount -f -a
zpool export zroot
zpool import -o cachefile=/tmp/zpool.cache zroot
echo "*** install FreeBSD ***"
cd /mnt/usr ; ln -s ../home home
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz lib32.txz kernel.txz doc.txz; \
do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
echo "*** create config files ***"
cat << EOF > /mnt/etc/rc.conf
zfs_enable="YES"
hostname="temp"
EOF
cat << EOF > /mnt/boot/loader.conf
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot"
tmpfs_load="YES"
EOF
cat << EOF > /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
tmpfs /tmp tmpfs rw,size=1024000000 0 0
EOF
echo "*** create zfs mount points ***"
cd /
zfs unmount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/home zroot/home