summaryrefslogtreecommitdiff
path: root/scripts/lib
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
index 235eb24f59..7d38ab34fb 100644
--- a/scripts/lib/wic/plugins/imager/direct.py
+++ b/scripts/lib/wic/plugins/imager/direct.py
@@ -344,6 +344,10 @@ class PartitionedImage():
logger.debug("Assigning %s partitions to disks", self.ptable_format)
+ # The number of primary and logical partitions. Extended partition and
+ # partitions not listed in the table are not included.
+ num_real_partitions = len([p for p in self.partitions if not p.no_table])
+
# Go through partitions in the order they are added in .ks file
for num in range(len(self.partitions)):
part = self.partitions[num]
@@ -369,7 +373,7 @@ class PartitionedImage():
# Skip one sector required for the partitioning scheme overhead
self.offset += overhead
- if self.realpart > 3:
+ if self.realpart > 3 and num_real_partitions > 4:
# Reserve a sector for EBR for every logical partition
# before alignment is performed.
if self.ptable_format == "msdos":
@@ -408,7 +412,7 @@ class PartitionedImage():
if self.ptable_format == "msdos":
# only count the partitions that are in partition table
- if len([p for p in self.partitions if not p.no_table]) > 4:
+ if num_real_partitions > 4:
if self.realpart > 3:
part.type = 'logical'
part.num = self.realpart + 1