[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[rhel6-branch] Make sure /boot is on the same disk as prepboot (#727136)



If there is no separate /boot partition, treat the
root partition as the /boot partition, because that's
where /boot will end up.
---
 storage/partitioning.py |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/storage/partitioning.py b/storage/partitioning.py
index a6a5f81..20d79af 100644
--- a/storage/partitioning.py
+++ b/storage/partitioning.py
@@ -991,6 +991,15 @@ def allocatePartitions(storage, disks, partitions, freespace):
 
     removeNewPartitions(disks, new_partitions)
 
+    # Search for the /boot partition.
+    # If there is not a separate /boot partition,
+    # the /boot will end up on the / partition.
+    # We need this later for apple's bootstrap and prepboot,
+    # because this partition needs to be on the same disk
+    # as bootstrap/prepboot partition.
+    _mountpoints = [getattr(part.format, "mountpoint", "") for part in new_partitions]
+    _boot_part = "/boot" if "/boot" in _mountpoints else "/"
+
     for _part in new_partitions:
         if _part.partedPartition and _part.isExtended:
             # ignore new extendeds as they are implicit requests
@@ -1183,7 +1192,7 @@ def allocatePartitions(storage, disks, partitions, freespace):
             if not mountpoint:
                 mountpoint = ""
 
-            if free and (_part.req_bootable or mountpoint.startswith("/boot")):
+            if free and (_part.req_bootable or mountpoint.startswith(_boot_part)):
                 # if this is a bootable partition we want to
                 # use the first freespace region large enough
                 # to satisfy the request
-- 
1.7.5.4


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]