@@ -527,22 +527,24 @@ def configureNTP(mounts, ntp_config_method, ntp_servers):
527527def partitionTargetDisk (disk , existing , preserve_first_partition , create_sr_part ):
528528 logger .log ("Installer booted in %s mode" % ("UEFI" if constants .UEFI_INSTALLER else "legacy" ))
529529
530+ (PRIMARY , BACKUP , STORAGE , BOOT , LOGS , SWAP ) = list (range (6 ))
531+
530532 primary_part = 1
531533 if existing :
532534 # upgrade, use existing partitioning scheme
533535 tool = PartitionTool (existing .primary_disk )
534536
535537 primary_part = tool .partitionNumber (existing .root_device )
536538
539+ part_nums = list (range (primary_part , primary_part + 6 ))
540+
537541 # Determine target install's boot mode and boot partition number
538542 target_boot_mode = TARGET_BOOT_MODE_LEGACY
539543 if existing .boot_device :
540- boot_partnum = tool .partitionNumber (existing .boot_device )
541- boot_part = tool .getPartition (boot_partnum )
544+ part_nums [ BOOT ] = tool .partitionNumber (existing .boot_device )
545+ boot_part = tool .getPartition (part_nums [ BOOT ] )
542546 if 'id' in boot_part and boot_part ['id' ] == GPTPartitionTool .ID_EFI_BOOT :
543547 target_boot_mode = TARGET_BOOT_MODE_UEFI
544- else :
545- boot_partnum = primary_part + 3
546548
547549 if (target_boot_mode == TARGET_BOOT_MODE_UEFI and not constants .UEFI_INSTALLER ) or \
548550 (target_boot_mode == TARGET_BOOT_MODE_LEGACY and constants .UEFI_INSTALLER ):
@@ -552,11 +554,10 @@ def partitionTargetDisk(disk, existing, preserve_first_partition, create_sr_part
552554 logger .log ("Upgrading, target_boot_mode: %s" % target_boot_mode )
553555
554556 # Return install mode and numbers of primary, backup, SR, boot, log and swap partitions
555- storage_partition = tool .getPartition (primary_part + 2 )
556- if storage_partition :
557- return (target_boot_mode , primary_part , primary_part + 1 , primary_part + 2 , boot_partnum , primary_part + 4 , primary_part + 5 )
558- else :
559- return (target_boot_mode , primary_part , primary_part + 1 , 0 , boot_partnum , primary_part + 4 , primary_part + 5 )
557+ storage_partition = tool .getPartition (part_nums [STORAGE ])
558+ if not storage_partition :
559+ part_nums [STORAGE ] = 0
560+ return tuple ([target_boot_mode ] + part_nums )
560561
561562 tool = PartitionTool (disk )
562563
@@ -576,17 +577,18 @@ def partitionTargetDisk(disk, existing, preserve_first_partition, create_sr_part
576577 if primary_part > 2 :
577578 raise RuntimeError ("Installer only supports a single Utility Partition at partition 1, but found Utility Partitions at %s" % str (utilparts ))
578579
579- sr_part = - 1
580- if create_sr_part :
581- sr_part = primary_part + 2
580+ part_nums = list (range (primary_part , primary_part + 6 ))
581+
582+ if not create_sr_part :
583+ part_nums [STORAGE ] = - 1
582584
583- boot_part = max (primary_part + 1 , sr_part ) + 1
585+ part_nums [ BOOT ] = max (primary_part + 1 , part_nums [ STORAGE ] ) + 1
584586
585587 target_boot_mode = TARGET_BOOT_MODE_UEFI if constants .UEFI_INSTALLER else TARGET_BOOT_MODE_LEGACY
586588
587589 logger .log ("Fresh install, target_boot_mode: %s" % target_boot_mode )
588590
589- return ( target_boot_mode , primary_part , primary_part + 1 , sr_part , boot_part , primary_part + 4 , primary_part + 5 )
591+ return tuple ([ target_boot_mode ] + part_nums )
590592
591593def removeBlockingVGs (disks ):
592594 for vg in diskutil .findProblematicVGs (disks ):
0 commit comments