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) |
