Re: Getting boottime early in booting

From: Konstantin Belousov <kib_at_freebsd.org>
Date: Sat, 04 Apr 2026 08:17:44 UTC
On Sat, Apr 04, 2026 at 12:37:52AM -0700, Rick Macklem wrote:
> On Fri, Apr 3, 2026 at 8:15 PM Konstantin Belousov <kib@freebsd.org> wrote:
> >
> > On Fri, Apr 03, 2026 at 07:13:02PM -0600, Warner Losh wrote:
> > > On Fri, Apr 3, 2026, 7:05 PM Rick Macklem <rick.macklem@gmail.com> wrote:
> > >
> > > > Hi,
> > > >
> > > > I'm fiddling with a NFSv4 diskless root fs setup and I've run
> > > > into a couple of challenges.
> > > >
> > > > 1 - I need a value that will be different each time the machine boots.
> > > >      I would normally use getboottime(), but for the NFS root fs mount,
> > > >      it just returns 0.
> > > >      Any ideas w.r.t. something I can acquire early in booting that will
> > > >      change each time the system is booted?
> > > >
> > >
> > > We don't have this today. And we can't have it without hardware assist...
> > > though you may be ok enough with a value from the rtc.
> > >
> > > There's work to pass the vale from the monotonicly increasing counter uefi
> > > provides. But not on all platforms.
> >
> > We already have mechanisms to ensure that early entropy is provided on
> > boot.  Do you care if the value used is indeed boot time, or should it
> > only be unique per boot?
> >
> > With the entropy loading, I believe you would get what you need on any
> > machine with the persistent storage.
> Hmm, do you mean the stuff under /var/db/entropy?

It is /boot/entropy I think.

Also I see 'entropy_efi_seed' which implies that loader might get some
entropy from the UEFI facilities.  But this is a speculation based on
the documentation.

> If so, that doesn't work for this case, since for an NFS root fs, /etc is
> usually a memory fs.
> (See https://docs-archive.freebsd.org/doc/8.4-RELEASE/usr/share/doc/freebsd/handbook/network-pxe-nfs.html)
> 
> Without a unique per boot value, things work, it's just that it
> loops once more during the mount attempt, each time it is
> rebooted. (Without boring you with the details, each time
> a seq# gets incremented by 1 and it needs to loop until
> it gets to the next seq#. I can tweak the mount code so
> that it doesn't spew out printf()s when it loops.)

If UEFI source works, then the machine should get enough entropy even for
shared rootfs.

> 
> Thanks, rick
> 
> 
> >
> > >
> > > Warner
> > >
> > > 2 - Does anyone know how to fix "could not determine audit condition"
> > > >      which I get whenever I try and login when it is multiuser?
> > > >      (I can run single user, but since I can't login once it's multiuser??)
> > > >
> > > > Thanks for any help with these, rick
> > > >
> > > >
> >
>