We don't need the gap that the extended partition occupies if we already know that we have less than five partitions. Saves up to one full alignment of space.
Signed-off-by: Kristian Amlie <kristian.am...@mender.io> --- scripts/lib/wic/plugins/imager/direct.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py index 481d24d..bc2d620 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py @@ -344,6 +344,10 @@ class PartitionedImage(): msger.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 -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core