The /usr/sbin/freebsd-update tool is using output from "sysctl -n kern.bootfile" command when detecting kernel directory. Unfortunately, when booted from GRUB, this returns only "/kernel" (although the system is in fact booted from /boot/kernel/kernel). This results in backup_kernel() function of freebsd-update copying entire / into /boot/kernel.old, thus failing freebsd-update install process. I used grub2-2.00_7 and it's default option for booting FreeBSD (10.2, amd64), as autoconfigured by /usr/local/etc/grub.d/10_kfreebsd. The autoconfigured boot menu entry is: menuentry 'FreeBSD' --class freebsd --class bsd --class os $menuentry_id_option 'kfreebsd-simple-5512983a8bce973b' { insmod part_msdos insmod ufs2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 5512983a8bce973b else search --no-floppy --fs-uuid --set=root 5512983a8bce973b fi echo 'Loading kernel of FreeBSD kernel ...' kfreebsd /boot/kernel/kernel kfreebsd_loadenv /boot/device.hints insmod part_msdos insmod ufs2 if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 5512983a8bce973b else search --no-floppy --fs-uuid --set=root 5512983a8bce973b fi kfreebsd_module_elf /boot/kernel/ufs.ko set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/5512983a8bce973b set kFreeBSD.vfs.root.mountfrom.options=rw }
*** Bug 207377 has been marked as a duplicate of this bug. ***