Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Dec 2017 15:37:30 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Mark Millard <markmi@dsl-only.net>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: UEFI booting survey
Message-ID:  <CANCZdfo5=5vKZ2cY8k7K3L%2BbfEPQREr9yB=EsVPiMkAStCq_SA@mail.gmail.com>
In-Reply-To: <60C20606-853E-43AE-9F90-44C65026A098@dsl-only.net>
References:  <60C20606-853E-43AE-9F90-44C65026A098@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 18, 2017 at 3:12 PM, Mark Millard <markmi@dsl-only.net> wrote:

> Warner Losh imp at bsdimp.com wrote on
> Mon Dec 18 20:29:45 UTC 2017 :
>
> > The specific thing we will stop doing is that in the absence of
> > instructions to the contrary, we will no longer search for root on a
> device
> > other than the one the loader.efi came from.
>
> Warner Losh imp at bsdimp.com wrote on
> Sun Dec 17 19:52:07 UTC 2017 :
>
> > In the coming months, we're looking at dropping boot1.efi and instead
> > installing /boot/loader.efi onto the ESP (most likely as
> > \efi\freebsd\loader.efi).
>
>
> Combining the two statements would appear to have consequences
> not obvious from the separate statements in isolation. Rewording
> the first to substitute where loader.efi comes from based on
> the second (if I interpret right):
>
> MISQUOTE
> The specific thing we will stop doing is that in the absence of
> instructions to the contrary, we will no longer search for root
> on other than the device for the ESP used (which will hold
> loader.efi).
> END MISQUOTE
>

The specific thing we will stop doing is that in the absence of
instructions to the contrary, we will no longer search for root on other
than the device for the ESP used (which will hold now loader.efi as
boot1.efi will shortly be eliminated).

Or the following pseudo-code with all the weird special cases removed for
clarity

load loader.efi from ESP
if BootXXXX uefi variable holds a second path, use that for root/kernel
otherwise if an override variable holds a kernel/root path, use that
otherwise scan for a usable ZFS pool, use that if it exists
otherwise use the same partition loader.efi was booted from for root/kernel
if it's usable
otherwise use the first UFS partition on the ESP that's usable.

A partition is usable if /boot/loader.rc exists on that path.

What is being deleted is one final step: "otherwise use the first UFS
partition on any drive in a random order that's usable." which used to be
at the end of the boot1.efi psuedo code. It's my belief that no such
installations actually use this due to the random factor today (plug in a
new USB drive and it might take over). If my belief is wrong, it's my
belief that efibootmgr will solve it, and failing that, the fallback
mechanism (for platforms that use u-boot + EFI where UEFI variables don't
work) will allow the two or three people that are doing this today.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfo5=5vKZ2cY8k7K3L%2BbfEPQREr9yB=EsVPiMkAStCq_SA>