7084646 Backup Slice size is set incorrectly
authorDrew Fisher <drew.fisher@oracle.com>
Tue, 30 Aug 2011 08:54:37 -0600
changeset 1429 b1bf73de27e6
parent 1428 fc362e78a1b6
child 1430 5195422af343
7084646 Backup Slice size is set incorrectly
usr/src/lib/install_target/physical.py
--- a/usr/src/lib/install_target/physical.py	Tue Aug 30 08:53:02 2011 -0600
+++ b/usr/src/lib/install_target/physical.py	Tue Aug 30 08:54:37 2011 -0600
@@ -1192,16 +1192,19 @@
         backup.p_flag = const.V_UNMNT
         backup.p_start = FIRST_CYL
 
-        # On x86, slice 2 needs to be 3 cylinders smaller than the size of the
-        # entire disk.  1 cylinder is used by the MBR and 2 cylinders are used
-        # by the VTOC label itself.  There is no need to adjust SPARC sizes.
+        # On x86, slice 2 needs to be the size of the solaris2 partition.  For
+        # SPARC, simply use the entire size of the disk.
         if self.kernel_arch == "x86":
-            backup.p_size = (self.geometry.ncyl - 3) * nsecs
+            # find the solaris2 partition for this disk to set the size of the
+            # backup slice
+            for part in self.get_children(class_type=Partition):
+                if part.is_solaris:
+                    backup.p_size = part.size.sectors
         else:
             backup.p_size = self.geometry.ncyl * nsecs
 
         slices[2] = backup
-        
+
         if self.kernel_arch == "x86":
             # Create slice 8 (BOOT) - allocates 1st cylinder
             boot = cstruct.extpartition()