From: "Paul Barker" <paul@pbarker.dev>
To: Daniel Gomez <daniel@qtec.com>
Cc: openembedded-core@lists.openembedded.org, dagmcr@gmail.com,
richard.purdie@linuxfoundation.org
Subject: Re: [OE-core][PATCH] 1/2] wic: Add --no-fstab-update part option
Date: Tue, 10 Aug 2021 14:25:14 +0100 [thread overview]
Message-ID: <20210810142514.69504dde.paul@pbarker.dev> (raw)
In-Reply-To: <20210810130603.245475-1-daniel@qtec.com>
[-- Attachment #1: Type: text/plain, Size: 4195 bytes --]
On Tue, 10 Aug 2021 15:06:02 +0200
Daniel Gomez <daniel@qtec.com> wrote:
> When embedding a rootfs image (e.g. 'rootfs-dir') as a partition we might
> want to keep the stock fstab for that image. In such case, use
> this option to not update the fstab and use the stock one instead.
>
> This option allows to specify which partitions get the fstab updated
> and which get the stock fstab.
>
> The option matches the argument you can pass to wic itself where the
> same action is performed but for all the partitions.
>
> Example:
> part /export --source rootfs --rootfs-dir=hockeycam-image --fstype=ext4
> --label export --align 1024 --no-fstab-update
>
> part / --source rootfs --fstype=ext4 --label rootfs --align 1024
>
> Signed-off-by: Daniel Gomez <daniel@qtec.com>
> ---
> scripts/lib/wic/help.py | 3 +++
> scripts/lib/wic/ksparser.py | 1 +
> scripts/lib/wic/partition.py | 5 +++--
> 3 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py
> index 991e5094bb..5c3d278d4e 100644
> --- a/scripts/lib/wic/help.py
> +++ b/scripts/lib/wic/help.py
> @@ -991,6 +991,9 @@ DESCRIPTION
> multiple partitions and we want to keep the right
> permissions and usernames in all the partitions.
>
> + --no-fstab-update: This option is specific to wic. It does not update the
> + '/etc/fstab' stock file for the given partition.
> +
> --extra-space: This option is specific to wic. It adds extra
> space after the space filled by the content
> of the partition. The final size can go
> diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
> index 7a4cc83af5..0df9eb0d05 100644
> --- a/scripts/lib/wic/ksparser.py
> +++ b/scripts/lib/wic/ksparser.py
> @@ -185,6 +185,7 @@ class KickStart():
> part.add_argument('--use-uuid', action='store_true')
> part.add_argument('--uuid')
> part.add_argument('--fsuuid')
> + part.add_argument('--no-fstab-update', action='store_true')
>
> bootloader = subparsers.add_parser('bootloader')
> bootloader.add_argument('--append')
> diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
> index e0b2c5bdf2..ab304f1b2a 100644
> --- a/scripts/lib/wic/partition.py
> +++ b/scripts/lib/wic/partition.py
> @@ -54,6 +54,7 @@ class Partition():
> self.uuid = args.uuid
> self.fsuuid = args.fsuuid
> self.type = args.type
> + self.no_fstab_update = args.no_fstab_update
> self.updated_fstab_path = None
> self.has_fstab = False
> self.update_fstab_in_rootfs = False
> @@ -286,7 +287,7 @@ class Partition():
> (self.fstype, extraopts, rootfs, label_str, self.fsuuid, rootfs_dir)
> exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)
>
> - if self.updated_fstab_path and self.has_fstab:
> + if self.updated_fstab_path and self.has_fstab and not self.no_fstab_update:
> debugfs_script_path = os.path.join(cr_workdir, "debugfs_script")
> with open(debugfs_script_path, "w") as f:
> f.write("cd etc\n")
> @@ -350,7 +351,7 @@ class Partition():
> mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (rootfs, rootfs_dir)
> exec_native_cmd(mcopy_cmd, native_sysroot)
>
> - if self.updated_fstab_path and self.has_fstab:
> + if self.updated_fstab_path and self.has_fstab and not self.no_fstab_update:
> mcopy_cmd = "mcopy -i %s %s ::/etc/fstab" % (rootfs, self.updated_fstab_path)
> exec_native_cmd(mcopy_cmd, native_sysroot)
>
This looks like the right approach. However, you're still missing the
handling for filesystems other than ext2/3/4 & msdos. See
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/lib/wic/plugins/source/rootfs.py#n218
and grep to see if there are any other uses of updated_fstab_path.
Thanks,
--
Paul Barker
https://pbarker.dev/
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 235 bytes --]
next prev parent reply other threads:[~2021-08-10 13:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1698BAA2EADEB7F4.20643@lists.openembedded.org>
2021-08-10 13:06 ` [OE-core][PATCH] 1/2] wic: Add --no-fstab-update part option Daniel Gomez
2021-08-10 13:06 ` [OE-core][PATCH] 2/2] oeqa: wic: Add tests for --no-fstab-update Daniel Gomez
2021-08-10 13:25 ` Paul Barker [this message]
2021-08-10 13:36 ` [OE-core][PATCH] 1/2] wic: Add --no-fstab-update part option Daniel Gomez
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=20210810142514.69504dde.paul@pbarker.dev \
--to=paul@pbarker.dev \
--cc=dagmcr@gmail.com \
--cc=daniel@qtec.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/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