30.03.2025 18:47, Mark Kettenis пишет:
>> Date: Sat, 29 Mar 2025 16:26:16 +0000
>> From: Klemens Nanni <[email protected]>
>>
>> 29.03.2025 18:51, Mark Kettenis пишет:
>>>> From: "Theo de Raadt" <[email protected]>
>>>> Date: Sat, 29 Mar 2025 09:35:34 -0600
>>>>
>>>> Stuart Henderson <[email protected]> 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.