summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
Diffstat (limited to 'storage')
-rw-r--r--storage/partitioning.py16
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)