On Fri, Jun 28, 2024 at 6:26 PM Rick Macklem <rick.mack...@gmail.com> wrote:
>
> Hi,
>
> I've installed FreeBSD current in a bhvye instance. Everything
> went ok, with UFS as a root partition.
> Then I created a zpool in another partition...
> - Now, every time I boot it I have to
>   OK set currdev=disk0s1a:
> to get it to boot.
>
> What is the trick to keep ZFS from messing up the boot variables?
I've been poking around, but haven't learned much.
I think it is userboot (although there are so many boot programs in /boot,
I am not 100% sure?) that sets currdev=zfs:example: since it sees there is ZFS
in a partition on the drive. It is not the boot partition and doesn't have
any boot stuff in it.

When I look at userboot, it appears that it always sets userboot_zfs_found
to 1 whenever userboot_zfs_probe() is called, given that there is a ZFS
partition with a pool on it. This makes extract_currdev get set to the
ZFS stuff,
assuming I am reading the code correctly.
What I do not understand is why I have not seen this before?
(Was the a change to building it with USERBOOT_ZFS_SUPPORT done?)

It seems that userboot_zfs_probe() should check for boot files on the volume
and not just that a pool exists on the partition, maybe?

Anyhow, manually setting currdev=disk0s1a: gets around the problem.

rick

>
> Thanks, rick

Reply via email to