Skip site navigation (1)Skip section navigation (2)
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 &quot;EFI Hard Drive&quot;(legacy &lt;ESP&gt;/efi/boot/bootx64.efi) from BIOS.</div><div>                                                                   ^^^^<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Nuno Teixeira &lt;<a href="mailto:eduardo@freebsd.org">eduardo@freebsd.org</a>&gt; 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&#39;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 &quot;FreeBSD-14&quot;(&lt;ESP&gt;/efi/freebsd/loader.efi), &quot;FreeBSD-14_old&quot;(&lt;ESP&gt;/efi/freebsd/loader-old.efi) and &quot;EFI Hard Drive&quot;(legacy &lt;ESP&gt;/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 &quot;efi&quot; instead of &quot;EFI&quot;...<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 &lt;<a href="mailto:imp@bsdimp.com" target="_blank">imp@bsdimp.com</a>&gt; 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 &lt;<a href="mailto:eduardo@freebsd.org" target="_blank">eduardo@freebsd.org</a>&gt; 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>
&lt;ESP&gt;/efi/&lt;OS&gt;/…<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 (&lt;ESP&gt;/efi/boot/…) and you need to update one or another, but not both.<br></blockquote></div><div><br></div><div>FreeBSD have &lt;ESP&gt;/efi/freebsd/... but it&#39;s not configured in efibootmgr:</div></div></blockquote><div><br></div><div>The current default installer will do this, but older upgraded systems don&#39;t do this by default. Likely you are looking at an older</div><div>system and/or one of the &#39;bad actors&#39; 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 &lt;ESP&gt;/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&#39;s true. The &quot;EFI Hard Drive&quot; 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 &lt;ESP&gt;/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&#39;t a good idea that when it install new boot it backup old boot like /boot/kernel -&gt; /boot/kernel.old?</div></div></blockquote><div><br></div><div>Yes. In fact that&#39;s what&#39;s done, but only for the BIOS version. We should do the same for efi but don&#39;t seem to do so currently. But that&#39;s likely tied up behind issues of installing things automatically into the ESP on &#39;installworld&#39;.</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>