On Fri, 11 Jun 2021 18:24:43 -0400 Felix Miata <mrma...@earthlink.net> wrote:
> Joe composed on 2021-06-11 20:14 (UTC+0100): > > > I have a netbook which booted fine into grub on stretch, > > but an upgrade to buster killed that, and to boot into buster I > > have to use a rescue medium and use efibootmgr to set NextBoot to > > the right entry. Nobody here seems able to help, and I gave Google > > a good kicking to no avail. > > Almost certainly the culprits live within /etc/default/grub/, this > line: GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` > likely coupled with this line: > GRUB_DISABLE_OS_PROBER=true > > The presence of the second line cements the problem with the first, > which is that the result of any Debian installation creates > /EFI/debian on the ESP filesystem. This is fine when there is no > other installed operating system. The second prevents the > presentation of another operating system to boot from in Grub's boot > menu. The first causes replacement of the original /EFI/debian, which > in effect makes the Stretch installation invisible at boot time > except via a rescue boot, or to a user knowledgeable in use of the > Grub shell. > > The solution most obvious to me is to make the content of > GRUB_DISTRIBUTOR= a unique string, such as stretch or debian9 or > buster or debian10, followed by running grub-mkconfig, and verifying > that the UEFI BIOS contains these unique entries for each Debian > installation. > > Whether or not to set GRUB_DISABLE_OS_PROBER= false or true depends > on personal preference. If true, the Grub menu selected by the last > Grub-updated installation will exclude all other OS installations. To > boot any other OS then requires the services of the UEFI BIOS to > select booting any other, or booting rescue media. When instead false > is configured (in both/all), either's/any's Grub menu can be used to > boot another. > > A much less obvious solution is to utilize the services of > /etc/grub.d/ to present a custom grub menu configured by a system > administrator knowledgeable in manual construction of a Grub menu. Things aren't getting that far. If I turn on the computer, it shows me its logo and then a brief flash of text at the top of the page. It waits ten seconds or so, then repeats, and does this indefinitely. The brief text says that it can't find a Debian file, and I later discovered that every cycle of this process adds another Debian entry to the EFI boot table. At the top of this table, and the BIOS recreates it if I change it, is the hard drive, with a Windows entry lower. I've been through all the copying, moving and renaming of things in /efi suggested by Google, and none of it helps. The fact remains that adding stretch to a Win10 installation worked fine, and upgrading to buster stopped it booting at all without manual intervention. I later did a clean reinstall of buster, and it didn't help. Before the text flash appears, I can hit the F12 key and select the Windows Boot Manager, or stick in a rescue USB and select that. This BIOS boot manager never shows me a Debian entry, though the EFI boot table always has at least one. It doesn't help that the BIOS is broken, that it does not honour the EFI DefaultBoot, and always rewrites entry 0000 if I change it. Fortunately, it does honour NextBoot, or I'd never be able to get it booted into buster. But it worked with stretch. I could try installing stretch again and take a disc image, but it's a fair bit of work when I have no guarantee that whatever is missing will get replaced, and I do have a workaround which works. -- Joe