Hello gurus,
I'm in a bit of a bind and was hoping to be steered in the right direction. I'm running OPNsense 25.10_2-amd64 w/ FreeBSD 14.3-RELEASE-p4 on a zfs single disk decision DEC4040 appliance. As part of a recent zpool status check, I encountered a message to upgrade zpool to enable new features. Rather than doing my homework as to whether I need said features or not, I simply issued `zpool upgrade zroot` - a no-no. After reading few very helpful posts (e.g. this), I set about performing the boot loader updates prior to system reboot. But, I encountered an error (please see /b/ below) which has me stumped, and unsure as to the next steps. Help please.
	
	
	
		
	
	
	
		
gpart output:
	
	
	
		
	
	
	
		
	
	
	
		
Which would mean I'd have to update both a) the EFI loader and b) the BIOS bootcode øn the single disk ZFS install due to freebsd-zfs type.
/a/ seems to be okay w/ the following commands:
	
	
	
		
/b/ gives this error:
	
	
	
		
Adding a new disk isn't feasible (as the appliance doesn't allow for it). Perhaps a potential solution could be to erase existing nda0p2 and recreate it - but I'm not very skilled at such low-level commands, and also am unsure whether there's space to do so anymore.
If I understand the output of
	
	
	
		
Am I hosed?
				
			I'm in a bit of a bind and was hoping to be steered in the right direction. I'm running OPNsense 25.10_2-amd64 w/ FreeBSD 14.3-RELEASE-p4 on a zfs single disk decision DEC4040 appliance. As part of a recent zpool status check, I encountered a message to upgrade zpool to enable new features. Rather than doing my homework as to whether I need said features or not, I simply issued `zpool upgrade zroot` - a no-no. After reading few very helpful posts (e.g. this), I set about performing the boot loader updates prior to system reboot. But, I encountered an error (please see /b/ below) which has me stumped, and unsure as to the next steps. Help please.
		Code:
	
	zpool upgrade zroot
This system supports ZFS pool feature flags.
Enabled the following features on 'zroot':
  edonr
  zilsaxattr
  head_errlog
  blake3
  block_cloning
  vdev_zaps_v2
Pool 'zroot' has the bootfs property set, you might need to update
the boot code. See gptzfsboot(8) and loader.efi(8) for details.
	
		Code:
	
	Pool 'zroot' has the bootfs property set, you might need to update
the boot code. See gptzfsboot(8) and loader.efi(8) for details.
	gpart output:
		Code:
	
	gpart show
=>         3  2000409253  nda0  GPT  (954G)
           3      532480     1  efi  (260M)
      532483         311     2  freebsd-boot  (156K)
      532794  1981808640     3  freebsd-zfs  (945G)
  1982341434    18067822     4  freebsd-swap  (8.6G)
	
		Code:
	
	sysctl machdep.bootmethod
machdep.bootmethod: UEFI
	
		Code:
	
	root@MorikCage:/usr/ports %# df -h
Filesystem                   Size    Used   Avail Capacity  Mounted on
zroot/ROOT/24.4.2            891G     12G    879G     1%    /
devfs                        1.0K      0B    1.0K     0%    /dev
/dev/gpt/efifs               256M    1.3M    255M     0%    /boot/efi
zroot                        879G     96K    879G     0%    /zroot
zroot/tmp                    879G    9.9M    879G     0%    /tmp
zroot/usr/home               879G     96K    879G     0%    /usr/home
zroot/var/audit              879G     96K    879G     0%    /var/audit
zroot/var/tmp                879G    116K    879G     0%    /var/tmp
zroot/var/crash              879G     96K    879G     0%    /var/crash
zroot/usr/src                879G     96K    879G     0%    /usr/src
zroot/var/mail               879G    144K    879G     0%    /var/mail
zroot/var/log                882G    2.8G    879G     0%    /var/log
zroot/usr/ports              880G    1.7G    879G     0%    /usr/ports
devfs                        1.0K      0B    1.0K     0%    /var/dhcpd/dev
devfs                        1.0K      0B    1.0K     0%    /var/unbound/dev
/usr/local/lib/python3.11    891G     12G    879G     1%    /var/unbound/usr/local/lib/python3.11
/lib                         891G     12G    879G     1%    /var/unbound/lib
	/a/ seems to be okay w/ the following commands:
		Code:
	
	cp /boot/loader.efi /boot/efi/efi/boot/bootx64.efi
mkdir /boot/efi/efi/freebsd
cp /boot/loader.efi /boot/efi/efi/freebsd/loader.efi
	/b/ gives this error:
		Code:
	
	gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 nda0
gpart: /dev/nda0p2: not enough space
	Adding a new disk isn't feasible (as the appliance doesn't allow for it). Perhaps a potential solution could be to erase existing nda0p2 and recreate it - but I'm not very skilled at such low-level commands, and also am unsure whether there's space to do so anymore.
If I understand the output of
 gpart show correctly, then freebsd-boot (on nda0p2) is only 311 bytes whereas /boot/pmbr is 512. So, deleting existing freebsd-boot partition to recreate it will not help as there isn't no larger (than 311 bytes) space available anymore? I read somewhere that manipulation of swap partition could create that extra ~250 bytes needed to delete and recreate freebsd-boot partition.
		Code:
	
	swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/gpt/swapfs   9033908        0  9033908     0%
	Am I hosed?