Broken ZFS boot with current (including June 2025 stabilization week)

From: Olivier_Cochard-Labbé <olivier_at_freebsd.org>
Date: Wed, 25 Jun 2025 22:41:56 UTC
I've noticed that a critical library, such as libtpool.so.2 used by ZFS, is
now installed in /usr/lib instead of /lib. This prevents a freshly
installed system from booting properly.
Here is the relevant storage layout triggering it (/usr in a dataset):
NAME USED AVAIL REFER MOUNTPOINT
zroot 87.4G 126G 96K /zroot zroot/ROOT 57.4G 126G 96K none
zroot/ROOT/15.0-CURRENT-20250623.082321 57.3G 126G 24.2G /
zroot/ROOT/default 3.38M 126G 11.2G /
zroot/tmp 102M 126G 102M /tmp
zroot/usr 29.6G 126G 96K /usr
(etc.)

The bootloader can mount /, but once that is done, it calls ZFS to mount
other directories (/usr, /tmp, etc.). The issue is that ZFS requires
libtpool.so.2, which is not mounted at this stage. Consequently, the system
ends up with the error:
Mounting local filesystems:. ld-elf.so.1: Shared object "libtpool.so.2" not
found, required by "zfs"

Regarding upgraded systems, you will have the old libtpool.so.2 in /lib and
the new one in /usr/lib. The old library is the one that allows the system
to finish booting, so it should not be deleted.
Regards,
Olivier