mirror of
https://git.yoctoproject.org/poky
synced 2026-05-02 18:32:15 +02:00
wic: Introduce --fsuuid and have --use-uuid make use of UUID too
First, allow for wic to be given a filesystem UUID to be used when creating a filesystem. When not provided, wic will generate the UUID to be used. Next, when --use-uuid is passed, we update the fstab to mount things via UUID (and if not found, then use PARTUUID) as UUID is more portable. (From OE-Core rev: 9256b8799495634ee8aee5d16ff71bd6e6e25ed4) Signed-off-by: Tom Rini <trini@konsulko.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -141,7 +141,15 @@ class DirectPlugin(ImagerPlugin):
|
||||
continue
|
||||
|
||||
if part.use_uuid:
|
||||
device_name = "PARTUUID=%s" % part.uuid
|
||||
if part.fsuuid:
|
||||
# FAT UUID is different from others
|
||||
if len(part.fsuuid) == 10:
|
||||
device_name = "UUID=%s-%s" % \
|
||||
(part.fsuuid[2:6], part.fsuuid[6:])
|
||||
else:
|
||||
device_name = "UUID=%s" % part.fsuuid
|
||||
else:
|
||||
device_name = "PARTUUID=%s" % part.uuid
|
||||
else:
|
||||
# mmc device partitions are named mmcblk0p1, mmcblk0p2..
|
||||
prefix = 'p' if part.disk.startswith('mmcblk') else ''
|
||||
@@ -334,13 +342,18 @@ class PartitionedImage():
|
||||
continue
|
||||
part.realnum = realnum
|
||||
|
||||
# generate parition UUIDs
|
||||
# generate parition and filesystem UUIDs
|
||||
for part in self.partitions:
|
||||
if not part.uuid and part.use_uuid:
|
||||
if self.ptable_format == 'gpt':
|
||||
part.uuid = str(uuid.uuid4())
|
||||
else: # msdos partition table
|
||||
part.uuid = '%08x-%02d' % (self.identifier, part.realnum)
|
||||
if not part.fsuuid:
|
||||
if part.fstype == 'vfat' or part.fstype == 'msdos':
|
||||
part.fsuuid = '0x' + str(uuid.uuid4())[:8].upper()
|
||||
else:
|
||||
part.fsuuid = str(uuid.uuid4())
|
||||
|
||||
def prepare(self, imager):
|
||||
"""Prepare an image. Call prepare method of all image partitions."""
|
||||
|
||||
@@ -240,7 +240,8 @@ class BootimgEFIPlugin(SourcePlugin):
|
||||
# dosfs image, created by mkdosfs
|
||||
bootimg = "%s/boot.img" % cr_workdir
|
||||
|
||||
dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks)
|
||||
dosfs_cmd = "mkdosfs -n efi -i %s -C %s %d" % \
|
||||
(part.fsuuid, bootimg, blocks)
|
||||
exec_native_cmd(dosfs_cmd, native_sysroot)
|
||||
|
||||
mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
|
||||
|
||||
@@ -186,7 +186,8 @@ class BootimgPcbiosPlugin(SourcePlugin):
|
||||
# dosfs image, created by mkdosfs
|
||||
bootimg = "%s/boot%s.img" % (cr_workdir, part.lineno)
|
||||
|
||||
dosfs_cmd = "mkdosfs -n boot -S 512 -C %s %d" % (bootimg, blocks)
|
||||
dosfs_cmd = "mkdosfs -n boot -i %s -S 512 -C %s %d" % \
|
||||
(part.fsuuid, bootimg, blocks)
|
||||
exec_native_cmd(dosfs_cmd, native_sysroot)
|
||||
|
||||
mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
|
||||
|
||||
Reference in New Issue
Block a user