summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/lib/wic/ksparser.py17
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py7
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."""