summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-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 913e3283dc..3eb669da39 100644
--- a/scripts/lib/wic/ksparser.py
+++ b/scripts/lib/wic/ksparser.py
@@ -229,6 +229,23 @@ class KickStart():
229 err = "%s:%d: SquashFS does not support LABEL" \ 229 err = "%s:%d: SquashFS does not support LABEL" \
230 % (confpath, lineno) 230 % (confpath, lineno)
231 raise KickStartError(err) 231 raise KickStartError(err)
232 if parsed.fstype == 'msdos' or parsed.fstype == 'vfat':
233 if parsed.fsuuid:
234 if parsed.fsuuid.upper().startswith('0X'):
235 if len(parsed.fsuuid) > 10:
236 err = "%s:%d: fsuuid %s given in wks kickstart file " \
237 "exceeds the length limit for %s filesystem. " \
238 "It should be in the form of a 32 bit hexadecimal" \
239 "number (for example, 0xABCD1234)." \
240 % (confpath, lineno, parsed.fsuuid, parsed.fstype)
241 raise KickStartError(err)
242 elif len(parsed.fsuuid) > 8:
243 err = "%s:%d: fsuuid %s given in wks kickstart file " \
244 "exceeds the length limit for %s filesystem. " \
245 "It should be in the form of a 32 bit hexadecimal" \
246 "number (for example, 0xABCD1234)." \
247 % (confpath, lineno, parsed.fsuuid, parsed.fstype)
248 raise KickStartError(err)
232 if parsed.use_label and not parsed.label: 249 if parsed.use_label and not parsed.label:
233 err = "%s:%d: Must set the label with --label" \ 250 err = "%s:%d: Must set the label with --label" \
234 % (confpath, lineno) 251 % (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."""