https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279829

--- Comment #9 from Warner Losh <i...@freebsd.org> ---
OK. I've thought through this. We have two strategies here. This is kinda not a
bug, but also kinda a huge big rock sticking out for people to trip over that
we should do something about, since we've known about it for a while now...

(1) People Must Upgrade. Sorry, but they have to. We can't support the long
dead hand of the past forever.

(2) We Must Document How. We do already, but it needs be greatly improved.

Now, having said (1) and (2) there's way too much friction for both.

So I'm proposing the following
(a) We add a version number checking to the lua scripts. The boot loader
already has a loader_version (4th) or loader.version (lua) exported. This is
the boot program revision. Right now it's among the jankiest jank[1] still in
the jankville part of the boot loader.

Proposal: Bump this to 2.0 everywhere. Nobody cares today, really, what it is,
but 2.0 is a good starting point.  I also propose exporting
loader.freebsd_version (being the __FreeBSD_version of the build environment
(usually the sources used to build it except).

We also compile these version into a vers.lua ala vers.c.

We enhance loader.lua to warn if freebsd_version mismatches with the loader.
The warning will be "This is old, smelly code, update to new shiny code ASAP,
but maybe this will work out for you, good luck with that" or similar, perhaps
more word smithed:

loader.efi is $loader_freebsd_v than the system you are booting $lua_freebsd_v
This may or may not work, please upgrade your ESP.

Also, if loader major rev rev != loader rev, and we can read the new root
filesystem, and it's EFI and we find a /boot/loader.efi on the new root
filesystem, chain load that if the root filesystem != the image location we got
the loader.efi from. Proclaim even louder that an upgrade is needed :). But
this will get people over the hump if they have really really old loader with
shiny new lua scripts. Still working out some of the technical details on this
one.

Also, all 'backwards compat' workarounds should explicitly whine when they are
used so people know they have stale loader(s) afoot.

For (2) we need to put it in the loader.efi man page, which is it's how horror
show right now.

We likely also need a (3) script to update boot blocks no matter where they
are, since we've grown at least 4 supported environments that are various forms
of popular (x86 BIOS MBR, x86 BIOS GPT, EFI and UBOOT+EFI) that we should
cover. We should also strongly encourage people to move to a more standard
layout and also look to adding this to installworld (perhaps optionally at
first).

(2) and (3) are needed to solve the ZFS problem (which we can't just chain-boot
away, though other counter measures are needed).

[1] https://www.dictionary.com/e/slang/janky/

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to