Date: Thu, 26 Jun 2025 00:41:56 +0200 From: =?UTF-8?Q?Olivier_Cochard=2DLabb=C3=A9?= <olivier@freebsd.org> To: freebsd-current <freebsd-current@freebsd.org> Subject: Broken ZFS boot with current (including June 2025 stabilization week) Message-ID: <CA%2Bq%2BTcoApLJVL_YX7RveN%2Bj9Fomy_meU70nUKnTmC=GwmKjHZQ@mail.gmail.com>
index | next in thread | raw e-mail
[-- Attachment #1 --] 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 [-- Attachment #2 --] <div dir="ltr">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.<br>Here is the relevant storage layout triggering it (/usr in a dataset):<br><font face="monospace">NAME USED AVAIL REFER MOUNTPOINT<br>zroot 87.4G 126G 96K /zroot zroot/ROOT 57.4G 126G 96K none<br>zroot/ROOT/15.0-CURRENT-20250623.082321 57.3G 126G 24.2G /<br>zroot/ROOT/default 3.38M 126G 11.2G /<br>zroot/tmp 102M 126G 102M /tmp<br>zroot/usr 29.6G 126G 96K /usr<br>(etc.)</font><br><br>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:<br><font face="monospace">Mounting local filesystems:. ld-elf.so.1: Shared object "libtpool.so.2" not found, required by "zfs"</font><br><br>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.<br>Regards,<br>Olivier</div>home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2Bq%2BTcoApLJVL_YX7RveN%2Bj9Fomy_meU70nUKnTmC=GwmKjHZQ>
