wic: Introduce the --use-label partition parameter

We can use this parameter to make the wic use the label to name a
partition in /etc/fstab.

(From OE-Core rev: 51638edaa00befaed58e2def255d46ae44d9234f)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Kevin Hao
2018-09-12 08:44:46 +08:00
committed by Richard Purdie
parent 92bc2b3e84
commit 821711bf2e
4 changed files with 28 additions and 7 deletions

View File

@@ -866,11 +866,11 @@ DESCRIPTION
Partitions with a <mountpoint> specified will be automatically mounted.
This is achieved by wic adding entries to the fstab during image
generation. In order for a valid fstab to be generated one of the
--ondrive, --ondisk or --use-uuid partition options must be used for
each partition that specifies a mountpoint. Note that with --use-uuid
and non-root <mountpoint>, including swap, the mount program must
understand the PARTUUID syntax. This currently excludes the busybox
versions of these applications.
--ondrive, --ondisk, --use-uuid or --use-label partition options must
be used for each partition that specifies a mountpoint. Note that with
--use-{uuid,label} and non-root <mountpoint>, including swap, the mount
program must understand the PARTUUID or LABEL syntax. This currently
excludes the busybox versions of these applications.
The following are supported 'part' options:
@@ -945,6 +945,14 @@ DESCRIPTION
label is already in use by another filesystem,
a new label is created for the partition.
--use-label: This option is specific to wic. It makes wic to use the
label in /etc/fstab to specify a partition. If the
--use-label and --use-uuid are used at the same time,
we prefer the uuid because it is less likely to cause
name confliction. We don't support using this parameter
on the root partition since it requires an initramfs to
parse this value and we do not currently support that.
--active: Marks the partition as active.
--align (in KBytes): This option is specific to wic and says

View File

@@ -141,6 +141,7 @@ class KickStart():
'squashfs', 'vfat', 'msdos', 'swap'))
part.add_argument('--mkfs-extraopts', default='')
part.add_argument('--label')
part.add_argument('--use-label', action='store_true')
part.add_argument('--no-table', action='store_true')
part.add_argument('--ondisk', '--ondrive', dest='disk', default='sda')
part.add_argument("--overhead-factor", type=overheadtype)
@@ -197,8 +198,17 @@ class KickStart():
(confpath, lineno, err))
if line.startswith('part'):
# SquashFS does not support filesystem UUID
if parsed.fstype == 'squashfs' and parsed.fsuuid:
err = "%s:%d: SquashFS does not support UUID" \
if parsed.fstype == 'squashfs':
if parsed.fsuuid:
err = "%s:%d: SquashFS does not support UUID" \
% (confpath, lineno)
raise KickStartError(err)
if parsed.label:
err = "%s:%d: SquashFS does not support LABEL" \
% (confpath, lineno)
raise KickStartError(err)
if parsed.use_label and not parsed.label:
err = "%s:%d: Must set the label with --label" \
% (confpath, lineno)
raise KickStartError(err)
# using ArgumentParser one cannot easily tell if option

View File

@@ -47,6 +47,7 @@ class Partition():
self.fsopts = args.fsopts
self.fstype = args.fstype
self.label = args.label
self.use_label = args.use_label
self.mkfs_extraopts = args.mkfs_extraopts
self.mountpoint = args.mountpoint
self.no_table = args.no_table

View File

@@ -155,6 +155,8 @@ class DirectPlugin(ImagerPlugin):
device_name = "UUID=%s" % part.fsuuid
else:
device_name = "PARTUUID=%s" % part.uuid
elif part.use_label:
device_name = "LABEL=%s" % part.label
else:
# mmc device partitions are named mmcblk0p1, mmcblk0p2..
prefix = 'p' if part.disk.startswith('mmcblk') else ''