#!/bin/sh . /usr/share/debconf/confmodule db_register partman-zfs/confirm partman-zfs/confirm_nooverwrite # Load modules and scan volume groups if it was not done before if [ ! -f /var/lib/partman/zfs ] && [ "$(udpkg --print-os)" = kfreebsd ] ; then # load required kernel modules kldload zfs >/dev/null 2>&1 # Make sure that zfs is available - not a critical error. # Wait up to 10 seconds as ZoL module may need time to settle down. local zfs_load_timeout zfs_load_timeout=0 while ! [ -e /dev/zfs ] && ! [ "$zfs_load_timeout" -eq "10" ]; do sleep 1 let zfs_load_timeout++ done # scan for zfs pools log-output -t partman zpool import -a -f -o altroot=/target # Some ZFS versions don't create cachefile when "-o altroot" is used. # Request it explicitly. for vg in $(zpool list -H -o name) ; do log-output -t partman-zfs zpool set cachefile=/boot/zfs/zpool.cache "$vg" || return 1 done touch /var/lib/partman/zfs fi