Re: Better handle systemd-boot and installkernel changes in HB

Immolo <[email protected]> Tue, 2 Dec 2025 10:26:23 +0000
Newsgroups gmane.linux.gentoo.documentation
Message-ID <CAHfWF5mVSZyXkmQ6=d6vyDizFbTa-f=2QFhzHY4NTO_gPsKbCA@mail.gmail.com>
--000000000000afb8b80644f587f4
Content-Type: text/plain; charset="UTF-8"

On Tue, 2 Dec 2025 at 09:45, Nowa Ammerlaan <[email protected]> wrote:

> On 02/12/2025 10:08, Immolo wrote:
> > On Mon, 1 Dec 2025 at 15:18, Nowa Ammerlaan <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Thanks immolo,
> >
> >     This looks good, my only comment is that for the openrc section the
> >     path
> >     for the cmdline should be /etc/kernel/cmdline as well.
> >
> >
> > Following the code this what I thought should happen (my bash is still
> > rough)
> > however, unless I use /etc/cmdlline the chroot detection fails and I
> > can't see
> > why.
>
> These are two separate things:
> - /etc/cmdline (or /etc/cmdline.d/*.conf) <- config file for *dracut*
> - /etc/kernel/cmdline (or /usr/lib/kernel/cmdline) <- config file for
> ukify and systemd-boot
>
>
Thanks, this was my understanding of the code.


> If you've configured the kernel installation to use systemd-boot/ukify
> *and* dracut, *with* hostonly_cmdline=yes (the default) then the check
> will check for presence of *both* files.


My idea with the HB is to flowchart the solutions as I don't see another
way of handling it right now.

i.e.: Use openrc -> dracut -> systend-boot = /etc/cmdline
Use systemd -> dracut -> systemd-booot = /etc/kernel/cmdline

This was part of the reason why I stuck to just using SD-boot while we
discuss, as it gets real confusing when you start summarising so many
different options.

Does this general idea sound workable to you?

>

We could patch dracut to use the same file to make things less
> confusing, but this would be a breaking change for some users.
>
>
It's a shame we can't just symlink the two files as it would make
all this so much simpler.


> Best regards,
> Nowa
>

Kind regards,

immolo

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

<div dir=3D"ltr"><div dir=3D"ltr">On Tue, 2 Dec 2025 at 09:45, Nowa Ammerla=
an &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:</d=
iv><div class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">On 02/12/2025 10:08, Immolo wrote:<br>
&gt; On Mon, 1 Dec 2025 at 15:18, Nowa Ammerlaan &lt;<a href=3D"mailto:nowa=
@gentoo.org" target=3D"_blank">[email protected]</a> <br>
&gt; &lt;mailto:<a href=3D"mailto:[email protected]" target=3D"_blank">nowa@g=
entoo.org</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0Thanks immolo,<br>
&gt; <br>
&gt;=C2=A0 =C2=A0 =C2=A0This looks good, my only comment is that for the op=
enrc section the<br>
&gt;=C2=A0 =C2=A0 =C2=A0path<br>
&gt;=C2=A0 =C2=A0 =C2=A0for the cmdline should be /etc/kernel/cmdline as we=
ll. <br>
&gt; <br>
&gt; <br>
&gt; Following the code this what I thought should happen (my bash is still=
 <br>
&gt; rough)<br>
&gt; however, unless I use /etc/cmdlline=C2=A0the chroot detection fails an=
d I <br>
&gt; can&#39;t see<br>
&gt; why.<br>
<br>
These are two separate things:<br>
- /etc/cmdline (or /etc/cmdline.d/*.conf) &lt;- config file for *dracut*<br=
>
- /etc/kernel/cmdline (or /usr/lib/kernel/cmdline) &lt;- config file for <b=
r>
ukify and systemd-boot<br>
<br></blockquote><div><br></div><div>Thanks, this was my understanding of t=
he code.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left=
:1ex">
If you&#39;ve configured the kernel installation to use systemd-boot/ukify =
<br>
*and* dracut, *with* hostonly_cmdline=3Dyes (the default) then the check <b=
r>
will check for presence of *both* files.</blockquote><div><br></div><div>My=
 idea with the HB is to flowchart the solutions as I don&#39;t see another<=
/div><div>way of handling it right now.</div><div><br></div><div>i.e.: Use =
openrc -&gt; dracut -&gt; systend-boot=C2=A0=3D /etc/cmdline</div><div>Use =
systemd -&gt; dracut -&gt; systemd-booot=C2=A0=3D /etc/kernel/cmdline</div>=
<div><br></div><div>This was part of the reason why I stuck to just using S=
D-boot while we=C2=A0</div><div>discuss, as it gets real confusing when you=
 start summarising so many=C2=A0</div><div>different options.=C2=A0</div><d=
iv><br></div><div>Does this general idea sound workable to you?</div><block=
quote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1=
px solid rgb(204,204,204);padding-left:1ex">=C2=A0</blockquote><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex">
We could patch dracut to use the same file to make things less <br>
confusing, but this would be a breaking change for some users.<br>
<br></blockquote><div><br></div><div>It&#39;s a shame we can&#39;t just sym=
link the two files as it would make=C2=A0</div><div>all this so much simple=
r.</div><div>=C2=A0</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">
Best regards,<br>
Nowa<br></blockquote><div><br></div><div>Kind regards,</div><div><br></div>=
<div>immolo=C2=A0</div></div></div>

--000000000000afb8b80644f587f4--