30.03.2025 18:47, Mark Kettenis пишет: >> Date: Sat, 29 Mar 2025 16:26:16 +0000 >> From: Klemens Nanni <k...@openbsd.org> >> >> 29.03.2025 18:51, Mark Kettenis пишет: >>>> From: "Theo de Raadt" <dera...@openbsd.org> >>>> Date: Sat, 29 Mar 2025 09:35:34 -0600 >>>> >>>> Stuart Henderson <s...@spacehopper.org> wrote: >>>> >>>>> On 2025/03/29 14:30, Klemens Nanni wrote: >>>>>> 23.03.2025 19:30, Sven Wolf пишет: >>>>>>> since some weeks, after I run 'sysupgrade -n -s -k' and installed the >>>>>>> current snapshot, the boot order in UEFI gets changed. >>>>>> >>>>>> This is intended, OpenBSD attempts to ensure that it is booted by >>>>>> default. >>>>>> >>>>>>> I there a way to disable this behavior? >>>>>> >>>>>> No. >>>>> >>>>> Probably makes sense for install but this seems a pretty bad idea after an >>>>> update. >>>> >>>> Yeah, that's possibly the right conclusion. A conditional in the >>>> script might be required. >>> >>> The solution I had in mind was to do the following: >>> >>> * If the OpenBSD Boot#### boot option doesn't exist, create it and >>> prepend it to the BootOrder list. >>> >>> * If the OpenBSD Boot#### boot option exists, do nothing (and leave >>> BootOrder alone). >> >> That would default to OpenBSD once and then leave it alone for users >> to reorder, which seems like a better approach for both sides. > > Diff below implements that approach.
OK kn > >>> If we do this, we may want to set the BootNext variable such that a >>> reboot boots OpenBSD and finishes the install. >> >> On install OpenBSD's Boot#### is not expected to be there, but if it is, this >> would ensure we follow through without messing with existing order. > > Right. So if you end up uninstalling OpenBSD and reinstall it later, > it might not boot into OpenBSD by default. > >> Upgrades should do this either way... any reason not to always set BootNext? > > Not sure what you're trying to say here. The only reason I see for > not setting BootNext is when someone runs installboot -c manually and > doesn't immediately reboot. Then booting into OpenBSD might come as a > surprise when the system gets rebooted eventually. I don't think this > would be a huge issue. I was wondering whether there'd be a valid reason not to set BootNext, but until now I haven't found one. What you described is on the user, not us. > > > Index: usr.sbin/installboot/efi_bootmgr.c > =================================================================== > RCS file: /cvs/src/usr.sbin/installboot/efi_bootmgr.c,v > diff -u -p -r1.4 efi_bootmgr.c > --- usr.sbin/installboot/efi_bootmgr.c 4 Mar 2025 20:40:48 -0000 > 1.4 > +++ usr.sbin/installboot/efi_bootmgr.c 30 Mar 2025 15:28:46 -0000 > @@ -297,10 +297,7 @@ write_efi_load_option(EFI_LOAD_OPTION *o > break; > } > } > - if (found) { > - memmove(&data[2], &data[0], i); > - *(uint16_t *)&data[0] = idx; > - } else { > + if (!found) { > /* > * If there are more than 256 load options, simply > * give up.