diff options
Diffstat (limited to 'scripts/lib/wic/imager/direct.py')
-rw-r--r-- | scripts/lib/wic/imager/direct.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/lib/wic/imager/direct.py b/scripts/lib/wic/imager/direct.py index ffde232c2b..123a07817b 100644 --- a/scripts/lib/wic/imager/direct.py +++ b/scripts/lib/wic/imager/direct.py | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | import os | 27 | import os |
28 | import shutil | 28 | import shutil |
29 | import uuid | ||
29 | 30 | ||
30 | from wic import msger | 31 | from wic import msger |
31 | from wic.utils.oe.misc import get_bitbake_var | 32 | from wic.utils.oe.misc import get_bitbake_var |
@@ -242,12 +243,23 @@ class DirectImageCreator(BaseImageCreator): | |||
242 | 243 | ||
243 | self.__image = Image(self.native_sysroot) | 244 | self.__image = Image(self.native_sysroot) |
244 | 245 | ||
245 | for part in parts: | 246 | disk_ids = {} |
247 | for num, part in enumerate(parts, 1): | ||
246 | # as a convenience, set source to the boot partition source | 248 | # as a convenience, set source to the boot partition source |
247 | # instead of forcing it to be set via bootloader --source | 249 | # instead of forcing it to be set via bootloader --source |
248 | if not self.ks.bootloader.source and part.mountpoint == "/boot": | 250 | if not self.ks.bootloader.source and part.mountpoint == "/boot": |
249 | self.ks.bootloader.source = part.source | 251 | self.ks.bootloader.source = part.source |
250 | 252 | ||
253 | # generate parition UUIDs | ||
254 | if not part.uuid and part.use_uuid: | ||
255 | if self.ptable_format == 'gpt': | ||
256 | part.uuid = str(uuid.uuid4()) | ||
257 | else: # msdos partition table | ||
258 | if part.disk not in disk_ids: | ||
259 | disk_ids[part.disk] = int.from_bytes(os.urandom(4), 'little') | ||
260 | disk_id = disk_ids[part.disk] | ||
261 | part.uuid = '%0x-%02d' % (disk_id, self.__get_part_num(num, parts)) | ||
262 | |||
251 | fstab_path = self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) | 263 | fstab_path = self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) |
252 | 264 | ||
253 | shutil.rmtree(self.workdir) | 265 | shutil.rmtree(self.workdir) |