diff options
Diffstat (limited to 'storage')
-rw-r--r-- | storage/partitioning.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/storage/partitioning.py b/storage/partitioning.py index d548cdbe1..b9a55929f 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) |