Given a partition layout like this: partition startsector endsector /boot 2048 1026047 PV 1026048 xxxxxxxxxx Then when we call getFreeRegions() parted gives us a free region with a geometry starting at sector 63 and ending at sector 2047, which we then try to align to our 2048 grain, which fails for the starting sector. When we fail to align, this means that the free region is too small to create an aligned partition in there, and we should just skip it. --- storage/partitioning.py | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/storage/partitioning.py b/storage/partitioning.py index d548cdb..b9a5592 100644 --- a/storage/partitioning.py +++ b/storage/partitioning.py @@ -725,10 +725,22 @@ def getFreeRegions(disks): for f in disk.format.partedDisk.getFreeSpaceRegions(): # device alignment fixups if not disk.format.alignment.isAligned(f, f.start): - f.start = disk.format.alignment.alignNearest(f, f.start) + try: + f.start = disk.format.alignment.alignNearest(f, f.start) + except ArithmeticError, e: + # This happens when the free region is too small to create + # an aligned partition in it, ie the freespace between the + # mbr and the first aligned partition + continue if not disk.format.endAlignment.isAligned(f, f.end): - f.end = disk.format.endAlignment.alignNearest(f, f.end) + try: + f.end = disk.format.endAlignment.alignNearest(f, f.end) + except ArithmeticError, e: + # This happens when the free region is too small to create + # an aligned partition in it, ie the freespace after the + # last aligned partition + continue if f.length > 0: free.append(f) -- 1.6.6 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list