public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH v2 0/1] fix on-first-boot for systemd >= 247
@ 2022-07-25 21:09 Felix Moessbauer
  2022-07-25 21:09 ` [PATCH v2 1/1] " Felix Moessbauer
  2022-08-01 15:52 ` [PATCH v2 0/1] " Anton Mikanovich
  0 siblings, 2 replies; 7+ messages in thread
From: Felix Moessbauer @ 2022-07-25 21:09 UTC (permalink / raw)
  To: isar-users; +Cc: tobiasschmidl, henning.schild, jan.kiszka, Felix Moessbauer

Changes since v1:

- check if systemd is installed

Felix Moessbauer (1):
  fix on-first-boot for systemd >= 247

 meta/classes/image-postproc-extension.bbclass | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/1] fix on-first-boot for systemd >= 247
  2022-07-25 21:09 [PATCH v2 0/1] fix on-first-boot for systemd >= 247 Felix Moessbauer
@ 2022-07-25 21:09 ` Felix Moessbauer
  2022-07-26  9:09   ` Moessbauer, Felix
  2022-08-01 15:52 ` [PATCH v2 0/1] " Anton Mikanovich
  1 sibling, 1 reply; 7+ messages in thread
From: Felix Moessbauer @ 2022-07-25 21:09 UTC (permalink / raw)
  To: isar-users; +Cc: tobiasschmidl, henning.schild, jan.kiszka, Felix Moessbauer

This patch fixes the bug that /etc/machine-id is never
generated when running from within an initrd with an ro rootfs.

In this case, the magic value "uninitialized" has to be used
instead of deleting the file.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes/image-postproc-extension.bbclass | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/meta/classes/image-postproc-extension.bbclass b/meta/classes/image-postproc-extension.bbclass
index 0c412c0d..f9e26c1e 100644
--- a/meta/classes/image-postproc-extension.bbclass
+++ b/meta/classes/image-postproc-extension.bbclass
@@ -56,8 +56,15 @@ image_postprocess_mark() {
 ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_machine_id"
 image_postprocess_machine_id() {
     # systemd(1) takes care of recreating the machine-id on first boot
+    # for systemd < v247, remove the file, else set to uninitialized
+    # (required if initramfs with ro root is used)
+    SYSTEMD_VERSION=$( sudo chroot ${IMAGE_ROOTFS} dpkg-query --showformat='${source:Upstream-Version}' --show systemd || echo "0" )
+    if dpkg --compare-versions "$SYSTEMD_VERSION" "lt" "247"; then
+        sudo rm -f '${IMAGE_ROOTFS}/etc/machine-id'
+    else
+        echo "uninitialized" | sudo tee '${IMAGE_ROOTFS}/etc/machine-id'
+    fi
     sudo rm -f '${IMAGE_ROOTFS}/var/lib/dbus/machine-id'
-    sudo rm -f '${IMAGE_ROOTFS}/etc/machine-id'
 }
 
 ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_sshd_key_regen"
-- 
2.30.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v2 1/1] fix on-first-boot for systemd >= 247
  2022-07-25 21:09 ` [PATCH v2 1/1] " Felix Moessbauer
@ 2022-07-26  9:09   ` Moessbauer, Felix
  2022-07-27  9:20     ` Henning Schild
  0 siblings, 1 reply; 7+ messages in thread
From: Moessbauer, Felix @ 2022-07-26  9:09 UTC (permalink / raw)
  To: isar-users; +Cc: Schmidl, Tobias, Schild, Henning, jan.kiszka

FYI: We have a confirmation from systemd devs, that using "uninitialized" is the correct strategy.
They also mention what to consider when using ConditionFirstBoot=.
For technical details, see [1]

The GH issue is really worth a read 😉

Felix

[1] https://github.com/systemd/systemd/issues/14131#issuecomment-1194015162

> -----Original Message-----
> From: Moessbauer, Felix (T CED SES-DE) <felix.moessbauer@siemens.com>
> Sent: Monday, July 25, 2022 11:09 PM
> To: isar-users@googlegroups.com
> Cc: Schmidl, Tobias (T CED SES-DE) <tobiasschmidl@siemens.com>; Schild,
> Henning (T CED SES-DE) <henning.schild@siemens.com>; Kiszka, Jan (T CED)
> <jan.kiszka@siemens.com>; Moessbauer, Felix (T CED SES-DE)
> <felix.moessbauer@siemens.com>
> Subject: [PATCH v2 1/1] fix on-first-boot for systemd >= 247
> 
> This patch fixes the bug that /etc/machine-id is never generated when
> running from within an initrd with an ro rootfs.
> 
> In this case, the magic value "uninitialized" has to be used instead of deleting
> the file.
> 
> Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> ---
>  meta/classes/image-postproc-extension.bbclass | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/image-postproc-extension.bbclass
> b/meta/classes/image-postproc-extension.bbclass
> index 0c412c0d..f9e26c1e 100644
> --- a/meta/classes/image-postproc-extension.bbclass
> +++ b/meta/classes/image-postproc-extension.bbclass
> @@ -56,8 +56,15 @@ image_postprocess_mark() {
> ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_machine_id"
>  image_postprocess_machine_id() {
>      # systemd(1) takes care of recreating the machine-id on first boot
> +    # for systemd < v247, remove the file, else set to uninitialized
> +    # (required if initramfs with ro root is used)
> +    SYSTEMD_VERSION=$( sudo chroot ${IMAGE_ROOTFS} dpkg-query --
> showformat='${source:Upstream-Version}' --show systemd || echo "0" )
> +    if dpkg --compare-versions "$SYSTEMD_VERSION" "lt" "247"; then
> +        sudo rm -f '${IMAGE_ROOTFS}/etc/machine-id'
> +    else
> +        echo "uninitialized" | sudo tee '${IMAGE_ROOTFS}/etc/machine-id'
> +    fi
>      sudo rm -f '${IMAGE_ROOTFS}/var/lib/dbus/machine-id'
> -    sudo rm -f '${IMAGE_ROOTFS}/etc/machine-id'
>  }
> 
>  ROOTFS_POSTPROCESS_COMMAND =+
> "image_postprocess_sshd_key_regen"
> --
> 2.30.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/1] fix on-first-boot for systemd >= 247
  2022-07-26  9:09   ` Moessbauer, Felix
@ 2022-07-27  9:20     ` Henning Schild
  0 siblings, 0 replies; 7+ messages in thread
From: Henning Schild @ 2022-07-27  9:20 UTC (permalink / raw)
  To: Moessbauer, Felix (T CED SES-DE)
  Cc: isar-users, Schmidl, Tobias (T CED SES-DE), Kiszka, Jan (T CED),
	Harald Seiler

Am Tue, 26 Jul 2022 11:09:21 +0200
schrieb "Moessbauer, Felix (T CED SES-DE)"
<felix.moessbauer@siemens.com>:

> FYI: We have a confirmation from systemd devs, that using
> "uninitialized" is the correct strategy. They also mention what to
> consider when using ConditionFirstBoot=. For technical details, see
> [1]

Not sure rahix is a dev or another victim ... or both ;).
 
> The GH issue is really worth a read 😉

I read it, but not in depth. My personal conclusion would still be to
stay away from all features that have not been hanging for at least 2
years ;). So NM over networkd, ntp over timedatectrl and so on. And if
you can openrc ;)

Henning

> Felix
> 
> [1]
> https://github.com/systemd/systemd/issues/14131#issuecomment-1194015162
> 
> > -----Original Message-----
> > From: Moessbauer, Felix (T CED SES-DE)
> > <felix.moessbauer@siemens.com> Sent: Monday, July 25, 2022 11:09 PM
> > To: isar-users@googlegroups.com
> > Cc: Schmidl, Tobias (T CED SES-DE) <tobiasschmidl@siemens.com>;
> > Schild, Henning (T CED SES-DE) <henning.schild@siemens.com>;
> > Kiszka, Jan (T CED) <jan.kiszka@siemens.com>; Moessbauer, Felix (T
> > CED SES-DE) <felix.moessbauer@siemens.com>
> > Subject: [PATCH v2 1/1] fix on-first-boot for systemd >= 247
> > 
> > This patch fixes the bug that /etc/machine-id is never generated
> > when running from within an initrd with an ro rootfs.
> > 
> > In this case, the magic value "uninitialized" has to be used
> > instead of deleting the file.
> > 
> > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> > ---
> >  meta/classes/image-postproc-extension.bbclass | 9 ++++++++-
> >  1 file changed, 8 insertions(+), 1 deletion(-)
> > 
> > diff --git a/meta/classes/image-postproc-extension.bbclass
> > b/meta/classes/image-postproc-extension.bbclass
> > index 0c412c0d..f9e26c1e 100644
> > --- a/meta/classes/image-postproc-extension.bbclass
> > +++ b/meta/classes/image-postproc-extension.bbclass
> > @@ -56,8 +56,15 @@ image_postprocess_mark() {
> > ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_machine_id"
> >  image_postprocess_machine_id() {
> >      # systemd(1) takes care of recreating the machine-id on first
> > boot
> > +    # for systemd < v247, remove the file, else set to
> > uninitialized
> > +    # (required if initramfs with ro root is used)
> > +    SYSTEMD_VERSION=$( sudo chroot ${IMAGE_ROOTFS} dpkg-query --
> > showformat='${source:Upstream-Version}' --show systemd || echo "0" )
> > +    if dpkg --compare-versions "$SYSTEMD_VERSION" "lt" "247"; then
> > +        sudo rm -f '${IMAGE_ROOTFS}/etc/machine-id'
> > +    else
> > +        echo "uninitialized" | sudo tee
> > '${IMAGE_ROOTFS}/etc/machine-id'
> > +    fi
> >      sudo rm -f '${IMAGE_ROOTFS}/var/lib/dbus/machine-id'
> > -    sudo rm -f '${IMAGE_ROOTFS}/etc/machine-id'
> >  }
> > 
> >  ROOTFS_POSTPROCESS_COMMAND =+
> > "image_postprocess_sshd_key_regen"
> > --
> > 2.30.2  
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/1] fix on-first-boot for systemd >= 247
  2022-07-25 21:09 [PATCH v2 0/1] fix on-first-boot for systemd >= 247 Felix Moessbauer
  2022-07-25 21:09 ` [PATCH v2 1/1] " Felix Moessbauer
@ 2022-08-01 15:52 ` Anton Mikanovich
  2022-08-01 16:28   ` Moessbauer, Felix
  1 sibling, 1 reply; 7+ messages in thread
From: Anton Mikanovich @ 2022-08-01 15:52 UTC (permalink / raw)
  To: Felix Moessbauer, isar-users; +Cc: tobiasschmidl, henning.schild, jan.kiszka

26.07.2022 00:09, Felix Moessbauer wrote:
> Changes since v1:
>
> - check if systemd is installed
>
> Felix Moessbauer (1):
>    fix on-first-boot for systemd >= 247
>
>   meta/classes/image-postproc-extension.bbclass | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
>
Hello,
Because this is not working in buster systemd version should be changed.
The best way will be to find out exact one, but looks like ">= 241" just 
works.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v2 0/1] fix on-first-boot for systemd >= 247
  2022-08-01 15:52 ` [PATCH v2 0/1] " Anton Mikanovich
@ 2022-08-01 16:28   ` Moessbauer, Felix
  2022-08-02  7:56     ` Anton Mikanovich
  0 siblings, 1 reply; 7+ messages in thread
From: Moessbauer, Felix @ 2022-08-01 16:28 UTC (permalink / raw)
  To: Anton Mikanovich, isar-users; +Cc: Schmidl, Tobias, Schild, Henning, jan.kiszka

> -----Original Message-----
> From: Anton Mikanovich <amikan@ilbers.de>
> Sent: Monday, August 1, 2022 5:52 PM
> To: Moessbauer, Felix (T CED SES-DE) <felix.moessbauer@siemens.com>;
> isar-users@googlegroups.com
> Cc: Schmidl, Tobias (T CED SES-DE) <tobiasschmidl@siemens.com>; Schild,
> Henning (T CED SES-DE) <henning.schild@siemens.com>; Kiszka, Jan (T CED)
> <jan.kiszka@siemens.com>
> Subject: Re: [PATCH v2 0/1] fix on-first-boot for systemd >= 247
> 
> 26.07.2022 00:09, Felix Moessbauer wrote:
> > Changes since v1:
> >
> > - check if systemd is installed
> >
> > Felix Moessbauer (1):
> >    fix on-first-boot for systemd >= 247
> >
> >   meta/classes/image-postproc-extension.bbclass | 9 ++++++++-
> >   1 file changed, 8 insertions(+), 1 deletion(-)
> >
> Hello,
> Because this is not working in buster systemd version should be changed.
> The best way will be to find out exact one, but looks like ">= 241" just works.

Hi,

as stated in the patch, this solution will only work for systemd >= 247 as there the "uninitialized" support has been added.
As there is not systemd >= 247 for buster, we simply cannot support it OOTB.
For buster, you have to make the rootfs rw right from the beginning on, so the /etc/machine-id file can be created.
That's why we have two code paths in the patch.

Felix


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/1] fix on-first-boot for systemd >= 247
  2022-08-01 16:28   ` Moessbauer, Felix
@ 2022-08-02  7:56     ` Anton Mikanovich
  0 siblings, 0 replies; 7+ messages in thread
From: Anton Mikanovich @ 2022-08-02  7:56 UTC (permalink / raw)
  To: Moessbauer, Felix, isar-users
  Cc: Schmidl, Tobias, Schild, Henning, jan.kiszka

01.08.2022 19:28, Moessbauer, Felix wrote:
>> Hi,
>>
>> as stated in the patch, this solution will only work for systemd >= 247 as there the "uninitialized" support has been added.
>> As there is not systemd >= 247 for buster, we simply cannot support it OOTB.
>> For buster, you have to make the rootfs rw right from the beginning on, so the /etc/machine-id file can be created.
>> That's why we have two code paths in the patch.
>>
>> Felix
>>
Hm, I've tried to set machine-id to 'uninitialized' for Buster and it 
worked.
But looks like even create empty file do the trick.
Creating empty machine-id makes even Bullseye systemd generate id, but we
probably should follow official way with 'uninitialized' there. So the new
proposal is to create empty file for <247 and 'uninitialized' for others.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-08-02  7:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-25 21:09 [PATCH v2 0/1] fix on-first-boot for systemd >= 247 Felix Moessbauer
2022-07-25 21:09 ` [PATCH v2 1/1] " Felix Moessbauer
2022-07-26  9:09   ` Moessbauer, Felix
2022-07-27  9:20     ` Henning Schild
2022-08-01 15:52 ` [PATCH v2 0/1] " Anton Mikanovich
2022-08-01 16:28   ` Moessbauer, Felix
2022-08-02  7:56     ` Anton Mikanovich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox