diff options
Diffstat (limited to 'scripts/lib/wic')
-rw-r--r-- | scripts/lib/wic/ksparser.py | 17 | ||||
-rw-r--r-- | scripts/lib/wic/plugins/imager/direct.py | 7 |
2 files changed, 24 insertions, 0 deletions
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index 76cc55b848..127ca79ade 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py | |||
@@ -228,6 +228,23 @@ class KickStart(): | |||
228 | err = "%s:%d: SquashFS does not support LABEL" \ | 228 | err = "%s:%d: SquashFS does not support LABEL" \ |
229 | % (confpath, lineno) | 229 | % (confpath, lineno) |
230 | raise KickStartError(err) | 230 | raise KickStartError(err) |
231 | if parsed.fstype == 'msdos' or parsed.fstype == 'vfat': | ||
232 | if parsed.fsuuid: | ||
233 | if parsed.fsuuid.upper().startswith('0X'): | ||
234 | if len(parsed.fsuuid) > 10: | ||
235 | err = "%s:%d: fsuuid %s given in wks kickstart file " \ | ||
236 | "exceeds the length limit for %s filesystem. " \ | ||
237 | "It should be in the form of a 32 bit hexadecimal" \ | ||
238 | "number (for example, 0xABCD1234)." \ | ||
239 | % (confpath, lineno, parsed.fsuuid, parsed.fstype) | ||
240 | raise KickStartError(err) | ||
241 | elif len(parsed.fsuuid) > 8: | ||
242 | err = "%s:%d: fsuuid %s given in wks kickstart file " \ | ||
243 | "exceeds the length limit for %s filesystem. " \ | ||
244 | "It should be in the form of a 32 bit hexadecimal" \ | ||
245 | "number (for example, 0xABCD1234)." \ | ||
246 | % (confpath, lineno, parsed.fsuuid, parsed.fstype) | ||
247 | raise KickStartError(err) | ||
231 | if parsed.use_label and not parsed.label: | 248 | if parsed.use_label and not parsed.label: |
232 | err = "%s:%d: Must set the label with --label" \ | 249 | err = "%s:%d: Must set the label with --label" \ |
233 | % (confpath, lineno) | 250 | % (confpath, lineno) |
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py index 55db826e93..0ca67b77d5 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py | |||
@@ -343,6 +343,13 @@ class PartitionedImage(): | |||
343 | part.fsuuid = '0x' + str(uuid.uuid4())[:8].upper() | 343 | part.fsuuid = '0x' + str(uuid.uuid4())[:8].upper() |
344 | else: | 344 | else: |
345 | part.fsuuid = str(uuid.uuid4()) | 345 | part.fsuuid = str(uuid.uuid4()) |
346 | else: | ||
347 | #make sure the fsuuid for vfat/msdos align with format 0xYYYYYYYY | ||
348 | if part.fstype == 'vfat' or part.fstype == 'msdos': | ||
349 | if part.fsuuid.upper().startswith("0X"): | ||
350 | part.fsuuid = '0x' + part.fsuuid.upper()[2:].rjust(8,"0") | ||
351 | else: | ||
352 | part.fsuuid = '0x' + part.fsuuid.upper().rjust(8,"0") | ||
346 | 353 | ||
347 | def prepare(self, imager): | 354 | def prepare(self, imager): |
348 | """Prepare an image. Call prepare method of all image partitions.""" | 355 | """Prepare an image. Call prepare method of all image partitions.""" |