Date: Sun, 17 Dec 2017 11:17:52 +1100 From: Richard Perini <rpp@ci.com.au> To: "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org> Subject: Re: loader.efi architecture for replacing boot1.efi Message-ID: <20171217001752.GA98200@jodi.ci.com.au> In-Reply-To: <CANCZdfqYXcJVTmb2OmRyzZau9NNb519mXY2Gi0JP%2BOAue4ZtBw@mail.gmail.com> References: <1fa7edde-6ac0-1d4f-e75a-503b23a5d4dc@metricspace.net> <CANCZdfpJm9MjxvO4dPy7qZ4jjot44yAMj7NhaY_MQ5z7WVbd9A@mail.gmail.com> <46af04dd-8f74-b9dc-3d3a-343f022129ed@metricspace.net> <CANCZdfrpi3JTDxo17RBiLdZ=UjdPF3FgpqwmBepZ=8k5-P0F2g@mail.gmail.com> <CANCZdfr0=WzVkUb85o2aUT3eA7EAAx4MCnQy6gk8XdeJvb9tsA@mail.gmail.com> <ef64c1b9-024d-dce9-d620-c47ab7921fd6@metricspace.net> <CANCZdfo3Q_z1%2BO=VqUNcvPnyL%2BMFDnzzv5GWKbPdu8O-ZsQPyQ@mail.gmail.com> <23c05735-4046-a41f-676c-877d9f07d5f8@metricspace.net> <CANCZdfqYXcJVTmb2OmRyzZau9NNb519mXY2Gi0JP%2BOAue4ZtBw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Dec 16, 2017 at 10:07:37AM -0700, Warner Losh wrote: > On Sat, Dec 16, 2017 at 8:31 AM, Eric McCorkle <eric@metricspace.net> wrote: > > > On 12/16/2017 00:49, Warner Losh wrote: > > > > > CD/DVD booing won't break. We'll still load a kernel from them. No > > > boot.config needed for this case (though it might be for others). > > > > How is that possibly going to work for a liveDVD on a random system? > > People expect it to "just work" (meaning, it correctly guesses the > > kernel, then loads it). > > > > I can see it working with boot.config (which I'd be fine with), but if > > we don't search the CD drives, there's no way it can work. > > > And it will. It booted off the CD device, and will search the CD device > (and only the CD device) for the kernel. It will find it there. How could > that not work? > > > > > > > But for now, loader.efi has got to work whether installed > > > in a boot1/loader (legacy) configuration, or installed directly to > > the > > > ESP. Otherwise, there's going to be a lot of unhappy people out > > there. > > > > > > Correct. My proposed behavior will do just that, and if we get it wrong > > > by default (a) you can be explicit with boot variables or (b) you can > > > type something into the OK prompt, which you didn't have before. > > > > No, I'm talking about people with existing installations, which still > > have both boot1 and loader.efi. A change this big needs to be phased in > > over time, which means both modes of operation need to be supported for > > a while. > > > Unless they have a totally whacked out system, the proposed thing that I'm > suggesting will just work for them. > > If they are booting with multiple disks where /boot/loader comes from a > different disk than the boot disk, they will have to do something to > configure it. The number of such people is likely zero given how fragile > this setup is (it breaks when you plug in a thumb drive with a release on > it, for example). > > > As for the fallback search, it's just that: a fallback mechanism. Its > > > job is to make a sane guess as to where to find the system, but > > > ultimately it's not doing anything the user can't do themselves. > > And it > > > will only run if the EFI vars aren't set anyway, so it can't possibly > > > interfere with any of that. > > > > > > > > > And the fallback mechanism of typing what you want is wrong because? > > > > Because every single person out there with an install is going to > > suddenly have to type, and that's going to lead to a whole bunch of > > people saying we broke loader. > > > I maintain no such people will have to do that. The UEFI BIOS is required > to set BootCurrent and BootXXXX. However, even in the absence of this, > we'll look for a ZFS pool (and disks) or UFS partition on the same disk. > This should generally work by default. > > > > > But it's job isn't to guess. If we don't know for sure what to boot, it's > > > our job to fail so the next OS in the list gets a shot at booting. > > > > That won't happen though. If loader fails to find an installed system, > > it drops out to a prompt, but it doesn't exit. Given that, it makes > > sense to make an effort at finding an installed system. > > > > No. It doesn't. You're assuming that if we fail, the system won't boot. > That's false. If we fail to boot device X, it's our job to fail so that if > there's a Y or a Z it can be next. We have no knowledge of whether the user > would prefer Y or Z as the next one to try, but the boot manager that runs > inside every single UEFI firmware does and it will go to the next one. Y > might be a recovery disk or copy of a freebsd memory stick release and Z > might be a redundant copy of X to use in cases where X fails. Or vice > versa. Do we want to boot to the installer? Not as a first choice, but > maybe as a last resort. But we should let UEFI orchestrate the retries. > Trying to second guess is fundamentally wrong, especially in UEFI where the > boot order and boot recovery stuff is so extensively and particularly > defined. Having fought the "oh, I'm going to guess" code in boot1.efi for > over a year and after having it consistently pick the wrong thing to boot > on some tiny fraction of the hundreds of systems I've had deployed give me > strong empirical data that shows the guessing too hard bit is actually > actively harmful. I've thought about this a lot. I've thought through all > the supported scenarios. I've written up documents and solicited feedback. > Nobody to date has said "oh no! I really want the random installed system > roulette! I love it! Don't kill it." > > Warner > _______________________________________________ > freebsd-arch@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-arch > To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" To add support to Warner, as an administrator of 50+ FreeBSD systems on a variety of hardware and disk configs, I totally support Warner's arguments. Having the loader trying to guess in the case of unusual setups when it can't find a kernel __on the same device as the loader__ causes grief. If you want to have your thing boot that way, then configure it to do so, or present a menu of boot options. -- Richard Perini Ramico Australia Pty Ltd Sydney, Australia rpp@ci.com.au +61 2 9552 5500 ----------------------------------------------------------------------------- "The difference between theory and practice is that in theory there is no difference, but in practice there is"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171217001752.GA98200>