Date: Wed, 17 Aug 2022 19:18:01 +0100 From: Nuno Teixeira <eduardo@freebsd.org> To: Warner Losh <imp@bsdimp.com> Cc: Toomas Soome <tsoome@me.com>, FreeBSD CURRENT <freebsd-current@freebsd.org> Subject: Re: 24.3. Updating Bootcode Message-ID: <CAFDf7UJ4y1Vsq5TSm8FxozndoF5sRy4Yzth5BfAELx0vmE43HA@mail.gmail.com> In-Reply-To: <CAFDf7U%2Bb1FF2u_DJtXZmA4bdGgjS02ZFnovS7uwB6aP6T12ReA@mail.gmail.com> References: <CAFDf7UJv9QCuD27XDs2ihLiN21Rn6PeZjbJtWVOAAfHb8HHnHw@mail.gmail.com> <62B26DE1-0E26-40BA-8647-E591E9ACEB7A@me.com> <CAFDf7UJrnL0RrPyto07-THmhPSBF%2BpbgqMmj%2BMmjUZpDotvjXQ@mail.gmail.com> <CANCZdfrUGxxXUrXPZ%2B9jHufQQaJdRQa2nVWviKOJzX%2B2mzJAvg@mail.gmail.com> <CAFDf7U%2Bb1FF2u_DJtXZmA4bdGgjS02ZFnovS7uwB6aP6T12ReA@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
*** and "EFI Hard Drive"(legacy <ESP>/efi/boot/bootx64.efi) from BIOS.
^^^^
Nuno Teixeira <eduardo@freebsd.org> escreveu no dia quarta, 17/08/2022 à(s)
19:14:
> Hi,
>
> And it's done:
> ---
> Boot0007* FreeBSD-14
> HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\freebsd\loader.efi)
> nvd0p1:/efi/freebsd/loader.efi
> /boot/efi//efi/freebsd/loader.efi
> +Boot0006* FreeBSD-14_old
> HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\freebsd\loader-old.efi)
> nvd0p1:/efi/freebsd/loader-old.efi
> /boot/efi//efi/freebsd/loader-old.efi
> Boot0004* Windows Boot Manager
> HD(1,GPT,8c497825-1db2-41f8-8924-85dfd0bb7283,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
> da1p1:/EFI/Microsoft/Boot/bootmgfw.efi
> (null)
> Boot0000* EFI Hard Drive (SAMSUNG MZVLB1T0HBLR-000L2)
> PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,39-f9-b8-01-81-38-25-00)/HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)
> ---
> and I can choose "FreeBSD-14"(<ESP>/efi/freebsd/loader.efi),
> "FreeBSD-14_old"(<ESP>/efi/freebsd/loader-old.efi) and "EFI Hard
> Drive"(legacy <ESP>/efi/bootx64.efi) from BIOS.
>
> NOTE: efibootmgr(8) example is:
> ---
> efibootmgr -a -c -l /boot/efi/EFI/freebsd/loader.efi -L FreeBSD-11
> ^^^
> ---
> But I choosed "efi" instead of "EFI"...
>
> Thanks all for helping me understand it!
>
> Cheers,
>
>
> Warner Losh <imp@bsdimp.com> escreveu no dia terça, 16/08/2022 à(s) 18:19:
>
>>
>>
>> On Tue, Aug 16, 2022 at 6:01 AM Nuno Teixeira <eduardo@freebsd.org>
>> wrote:
>>
>>> Hi Toomas,
>>>
>>> For better OS support, the UEFI specification (UEFI 2.8A Feb 14, page
>>>> 499) is suggesting to use structure like:
>>>>
>>>> <ESP>/efi/<OS>/…
>>>>
>>>> And to use this suggestion, it means the UEFI Boot Manager needs to be
>>>> configured (see efibootmgr(8)).
>>>>
>>>> Therefore, once you have set up OS specific setup, there is no use for
>>>> default (<ESP>/efi/boot/…) and you need to update one or another, but not
>>>> both.
>>>>
>>>
>>> FreeBSD have <ESP>/efi/freebsd/... but it's not configured in efibootmgr:
>>>
>>
>> The current default installer will do this, but older upgraded systems
>> don't do this by default. Likely you are looking at an older
>> system and/or one of the 'bad actors' that reset this stuff between boots.
>>
>>
>>> efibootmgr -v:
>>> ---
>>> BootOrder : 0004, 0000, 2002, 2003, 2001
>>> Boot0004* Windows Boot Manager
>>> HD(1,GPT,8c497825-1db2-41f8-8924-85dfd0bb7283,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
>>>
>>> da0p1:/EFI/Microsoft/Boot/bootmgfw.efi (null)
>>> +Boot0000* EFI Hard Drive (SAMSUNG MZVLB1T0HBLR-000L2)
>>> PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,39-f9-b8-01-81-38-25-00)/HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)
>>> Boot2002* EFI DVD/CDROM
>>> Boot2003* EFI Network
>>> Boot2001* EFI USB Device
>>> ---
>>> so boot is definitely using <ESP>/efi/boot/bootx64.efi @Boot0000
>>>
>>
>> In your case, that's true. The "EFI Hard Drive" is a default entry the
>> UEFI BIOS created for you.
>>
>>
>>> I think I can create a new boot:
>>> ---
>>> efibootmgr -a -c -l /boot/efi/efi/freebsd/loader.efi -L FreeBSD-14
>>> (and make it active)
>>> efibootmgr -a -b NNNN
>>> ---
>>> and create other for loader.efi.old in case of problems.
>>>
>>
>> Yes.
>>
>>
>>> In this case I will need only update <ESP>/efi/freebsd/loader.efi.
>>>
>>> Q: for what has been said in mailing, boot is compiled in
>>> /usr/src/stand, isn't a good idea that when it install new boot it backup
>>> old boot like /boot/kernel -> /boot/kernel.old?
>>>
>>
>> Yes. In fact that's what's done, but only for the BIOS version. We should
>> do the same for efi but don't seem to do so currently. But that's likely
>> tied up behind issues of installing things automatically into the ESP on
>> 'installworld'.
>>
>> Warner
>>
>
>
> --
> Nuno Teixeira
> FreeBSD Committer (ports)
>
--
Nuno Teixeira
FreeBSD Committer (ports)
[-- Attachment #2 --]
<div dir="ltr"><div>*** and "EFI Hard Drive"(legacy <ESP>/efi/boot/bootx64.efi) from BIOS.</div><div> ^^^^<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Nuno Teixeira <<a href="mailto:eduardo@freebsd.org">eduardo@freebsd.org</a>> escreveu no dia quarta, 17/08/2022 à(s) 19:14:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div>And it's done:</div><div>---</div><div> Boot0007* FreeBSD-14 HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\freebsd\loader.efi)<br> nvd0p1:/efi/freebsd/loader.efi /boot/efi//efi/freebsd/loader.efi<br>+Boot0006* FreeBSD-14_old HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\freebsd\loader-old.efi)<br> nvd0p1:/efi/freebsd/loader-old.efi /boot/efi//efi/freebsd/loader-old.efi<br> Boot0004* Windows Boot Manager HD(1,GPT,8c497825-1db2-41f8-8924-85dfd0bb7283,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)<br> da1p1:/EFI/Microsoft/Boot/bootmgfw.efi (null)<br> Boot0000* EFI Hard Drive (SAMSUNG MZVLB1T0HBLR-000L2) PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,39-f9-b8-01-81-38-25-00)/HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)</div><div>---</div><div>and I can choose "FreeBSD-14"(<ESP>/efi/freebsd/loader.efi), "FreeBSD-14_old"(<ESP>/efi/freebsd/loader-old.efi) and "EFI Hard Drive"(legacy <ESP>/efi/bootx64.efi) from BIOS.</div><div><br></div><div>NOTE: efibootmgr(8) example is:</div><div>---</div><div>efibootmgr -a -c -l /boot/efi/EFI/freebsd/loader.efi -L FreeBSD-11</div><div> ^^^<br></div><div>---</div><div>But I choosed "efi" instead of "EFI"...<br></div><div><br></div><div>Thanks all for helping me understand it!</div><div><br></div><div>Cheers,<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Warner Losh <<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a>> escreveu no dia terça, 16/08/2022 à(s) 18:19:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 16, 2022 at 6:01 AM Nuno Teixeira <<a href="mailto:eduardo@freebsd.org" target="_blank">eduardo@freebsd.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>Hi Toomas,</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
For better OS support, the UEFI specification (UEFI 2.8A Feb 14, page 499) is suggesting to use structure like:<br>
<br>
<ESP>/efi/<OS>/…<br>
<br>
And to use this suggestion, it means the UEFI Boot Manager needs to be configured (see efibootmgr(8)).<br>
<br>
Therefore, once you have set up OS specific setup, there is no use for default (<ESP>/efi/boot/…) and you need to update one or another, but not both.<br></blockquote></div><div><br></div><div>FreeBSD have <ESP>/efi/freebsd/... but it's not configured in efibootmgr:</div></div></blockquote><div><br></div><div>The current default installer will do this, but older upgraded systems don't do this by default. Likely you are looking at an older</div><div>system and/or one of the 'bad actors' that reset this stuff between boots.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>efibootmgr -v:</div><div>---</div><div>BootOrder : 0004, 0000, 2002, 2003, 2001</div><div>Boot0004* Windows Boot Manager HD(1,GPT,8c497825-1db2-41f8-8924-85dfd0bb7283,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)<br> da0p1:/EFI/Microsoft/Boot/bootmgfw.efi (null)<br>+Boot0000* EFI Hard Drive (SAMSUNG MZVLB1T0HBLR-000L2) PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,39-f9-b8-01-81-38-25-00)/HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)</div><div> Boot2002* EFI DVD/CDROM<br> Boot2003* EFI Network<br> Boot2001* EFI USB Device</div><div>---</div><div>so boot is definitely using <ESP>/efi/boot/bootx64.efi <a class="gmail_plusreply" id="gmail-m_-4717319298197336615gmail-m_-3862296962526431016gmail-m_2408750265426939096plusReplyChip-0">@Boot0000</a></div></div></blockquote><div><br></div><div>In your case, that's true. The "EFI Hard Drive" is a default entry the UEFI BIOS created for you.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>I think I can create a new boot:</div><div>---</div><div>efibootmgr -a -c -l /boot/efi/efi/freebsd/loader.efi -L FreeBSD-14</div><div>(and make it active)</div><div>efibootmgr -a -b NNNN</div><div>---</div><div>and create other for loader.efi.old in case of problems.</div></div></blockquote><div><br></div><div>Yes.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>In this case I will need only update <ESP>/efi/freebsd/loader.efi.<br></div><div><br></div><div>Q: for what has been said in mailing, boot is compiled in /usr/src/stand, isn't a good idea that when it install new boot it backup old boot like /boot/kernel -> /boot/kernel.old?</div></div></blockquote><div><br></div><div>Yes. In fact that's what's done, but only for the BIOS version. We should do the same for efi but don't seem to do so currently. But that's likely tied up behind issues of installing things automatically into the ESP on 'installworld'.</div><div><br></div><div>Warner </div></div></div>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr"><div dir="ltr"><span style="color:rgb(102,102,102)">Nuno Teixeira<br>FreeBSD Committer (ports)</span></div></div>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="color:rgb(102,102,102)">Nuno Teixeira<br>FreeBSD Committer (ports)</span></div></div>
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFDf7UJ4y1Vsq5TSm8FxozndoF5sRy4Yzth5BfAELx0vmE43HA>
