mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
wic/engine: use up all free space when expanding partitions
Currently we just divide up the free space by the number of partitions that need to be re-sized. This leads to problems when a user has explicitly specified a subset of partitions (but not all) that need to re-sized along with the sizes. As an example, for an image with 3 partitions, if we use: wic write image.wic /dev/sdb --expand 1:10G This would lead to paritions 2 and 3 each being re-sized to one thirds of the free space instead of half. Change the behavior to use up all the free space. (From OE-Core rev: a88f1b5d88dbc5fb28be24b9787d73b9e0cdf183) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
82756dcac0
commit
bf7ed1d046
@@ -416,6 +416,7 @@ class Disk:
|
||||
|
||||
# calculate expanded partitions sizes
|
||||
sizes = {}
|
||||
num_auto_resize = 0
|
||||
for num, part in enumerate(parts['partitiontable']['partitions'], 1):
|
||||
if num in expand:
|
||||
if expand[num] != 0: # don't resize partition if size is set to 0
|
||||
@@ -425,10 +426,11 @@ class Disk:
|
||||
sizes[num] = sectors
|
||||
elif part['type'] != 'f':
|
||||
sizes[num] = -1
|
||||
num_auto_resize += 1
|
||||
|
||||
for num, part in enumerate(parts['partitiontable']['partitions'], 1):
|
||||
if sizes.get(num) == -1:
|
||||
part['size'] += free // len(sizes)
|
||||
part['size'] += free // num_auto_resize
|
||||
|
||||
# write resized partition table to the target
|
||||
write_ptable(parts, target)
|
||||
|
||||
Reference in New Issue
Block a user