Re: Booting in bhyve always sets currdev to ZFS
- In reply to: Rick Macklem : "Booting in bhyve always sets currdev to ZFS"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 30 Jun 2024 01:52:31 UTC
On Fri, Jun 28, 2024 at 6:26 PM Rick Macklem <rick.macklem@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