Print this page
2741 format shouldn't allow write SMI label to disk with EFI partition

*** 1561,1584 **** /* Ask user what label to use */ fmt_print("[0] SMI Label\n"); fmt_print("[1] EFI Label\n"); ioparam.io_bounds.lower = 0; ioparam.io_bounds.upper = 1; ! if (cur_label == L_TYPE_SOLARIS) ! deflt = 0; else ! deflt = 1; defltptr = &deflt; choice = input(FIO_INT, "Specify Label type", ':', &ioparam, defltptr, DATA_INPUT); ! if ((choice == 0) && (cur_label == L_TYPE_SOLARIS)) { goto expert_end; ! } else if ((choice == 1) && (cur_label == L_TYPE_EFI)) { goto expert_end; } switch (choice) { ! case 0: /* * EFI label to SMI label */ if (cur_dtype->capacity > INFINITY) { fmt_print("Warning: SMI labels only support up to " --- 1561,1588 ---- /* Ask user what label to use */ fmt_print("[0] SMI Label\n"); fmt_print("[1] EFI Label\n"); ioparam.io_bounds.lower = 0; ioparam.io_bounds.upper = 1; ! if ((cur_label == L_TYPE_SOLARIS) && ! (cur_disk->fdisk_part.systid != EFI_PMBR)) ! deflt = L_TYPE_SOLARIS; else ! deflt = L_TYPE_EFI; defltptr = &deflt; choice = input(FIO_INT, "Specify Label type", ':', &ioparam, defltptr, DATA_INPUT); ! if ((choice == L_TYPE_SOLARIS) && ! (cur_label == L_TYPE_SOLARIS) && ! (cur_disk->fdisk_part.systid != EFI_PMBR)) { goto expert_end; ! } else if ((choice == L_TYPE_EFI) && ! (cur_label == L_TYPE_EFI)) { goto expert_end; } switch (choice) { ! case L_TYPE_SOLARIS: /* * EFI label to SMI label */ if (cur_dtype->capacity > INFINITY) { fmt_print("Warning: SMI labels only support up to "
*** 1646,1667 **** err_print("Label failed.\n"); return (-1); } ! case 1: /* * SMI label to EFI label */ ! ! fmt_print("Warning: This disk has an SMI label. Changing to " ! "EFI label will erase all\ncurrent partitions.\n"); ! if (check("Continue")) { return (-1); } if (get_disk_info(cur_file, &efinfo) != 0) { return (-1); } (void) memset((char *)&label, 0, sizeof (struct dk_label)); --- 1650,1673 ---- err_print("Label failed.\n"); return (-1); } ! case L_TYPE_EFI: /* * SMI label to EFI label */ ! if ((cur_disk->fdisk_part.systid == SUNIXOS) || ! (cur_disk->fdisk_part.systid == SUNIXOS2)) { ! fmt_print("Warning: This disk has an SMI label. " ! "Changing to EFI label will erase all\ncurrent " ! "partitions.\n"); if (check("Continue")) { return (-1); } + } if (get_disk_info(cur_file, &efinfo) != 0) { return (-1); } (void) memset((char *)&label, 0, sizeof (struct dk_label));