After some thought and some tests: Don't involve bsdinstall.UFS.
Remove (rename) on the installer media /etc/rc.local, create custom rc.local, run the installer script from there:
Code:
sh /root/bsdsysinstaller
sh:
#!/bin/sh
# example unattended installation script saved under /root/bsdsysinstaller
gpart create -s gpt ada0
# optional if system is BIOS
gpart add -t efi -a 4k -s 260m -l efiboot0 ada0
# optional if system is UEFI
gpart add -t freebsd-boot -s 512k -l boot0 ada0
gpart add -t freebsd-swap -a 1m -s 4g -l swap0 ada0
gpart add -t freebsd-ufs -a 1m -s 20g -l ufs0 ada0
gpart add -t freebsd-ufs -a 1m -l ufsdata0 ada0
# optional if BIOS
newfs_msdos -c1 -F32 /dev/ada0p1
mount_msdosfs /dev/ada0p1 /mnt
mkdir -p /mnt/efi/freebsd
cp -a /boot/loader.efi /mnt/efi/freebsd
umount /mnt
# optional if UEFI
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 2 ada0
# put geli configuration here
# geli attach provider
newfs -j /dev/ada0p4.eli
newfs -j /dev/ada0p5.eli
mkdir /tmp/ufs
mount /dev/ada0p4.eli /tmp/ufs
tar xfC /usr/freebsd-dist/kernel.txz /tmp/ufs
tar xfC /usr/freebsd-dist/base.txz /tmp/ufs
cat <<EOF>> /tmp/ufs/boot/loader.conf
geom_eli_load="YES"
EOF
cat <<EOF>> /tmp/ufs/etc/fstab
/dev/ada0p3.eli none swap sw 0 0
/dev/ada0p4.eli / ufs rw 1 1
EOF
cat <<EOF>> /tmp/ufs/etc/rc.conf
hostname="example.org"
keymap="uk"
sshd_enable="YES"
ifconfig_DEFAULT="DHCP"
EOF
efibootmgr -c -a -L FreeBSD -l ada0p1:/efi/freebsd/loader.efi