From: Henning Schild <henning.schild@siemens.com>
To: "T. Schaffner" <tobias.schaffner@siemens.com>
Cc: <isar-users@googlegroups.com>, <felix.moessbauer@siemens.com>,
<jan.kiszka@siemens.com>, <roberto.foglietta@gmail.com>
Subject: Re: [PATCH v3 1/1] expand-on-first-boot: wait for udev to create symlink
Date: Fri, 9 Dec 2022 14:57:52 +0100 [thread overview]
Message-ID: <20221209145752.0597a256@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <20221209112441.87669-2-tobias.schaffner@siemens.com>
Am Fri, 9 Dec 2022 12:24:41 +0100
schrieb "T. Schaffner" <tobias.schaffner@siemens.com>:
> From: Tobias Schaffner <tobias.schaffner@siemens.com>
>
> systemd-growfs depends on a symlink to the partition of the filesystem
> that should be resized. This symlink is created by udev in
> /dev/block/.
>
> If this symlink is not yet created for example because systemd-udev is
> not up yet systemd-growfs will fail.
>
> We could use Require and After to depend on the systemd-udev service
> but this could again create a race condition if udev is up but not
> fast enough after the partx -u.
>
> Run systemd-growfs periodically until the symlink appears.
>
> Signed-off-by: Tobias Schaffner <tobias.schaffner@siemens.com>
> ---
> .../files/expand-last-partition.sh | 21
> ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git
> a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
> b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
> index 57055cc..4d78e4f 100755 ---
> a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
> +++
> b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
> @@ -80,6 +80,25 @@ if [ ! -d "${MOUNT_POINT}" ]; then fi mount
> "${LAST_PART}" "${MOUNT_POINT}" -/lib/systemd/systemd-growfs
> "${MOUNT_POINT}" +
> +EXIT_CODE=1
> +# If systemd-udevd if not up yet or was not fast enough the symlinks
> in +# /dev/block/ might be missing. Retry in that case.
> +# This retry logic is only needed up to systemd-version 252
> +for run in $(seq 0 50); do
> + if GROWFS_OUTPUT=$(/lib/systemd/systemd-growfs "${MOUNT_POINT}"
> 2>&1); then
> + EXIT_CODE=0
> + break
> + else:
> + if ! echo ${GROWFS_OUTPUT} | grep -q "^Failed to open
> \"/dev/block/.*\": No such file or directory$"; then
> + break
> + fi
> + fi
> + sleep 0.1
> +done
I wanted to review this and suggest some changes to better deal with
systemd 252. But i am actually getting the strong feeling that we
should simply go back to calling the respective filesystem resize tool.
The whole story with repart did not work out so we thought we could at
least use some bits (growfs) to support i.e. btrfs. But that thing now
has this weird mount, and that funny udev problem ... who knows what
comes next ...
I propose to go back to resize2fs and add btrfs support with a
switch-case. Still the whole story told us how repart/growfs can be used
and we now have the wic patches needed for that and the bail-outs so
the two methods do not start conflicting. We just did not manage to
write a generic isar helper package.
Maybe i will propose to switch one target over to repart/growfs ... but
honestly, i do not trust that stuff too much at the moment and am not
sure it has the maturity one might want.
Henning
> +
> +echo "${GROWFS_OUTPUT}"
> umount "${MOUNT_POINT}"
> rmdir "${MOUNT_POINT}"
> +exit ${EXIT_CODE}
> +
next prev parent reply other threads:[~2022-12-09 13:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-09 11:24 [PATCH v3 0/1] " T. Schaffner
2022-12-09 11:24 ` [PATCH v3 1/1] " T. Schaffner
2022-12-09 11:56 ` Jan Kiszka
2022-12-09 13:57 ` Henning Schild [this message]
2022-12-09 15:11 ` Schaffner, Tobias
2022-12-09 17:23 ` Roberto A. Foglietta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221209145752.0597a256@md1za8fc.ad001.siemens.net \
--to=henning.schild@siemens.com \
--cc=felix.moessbauer@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=jan.kiszka@siemens.com \
--cc=roberto.foglietta@gmail.com \
--cc=tobias.schaffner@siemens.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox