Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Aug 2022 12:04:46 +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:  <CAFDf7UJWgZFLyWok8POWiNCCfDtrwJnA_WqZiaMN=qem4W4Xgw@mail.gmail.com>
In-Reply-To: <CAFDf7UJ4y1Vsq5TSm8FxozndoF5sRy4Yzth5BfAELx0vmE43HA@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> <CAFDf7UJ4y1Vsq5TSm8FxozndoF5sRy4Yzth5BfAELx0vmE43HA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000bb0aa305e681f311
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Forgot to send a screenshot
<https://people.freebsd.org/~eduardo/logs/boot%4020220817.JPG>; for
loader.efi @ main-n257458-ef8b872301c5
( +Boot0007* FreeBSD-14
HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\freeb=
sd\loader.efi)
                         nvd0p1:/efi/freebsd/loader.efi
/boot/efi//efi/freebsd/loader.efi )

Someone talked about this warnings earlier:
---
Attempted extraction of recovery data from stadard superblock: failed
Attempt to find boot zone recovery data: failed
(...)
---
But it boots ok.

Cheers,

Nuno Teixeira <eduardo@freebsd.org> escreveu no dia quarta, 17/08/2022 =C3=
=A0(s)
19:18:

> *** and "EFI Hard Drive"(legacy <ESP>/efi/boot/bootx64.efi) from BIOS.
>                                                                    ^^^^
>
> Nuno Teixeira <eduardo@freebsd.org> escreveu no dia quarta, 17/08/2022
> =C3=A0(s) 19:14:
>
>> Hi,
>>
>> And it's done:
>> ---
>>  Boot0007* FreeBSD-14
>> HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\fr=
eebsd\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\fr=
eebsd\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\M=
icrosoft\Boot\bootmgfw.efi)
>>                                    da1p1:/EFI/Microsoft/Boot/bootmgfw.ef=
i
>> (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=C3=A7a, 16/08/2022 =C3=
=A0(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>/=E2=80=A6
>>>>>
>>>>> And to use this suggestion, it means the UEFI Boot Manager needs to b=
e
>>>>> configured (see efibootmgr(8)).
>>>>>
>>>>> Therefore, once you have set up OS specific setup, there is no use fo=
r
>>>>> default (<ESP>/efi/boot/=E2=80=A6) and you need to update one or anot=
her, 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 bac=
kup
>>>> 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 th=
e
>>> ESP on 'installworld'.
>>>
>>> Warner
>>>
>>
>>
>> --
>> Nuno Teixeira
>> FreeBSD Committer (ports)
>>
>
>
> --
> Nuno Teixeira
> FreeBSD Committer (ports)
>


--=20
Nuno Teixeira
FreeBSD Committer (ports)

--000000000000bb0aa305e681f311
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Forgot to send a <a href=3D"https://people.freebsd.or=
g/~eduardo/logs/boot%4020220817.JPG">screenshot</a> for loader.efi @ main-n=
257458-ef8b872301c5</div><div>( +Boot0007* FreeBSD-14 HD(1,GPT,73acd1b2-de4=
1-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi\freebsd\loader.efi)<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0nvd0p1:/efi/freebsd/loader.efi /boot/efi//efi/freebsd/loader.e=
fi )</div><div><br></div><div>Someone talked about this warnings earlier:</=
div><div>---</div><div>Attempted extraction of recovery data from stadard s=
uperblock: failed</div><div>Attempt to find boot zone recovery data: failed=
</div><div>(...)</div><div>---</div><div>But it boots ok.<br><br></div><div=
>Cheers,<br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" cla=
ss=3D"gmail_attr">Nuno Teixeira &lt;<a href=3D"mailto:eduardo@freebsd.org">=
eduardo@freebsd.org</a>&gt; escreveu no dia quarta, 17/08/2022 =C3=A0(s) 19=
:18:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D=
"ltr"><div>*** and &quot;EFI Hard Drive&quot;(legacy &lt;ESP&gt;/efi/boot/b=
ootx64.efi) from BIOS.</div><div>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^^^^<br></div></div>=
<br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Nuno T=
eixeira &lt;<a href=3D"mailto:eduardo@freebsd.org" target=3D"_blank">eduard=
o@freebsd.org</a>&gt; escreveu no dia quarta, 17/08/2022 =C3=A0(s) 19:14:<b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">=
<div>Hi,</div><div><br></div><div>And it&#39;s done:</div><div>---</div><di=
v>=C2=A0Boot0007* FreeBSD-14 HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,=
0x28,0x82000)/File(\efi\freebsd\loader.efi)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nvd0p1:/efi/f=
reebsd/loader.efi /boot/efi//efi/freebsd/loader.efi<br>+Boot0006* FreeBSD-1=
4_old HD(1,GPT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)/File(\efi=
\freebsd\loader-old.efi)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nvd0p1:/efi/free=
bsd/loader-old.efi /boot/efi//efi/freebsd/loader-old.efi<br>=C2=A0Boot0004*=
 Windows Boot Manager HD(1,GPT,8c497825-1db2-41f8-8924-85dfd0bb7283,0x800,0=
x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0da1p1:/EFI/Microsoft/Boot/bootmgfw.efi (null)<br=
>=C2=A0Boot0000* EFI Hard Drive (SAMSUNG MZVLB1T0HBLR-000L2) PciRoot(0x0)/P=
ci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,39-f9-b8-01-81-38-25-00)/HD(1,GPT,73acd1=
b2-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), &quo=
t;FreeBSD-14_old&quot;(&lt;ESP&gt;/efi/freebsd/loader-old.efi) and &quot;EF=
I 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>efi=
bootmgr -a -c -l /boot/efi/EFI/freebsd/loader.efi -L FreeBSD-11</div><div>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 ^^^<br></div><div>---</div><div>But I choosed &quot;e=
fi&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=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">Warner Losh &lt;<a href=3D"mailto:imp@bsdimp.com" target=3D=
"_blank">imp@bsdimp.com</a>&gt; escreveu no dia ter=C3=A7a, 16/08/2022 =C3=
=A0(s) 18:19:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><d=
iv dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote"><d=
iv dir=3D"ltr" class=3D"gmail_attr">On Tue, Aug 16, 2022 at 6:01 AM Nuno Te=
ixeira &lt;<a href=3D"mailto:eduardo@freebsd.org" target=3D"_blank">eduardo=
@freebsd.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>Hi Toomas,</di=
v><div><br></div><blockquote class=3D"gmail_quote" style=3D"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;/=E2=80=A6<br>
<br>
And to use this suggestion, it means the UEFI Boot Manager needs to be conf=
igured (see efibootmgr(8)).<br>
<br>
Therefore, once you have set up OS specific setup, there is no use for defa=
ult (&lt;ESP&gt;/efi/boot/=E2=80=A6) and you need to update one or another,=
 but not both.<br></blockquote></div><div><br></div><div>FreeBSD have &lt;E=
SP&gt;/efi/freebsd/... but it&#39;s not configured in efibootmgr:</div></di=
v></blockquote><div><br></div><div>The current default installer will do th=
is, 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>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>efibootmgr -v:</d=
iv><div>---</div><div>BootOrder =C2=A0: 0004, 0000, 2002, 2003, 2001</div><=
div>Boot0004* Windows Boot Manager HD(1,GPT,8c497825-1db2-41f8-8924-85dfd0b=
b7283,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0da0p1:/EFI/Microsoft/Boot/bootmgfw=
.efi (null)<br>+Boot0000* EFI Hard Drive (SAMSUNG MZVLB1T0HBLR-000L2) PciRo=
ot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,39-f9-b8-01-81-38-25-00)/HD(1,G=
PT,73acd1b2-de41-11eb-8156-002b67dfc673,0x28,0x82000)</div><div>=C2=A0Boot2=
002* EFI DVD/CDROM<br>=C2=A0Boot2003* EFI Network<br>=C2=A0Boot2001* EFI US=
B Device</div><div>---</div><div>so boot is definitely using &lt;ESP&gt;/ef=
i/boot/bootx64.efi <a class=3D"gmail_plusreply" id=3D"gmail-m_6411503456252=
177521gmail-m_-4717319298197336615gmail-m_-3862296962526431016gmail-m_24087=
50265426939096plusReplyChip-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>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"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 crea=
te other for loader.efi.old in case of problems.</div></div></blockquote><d=
iv><br></div><div>Yes.</div><div>=C2=A0</div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex"><div dir=3D"ltr"><div>In this case I will need only upd=
ate &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=C2=A0</d=
iv></div></div>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr"><div dir=
=3D"ltr"><span style=3D"color:rgb(102,102,102)">Nuno Teixeira<br>FreeBSD Co=
mmitter (ports)</span></div></div>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr"><div dir=
=3D"ltr"><span style=3D"color:rgb(102,102,102)">Nuno Teixeira<br>FreeBSD Co=
mmitter (ports)</span></div></div>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr" class=3D"g=
mail_signature"><div dir=3D"ltr"><span style=3D"color:rgb(102,102,102)">Nun=
o Teixeira<br>FreeBSD Committer (ports)</span></div></div>

--000000000000bb0aa305e681f311--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFDf7UJWgZFLyWok8POWiNCCfDtrwJnA_WqZiaMN=qem4W4Xgw>