diff options
-rw-r--r-- | scripts/lib/wic/plugins/imager/direct.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py index ffe6c8406d..18cd2773d1 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py @@ -158,7 +158,7 @@ class DirectPlugin(ImagerPlugin): """ image_path = self._full_path(self.workdir, self.parts[0].disk, "direct") self._image = PartitionedImage(image_path, self.ptable_format, - self.native_sysroot) + self.parts, self.native_sysroot) for part in self.parts: # as a convenience, set source to the boot partition source @@ -166,13 +166,6 @@ class DirectPlugin(ImagerPlugin): if not self.ks.bootloader.source and part.mountpoint == "/boot": self.ks.bootloader.source = part.source - # generate parition UUIDs - if not part.uuid and part.use_uuid: - if self.ptable_format == 'gpt': - part.uuid = str(uuid.uuid4()) - else: # msdos partition table - part.uuid = '%0x-%02d' % (self._image.identifier, part.realnum) - fstab_path = self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) for part in self.parts: @@ -310,7 +303,7 @@ class PartitionedImage(): Partitioned image in a file. """ - def __init__(self, path, ptable_format, native_sysroot=None): + def __init__(self, path, ptable_format, partitions, native_sysroot=None): self.path = path # Path to the image file self.numpart = 0 # Number of allocated partitions self.realpart = 0 # Number of partitions in the partition table @@ -321,12 +314,20 @@ class PartitionedImage(): # Disk system identifier self.identifier = int.from_bytes(os.urandom(4), 'little') - self.partitions = [] + self.partitions = partitions self.partimages = [] # Size of a sector used in calculations self.sector_size = SECTOR_SIZE self.native_sysroot = native_sysroot + # generate parition 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 = '%0x-%02d' % (self.identifier, part.realnum) + def add_partition(self, part): """ Add the next partition. Partitions have to be added in the @@ -337,8 +338,6 @@ class PartitionedImage(): # Converting kB to sectors for parted part.size_sec = part.disk_size * 1024 // self.sector_size - self.partitions.append(part) - def layout_partitions(self): """ Layout the partitions, meaning calculate the position of every partition on the disk. The 'ptable_format' parameter defines the |