Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Sep 2024 21:31:21 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
Cc:        Mark Millard <marklmi@yahoo.com>, void <void@f-m.fm>,  Current FreeBSD <freebsd-current@freebsd.org>
Subject:   Re: Loader needs to be updated message
Message-ID:  <CANCZdfqO20t_AW6Z%2Bas6d7Wq_8u4RTs8f_4e9Fio-PU20DPh9w@mail.gmail.com>
In-Reply-To: <20240908121601.2cb0dd605bf1669028c4b4ae@dec.sakura.ne.jp>
References:  <082B95C0-8D03-40E6-A5DD-EA8723FA9AF3.ref@yahoo.com> <082B95C0-8D03-40E6-A5DD-EA8723FA9AF3@yahoo.com> <20240908121601.2cb0dd605bf1669028c4b4ae@dec.sakura.ne.jp>

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

On Sat, Sep 7, 2024, 9:16=E2=80=AFPM Tomoaki AOKI <junchoon@dec.sakura.ne.j=
p> wrote:

> On Sat, 7 Sep 2024 19:38:47 -0700
> Mark Millard <marklmi@yahoo.com> wrote:
>
> > void <void_at_f-m.fm> wrote on
> > Date: Sat, 07 Sep 2024 17:27:00 UTC :
> >
> > > On Sat, Sep 07, 2024 at 08:20:07AM -0700, Mark Millard wrote:
> > >
> > > >I'm more interested in what is there than just what is not
> > > >there. May be show something analogous to:
> > > >
> > > ># gpart list | grep -E '(Name|type|efi|media)'
> > > >1. Name: mmcsd1s1
> > > > efimedia: HD(1,MBR,00000000,0x8000,0x3b68000)
> > > > rawtype: 12
> > > > type: fat32lba
> > > >1. Name: mmcsd1
> > > >1. Name: da0p1
> > > > efimedia: HD(1,GPT,81f199f2-5eb9-11ec-b507-a0cec8d68fdc,0x28,0x8200=
0)
> > > > rawtype: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
> > > > label: BPIM3efi
> > > > type: efi
> > > >2. Name: da0p2
> > > > efimedia:
> HD(2,GPT,efa6f52d-c8ca-11ec-bb1e-03fc0558c84f,0x82800,0x366000)
> > > > rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
> > > > type: freebsd-swap
> > > >3. Name: da0p3
> > > > efimedia:
> HD(3,GPT,71abc138-db5e-11ee-bfe1-e352d1095e3c,0x6861c800,0x732800)
> > > > rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
> > > > type: freebsd-swap
> > > >4. Name: da0p4
> > > > efimedia:
> HD(4,GPT,b568945a-5eba-11ec-b507-a0cec8d68fdc,0xa1c800,0x67c00000)
> > > > rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b
> > > > type: freebsd-ufs
> > > >1. Name: da0
> > > >
> > > >I'll note that on various type of systems, the (effectively)
> > > >ESP need not be specifically of "type: efi", possibly some
> > > >fat variant instead also works. (Of course, EFI need not be
> > > >the only alternative for various type of contexts.)
> > > >
> > > >I'll note the /boot/efi is normally just an empty directory
> > > >that is possibly used as a mount point.
> > > >
> > > >In some (somewhat older) configurations /boot/msdos is
> > > >similarly an empty directory and possibly used as the mount
> > > >point instead.
> > > >
> > > >> After source building to latest stable in the usual way, same erro=
r
> message 'loader needs updating'.
> > >
> > > This is on the guest
> > >
> > > # gpart list | grep -E '(Name|type|efi|media)'
> > > 1. Name: vtbd0p1
> > > efimedia: HD(1,GPT,b7731537-61da-11ed-9652-00a0981073a7,0x28,0x400)
> > > rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
> > > type: freebsd-boot
> >
> > As I understand it, that "type: freebsd-boot" means that one of
> > the likes of:
> >
> > # ls -lodT /boot/gpt*boot*
> > -r--r--r--  1 root wheel uarch  62139 Apr  7 15:55:46 2024 /boot/gptboo=
t
> > -r-xr-xr-x  1 root wheel uarch 109568 Apr  7 15:55:46 2024
> /boot/gptboot.efi
> > -r--r--r--  1 root wheel uarch 176062 Apr  8 01:15:54 2024
> /boot/gptzfsboot
> >
> > is in use inside that freebsd-boot partition (vtbd0p1). But only
> > one of those supports zfs.
> >
> > Fair warning that I never use any of those 3 --nor freebsd-boot
> > partitions. Nor have I ever used Bhyve. Do not blindly believe what I
> > report here. But hopefully it points in a useful direction to
> > initially investigate.
> >
> > Looking at:
> >
> > "man 8 gptboot.efi" indicates that "gptboot.efi works only with UFS
> > root file systems".
> >
> > "man 8 gptboot" indicates that "gptboot is used on BIOS-based
> > computers to boot from a UFS partition on a GPT-partitioned disk".
> >
> > BUT "man 8 gptzfsboot" indicates "gptzfsboot is used on BIOS-based
> > computers to boot from a filesystem in a ZFS pool".
> >
> > So the partitioning is not set up for supporting the combination of:
> > EFI and ZFS-for-root-filesystem: if the gptzfsboot is used then it
> > needs to be old style BIOS-and-ZFS for the context.
> >
> > So my expectation here is that the gptzfsboot content in use in
> > vtbd0p1 (i.e. -i 1 vtbd0 in some commands) is out of date and needs
> > to be updated. To my knowledge, there is no simple technique to look
> > up the vintage present in -i 1 vtbd0 .
> >
> > I have no clue which of the following should be used for your context
> > to be sure that the content ends up up to date:
> >
> > The Protective MBR variant:
> > # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 vtbd0
> >
> > The variant for without the Protective MBR:
> > # gpart bootcode -p /boot/gptzfsboot -i 1 vtbd0
> >
> > Those commands are adjusted variations of what the man page's EXAMPLES
> > section shows, but not using the 2 example's ada0 notation.
> >
> > > 2. Name: vtbd0p2
> > > efimedia:
> HD(2,GPT,b77a2687-61da-11ed-9652-00a0981073a7,0x800,0x2000000)
> > > rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
> > > type: freebsd-swap
> > > 3. Name: vtbd0p3
> > > efimedia:
> HD(3,GPT,b7836ca4-61da-11ed-9652-00a0981073a7,0x2000800,0xdfff000)
> > > rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
> > > type: freebsd-zfs
> > > 1. Name: vtbd0
> >
> >
> > =3D=3D=3D
> > Mark Millard
> > marklmi at yahoo.com
>
> FYI:
> boot1.efi works with ZFS. gptboot.efi is basically the one which
> stripped ZFS-related codes from boot1.efi.
>
> And IIUC, boot1.efi shares most codes with loader.efi (except for its
> own FS module wrapper as a consumer, implemented for UFS and ZFS).
>
> It would be deleted in the future (that is your plan, Warner?),
> but currently still usable.
>

That's the plan. There's a number of advanced features it doesn't support
and it doubles the effort for many things..

However it insulates one from loader.efi changes... which some people use..=
.

Warner

--=20
> Tomoaki AOKI    <junchoon@dec.sakura.ne.jp>
>

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

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Sat, Sep 7, 2024, 9:16=E2=80=AFPM Tomoaki AOKI &lt;=
<a href=3D"mailto:junchoon@dec.sakura.ne.jp">junchoon@dec.sakura.ne.jp</a>&=
gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sat, 7 Sep 2024 19:38=
:47 -0700<br>
Mark Millard &lt;<a href=3D"mailto:marklmi@yahoo.com" target=3D"_blank" rel=
=3D"noreferrer">marklmi@yahoo.com</a>&gt; wrote:<br>
<br>
&gt; void &lt;<a href=3D"http://void_at_f-m.fm" rel=3D"noreferrer noreferre=
r" target=3D"_blank">void_at_f-m.fm</a>&gt; wrote on<br>
&gt; Date: Sat, 07 Sep 2024 17:27:00 UTC :<br>
&gt; <br>
&gt; &gt; On Sat, Sep 07, 2024 at 08:20:07AM -0700, Mark Millard wrote:<br>
&gt; &gt; <br>
&gt; &gt; &gt;I&#39;m more interested in what is there than just what is no=
t<br>
&gt; &gt; &gt;there. May be show something analogous to:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;# gpart list | grep -E &#39;(Name|type|efi|media)&#39;<br>
&gt; &gt; &gt;1. Name: mmcsd1s1<br>
&gt; &gt; &gt; efimedia: HD(1,MBR,00000000,0x8000,0x3b68000)<br>
&gt; &gt; &gt; rawtype: 12<br>
&gt; &gt; &gt; type: fat32lba<br>
&gt; &gt; &gt;1. Name: mmcsd1<br>
&gt; &gt; &gt;1. Name: da0p1<br>
&gt; &gt; &gt; efimedia: HD(1,GPT,81f199f2-5eb9-11ec-b507-a0cec8d68fdc,0x28=
,0x82000)<br>
&gt; &gt; &gt; rawtype: c12a7328-f81f-11d2-ba4b-00a0c93ec93b<br>
&gt; &gt; &gt; label: BPIM3efi<br>
&gt; &gt; &gt; type: efi<br>
&gt; &gt; &gt;2. Name: da0p2<br>
&gt; &gt; &gt; efimedia: HD(2,GPT,efa6f52d-c8ca-11ec-bb1e-03fc0558c84f,0x82=
800,0x366000)<br>
&gt; &gt; &gt; rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b<br>
&gt; &gt; &gt; type: freebsd-swap<br>
&gt; &gt; &gt;3. Name: da0p3<br>
&gt; &gt; &gt; efimedia: HD(3,GPT,71abc138-db5e-11ee-bfe1-e352d1095e3c,0x68=
61c800,0x732800)<br>
&gt; &gt; &gt; rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b<br>
&gt; &gt; &gt; type: freebsd-swap<br>
&gt; &gt; &gt;4. Name: da0p4<br>
&gt; &gt; &gt; efimedia: HD(4,GPT,b568945a-5eba-11ec-b507-a0cec8d68fdc,0xa1=
c800,0x67c00000)<br>
&gt; &gt; &gt; rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b<br>
&gt; &gt; &gt; type: freebsd-ufs<br>
&gt; &gt; &gt;1. Name: da0<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;I&#39;ll note that on various type of systems, the (effective=
ly)<br>
&gt; &gt; &gt;ESP need not be specifically of &quot;type: efi&quot;, possib=
ly some<br>
&gt; &gt; &gt;fat variant instead also works. (Of course, EFI need not be<b=
r>
&gt; &gt; &gt;the only alternative for various type of contexts.)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;I&#39;ll note the /boot/efi is normally just an empty directo=
ry<br>
&gt; &gt; &gt;that is possibly used as a mount point.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;In some (somewhat older) configurations /boot/msdos is<br>
&gt; &gt; &gt;similarly an empty directory and possibly used as the mount<b=
r>
&gt; &gt; &gt;point instead.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;&gt; After source building to latest stable in the usual way,=
 same error message &#39;loader needs updating&#39;.<br>
&gt; &gt; <br>
&gt; &gt; This is on the guest<br>
&gt; &gt; <br>
&gt; &gt; # gpart list | grep -E &#39;(Name|type|efi|media)&#39;<br>
&gt; &gt; 1. Name: vtbd0p1<br>
&gt; &gt; efimedia: HD(1,GPT,b7731537-61da-11ed-9652-00a0981073a7,0x28,0x40=
0)<br>
&gt; &gt; rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f<br>
&gt; &gt; type: freebsd-boot<br>
&gt; <br>
&gt; As I understand it, that &quot;type: freebsd-boot&quot; means that one=
 of<br>
&gt; the likes of:<br>
&gt; <br>
&gt; # ls -lodT /boot/gpt*boot*<br>
&gt; -r--r--r--=C2=A0 1 root wheel uarch=C2=A0 62139 Apr=C2=A0 7 15:55:46 2=
024 /boot/gptboot<br>
&gt; -r-xr-xr-x=C2=A0 1 root wheel uarch 109568 Apr=C2=A0 7 15:55:46 2024 /=
boot/gptboot.efi<br>
&gt; -r--r--r--=C2=A0 1 root wheel uarch 176062 Apr=C2=A0 8 01:15:54 2024 /=
boot/gptzfsboot<br>
&gt; <br>
&gt; is in use inside that freebsd-boot partition (vtbd0p1). But only<br>
&gt; one of those supports zfs.<br>
&gt; <br>
&gt; Fair warning that I never use any of those 3 --nor freebsd-boot<br>
&gt; partitions. Nor have I ever used Bhyve. Do not blindly believe what I<=
br>
&gt; report here. But hopefully it points in a useful direction to<br>
&gt; initially investigate.<br>
&gt; <br>
&gt; Looking at:<br>
&gt; <br>
&gt; &quot;man 8 gptboot.efi&quot; indicates that &quot;gptboot.efi works o=
nly with UFS<br>
&gt; root file systems&quot;.<br>
&gt; <br>
&gt; &quot;man 8 gptboot&quot; indicates that &quot;gptboot is used on BIOS=
-based<br>
&gt; computers to boot from a UFS partition on a GPT-partitioned disk&quot;=
.<br>
&gt; <br>
&gt; BUT &quot;man 8 gptzfsboot&quot; indicates &quot;gptzfsboot is used on=
 BIOS-based<br>
&gt; computers to boot from a filesystem in a ZFS pool&quot;.<br>
&gt; <br>
&gt; So the partitioning is not set up for supporting the combination of:<b=
r>
&gt; EFI and ZFS-for-root-filesystem: if the gptzfsboot is used then it<br>
&gt; needs to be old style BIOS-and-ZFS for the context.<br>
&gt; <br>
&gt; So my expectation here is that the gptzfsboot content in use in<br>
&gt; vtbd0p1 (i.e. -i 1 vtbd0 in some commands) is out of date and needs<br=
>
&gt; to be updated. To my knowledge, there is no simple technique to look<b=
r>
&gt; up the vintage present in -i 1 vtbd0 .<br>
&gt; <br>
&gt; I have no clue which of the following should be used for your context<=
br>
&gt; to be sure that the content ends up up to date:<br>
&gt; <br>
&gt; The Protective MBR variant:<br>
&gt; # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 vtbd0<br>
&gt; <br>
&gt; The variant for without the Protective MBR:<br>
&gt; # gpart bootcode -p /boot/gptzfsboot -i 1 vtbd0<br>
&gt; <br>
&gt; Those commands are adjusted variations of what the man page&#39;s EXAM=
PLES<br>
&gt; section shows, but not using the 2 example&#39;s ada0 notation.<br>
&gt; <br>
&gt; &gt; 2. Name: vtbd0p2<br>
&gt; &gt; efimedia: HD(2,GPT,b77a2687-61da-11ed-9652-00a0981073a7,0x800,0x2=
000000)<br>
&gt; &gt; rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b<br>
&gt; &gt; type: freebsd-swap<br>
&gt; &gt; 3. Name: vtbd0p3<br>
&gt; &gt; efimedia: HD(3,GPT,b7836ca4-61da-11ed-9652-00a0981073a7,0x2000800=
,0xdfff000)<br>
&gt; &gt; rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b<br>
&gt; &gt; type: freebsd-zfs<br>
&gt; &gt; 1. Name: vtbd0<br>
&gt; <br>
&gt; <br>
&gt; =3D=3D=3D<br>
&gt; Mark Millard<br>
&gt; marklmi at <a href=3D"http://yahoo.com" rel=3D"noreferrer noreferrer" =
target=3D"_blank">yahoo.com</a><br>
<br>
FYI:<br>
boot1.efi works with ZFS. gptboot.efi is basically the one which<br>
stripped ZFS-related codes from boot1.efi.<br>
<br>
And IIUC, boot1.efi shares most codes with loader.efi (except for its<br>
own FS module wrapper as a consumer, implemented for UFS and ZFS).<br>
<br>
It would be deleted in the future (that is your plan, Warner?),<br>
but currently still usable.<br></blockquote></div></div><div dir=3D"auto"><=
br></div><div dir=3D"auto">That&#39;s the plan. There&#39;s a number of adv=
anced features it doesn&#39;t support and it doubles the effort for many th=
ings..</div><div dir=3D"auto"><br></div><div dir=3D"auto">However it insula=
tes one from loader.efi changes... which some people use...</div><div dir=
=3D"auto"><br></div><div dir=3D"auto">Warner=C2=A0</div><div dir=3D"auto"><=
br></div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex">
-- <br>
Tomoaki AOKI=C2=A0 =C2=A0 &lt;<a href=3D"mailto:junchoon@dec.sakura.ne.jp" =
target=3D"_blank" rel=3D"noreferrer">junchoon@dec.sakura.ne.jp</a>&gt;<br>
</blockquote></div></div></div>

--000000000000ddf0bd06219346a4--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfqO20t_AW6Z%2Bas6d7Wq_8u4RTs8f_4e9Fio-PU20DPh9w>