Changeset 2323 in MondoRescue for branches/2.2.10/mondo/src/mondorestore/mondo-prep.c
- Timestamp:
- Aug 18, 2009, 3:05:43 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/mondorestore/mondo-prep.c
r2316 r2323 79 79 make_list_of_drives_in_mountlist(mountlist, drivelist); 80 80 for (lino = 0; lino < drivelist->entries; lino++) { 81 mr_asprintf( &command, "dd if=%s bs=512 count=1 2> /dev/null | grep \"%s\"", drivelist->el[lino].device, MONDO_WAS_HERE);81 mr_asprintf(command, "dd if=%s bs=512 count=1 2> /dev/null | grep \"%s\"", drivelist->el[lino].device, MONDO_WAS_HERE); 82 82 res = run_program_and_log_output(command, 1); 83 83 mr_free(command); … … 258 258 strcpy(vgremove_sz, "vgremove"); 259 259 } 260 mr_asprintf( &tmp1, "for i in `%s | cut -d\"'\" -f2 | sort -r` ; do echo \"Shutting down lv $i\" >> %s ; %s -f $i; done", lvscan_sz, MONDO_LOGFILE, lvremove_sz);260 mr_asprintf(tmp1, "for i in `%s | cut -d\"'\" -f2 | sort -r` ; do echo \"Shutting down lv $i\" >> %s ; %s -f $i; done", lvscan_sz, MONDO_LOGFILE, lvremove_sz); 261 261 run_program_and_log_output(tmp1, 5); 262 262 mr_free(tmp1); … … 305 305 *q = '\0'; 306 306 log_msg(1, "Deleting old entries at /dev/%s", tmp); 307 mr_asprintf( &tmp1, "rm -Rf /dev/%s", tmp);307 mr_asprintf(tmp1, "rm -Rf /dev/%s", tmp); 308 308 run_program_and_log_output(tmp1, 1); 309 309 mr_free(tmp1); … … 335 335 log_it("%s... so I'll get creative.", tmp); 336 336 if (lvmversion == 2) { 337 mr_asprintf( &tmp1, "tail -n5 %s | grep Insufficient | tail -n1", MONDO_LOGFILE);337 mr_asprintf(tmp1, "tail -n5 %s | grep Insufficient | tail -n1", MONDO_LOGFILE); 338 338 strcpy(tmp, call_program_and_get_last_line_of_output(tmp1)); 339 339 mr_free(tmp1); 340 340 } else { 341 mr_asprintf( &tmp1, "tail -n5 %s | grep lvcreate | tail -n1", MONDO_LOGFILE);341 mr_asprintf(tmp1, "tail -n5 %s | grep lvcreate | tail -n1", MONDO_LOGFILE); 342 342 strcpy(tmp, call_program_and_get_last_line_of_output(tmp1)); 343 343 mr_free(tmp1); … … 393 393 retval++; 394 394 } 395 mr_asprintf( &tmp1, "echo \"%s\" >> /tmp/out.sh", command);395 mr_asprintf(tmp1, "echo \"%s\" >> /tmp/out.sh", command); 396 396 system(tmp1); 397 397 mr_free(tmp1); … … 484 484 fgets(incoming, MAX_STR_LEN - 1, fin)); 485 485 if (!feof(fin)) { 486 mr_asprintf( &tmp, "Investigating %s", old_mountlist->el[lino].device);486 mr_asprintf(tmp, "Investigating %s", old_mountlist->el[lino].device); 487 487 log_it(tmp); 488 488 mr_free(tmp); … … 497 497 *p = '\0'; 498 498 for (p--; p > incoming && *(p - 1) > 32; p--); 499 mr_asprintf( &tmp, "Extrapolating %s", p);499 mr_asprintf(tmp, "Extrapolating %s", p); 500 500 log_it(tmp); 501 501 mr_free(tmp); … … 518 518 new_mountlist->entries++; 519 519 } else { 520 mr_asprintf( &tmp, "Not adding %s to mountlist: it's already there", p);520 mr_asprintf(tmp, "Not adding %s to mountlist: it's already there", p); 521 521 log_it(tmp); 522 522 mr_free(tmp); … … 582 582 } 583 583 // create device list from normal disks followed by spare ones 584 mr_asprintf( &devices, "%s", raidlist->el[i].data_disks.el[0].device);584 mr_asprintf(devices, "%s", raidlist->el[i].data_disks.el[0].device); 585 585 for (j = 1; j < raidlist->el[i].data_disks.entries; j++) { 586 mr_asprintf( &strtmp, "%s", devices);586 mr_asprintf(strtmp, "%s", devices); 587 587 paranoid_free(devices); 588 mr_asprintf( &devices, "%s %s", strtmp,588 mr_asprintf(devices, "%s %s", strtmp, 589 589 raidlist->el[i].data_disks.el[j].device); 590 590 paranoid_free(strtmp); 591 591 } 592 592 for (j = 0; j < raidlist->el[i].spare_disks.entries; j++) { 593 mr_asprintf( &strtmp, "%s", devices);593 mr_asprintf(strtmp, "%s", devices); 594 594 paranoid_free(devices); 595 mr_asprintf( &devices, "%s %s", strtmp,595 mr_asprintf(devices, "%s %s", strtmp, 596 596 raidlist->el[i].spare_disks.el[j].device); 597 597 paranoid_free(strtmp); … … 599 599 // translate RAID level 600 600 if (raidlist->el[i].raid_level == -2) { 601 mr_asprintf( &level, "multipath");601 mr_asprintf(level, "multipath"); 602 602 } else if (raidlist->el[i].raid_level == -1) { 603 mr_asprintf( &level, "linear");603 mr_asprintf(level, "linear"); 604 604 } else { 605 mr_asprintf( &level, "raid%d", raidlist->el[i].raid_level);605 mr_asprintf(level, "raid%d", raidlist->el[i].raid_level); 606 606 } 607 607 // create RAID device: … … 610 610 // - faulty devices ignored 611 611 // - persistent superblock always used as this is recommended 612 mr_asprintf( &program, "mdadm --create --force --run --auto=yes %s --level=%s --raid-devices=%d", raidlist->el[i].raid_device, level, raidlist->el[i].data_disks.entries);612 mr_asprintf(program, "mdadm --create --force --run --auto=yes %s --level=%s --raid-devices=%d", raidlist->el[i].raid_device, level, raidlist->el[i].data_disks.entries); 613 613 if (raidlist->el[i].parity != -1) { 614 mr_asprintf( &strtmp, "%s", program);614 mr_asprintf(strtmp, "%s", program); 615 615 paranoid_free(program); 616 616 switch(raidlist->el[i].parity) { 617 617 case 0: 618 mr_asprintf( &program, "%s --parity=%s", strtmp, "la");618 mr_asprintf(program, "%s --parity=%s", strtmp, "la"); 619 619 break; 620 620 case 1: 621 mr_asprintf( &program, "%s --parity=%s", strtmp, "ra");621 mr_asprintf(program, "%s --parity=%s", strtmp, "ra"); 622 622 break; 623 623 case 2: 624 mr_asprintf( &program, "%s --parity=%s", strtmp, "ls");624 mr_asprintf(program, "%s --parity=%s", strtmp, "ls"); 625 625 break; 626 626 case 3: 627 mr_asprintf( &program, "%s --parity=%s", strtmp, "rs");627 mr_asprintf(program, "%s --parity=%s", strtmp, "rs"); 628 628 break; 629 629 default: … … 634 634 } 635 635 if (raidlist->el[i].chunk_size != -1) { 636 mr_asprintf( &strtmp, "%s", program);636 mr_asprintf(strtmp, "%s", program); 637 637 paranoid_free(program); 638 mr_asprintf( &program, "%s --chunk=%d", strtmp, raidlist->el[i].chunk_size);638 mr_asprintf(program, "%s --chunk=%d", strtmp, raidlist->el[i].chunk_size); 639 639 paranoid_free(strtmp); 640 640 } 641 641 if (raidlist->el[i].spare_disks.entries > 0) { 642 mr_asprintf( &strtmp, "%s", program);642 mr_asprintf(strtmp, "%s", program); 643 643 paranoid_free(program); 644 mr_asprintf( &program, "%s --spare-devices=%d", strtmp, raidlist->el[i].spare_disks.entries);644 mr_asprintf(program, "%s --spare-devices=%d", strtmp, raidlist->el[i].spare_disks.entries); 645 645 paranoid_free(strtmp); 646 646 } 647 mr_asprintf( &strtmp, "%s", program);647 mr_asprintf(strtmp, "%s", program); 648 648 paranoid_free(program); 649 mr_asprintf( &program, "%s %s", strtmp, devices);649 mr_asprintf(program, "%s %s", strtmp, devices); 650 650 paranoid_free(strtmp); 651 651 res = run_program_and_log_output(program, 1); … … 688 688 689 689 if (strstr(format, "raid")) { // do not form RAID disks; do it to /dev/md* instead 690 mr_asprintf( &tmp, "Not formatting %s (it is a RAID disk)", device);690 mr_asprintf(tmp, "Not formatting %s (it is a RAID disk)", device); 691 691 log_it(tmp); 692 692 mr_free(tmp); … … 700 700 #endif 701 701 if (strlen(format) <= 2) { 702 mr_asprintf( &tmp, "%s has a really small format type ('%s') - this is probably a hexadecimal string, which would suggest the partition is an image --- I shouldn't format it", device, format);702 mr_asprintf(tmp, "%s has a really small format type ('%s') - this is probably a hexadecimal string, which would suggest the partition is an image --- I shouldn't format it", device, format); 703 703 log_it(tmp); 704 704 mr_free(tmp); … … 706 706 } 707 707 if (is_this_device_mounted(device)) { 708 mr_asprintf( &tmp, "%s is mounted - cannot format it ", device);708 mr_asprintf(tmp, "%s is mounted - cannot format it ", device); 709 709 log_to_screen(tmp); 710 710 mr_free(tmp); … … 736 736 char line[MAX_STR_LEN]; 737 737 738 mr_asprintf( &tmp, "Initializing Vinum device %s (this may take a *long* time)", device);738 mr_asprintf(tmp, "Initializing Vinum device %s (this may take a *long* time)", device); 739 739 log_to_screen(tmp); 740 740 mr_free(tmp); 741 741 742 742 /* format raid partition */ 743 mr_asprintf( &program, "for plex in `vinum lv -r %s | grep '^P' | tr '\t' ' ' | tr -s ' ' | cut -d' ' -f2`; do echo $plex; done > /tmp/plexes", basename(device));743 mr_asprintf(program, "for plex in `vinum lv -r %s | grep '^P' | tr '\t' ' ' | tr -s ' ' | cut -d' ' -f2`; do echo $plex; done > /tmp/plexes", basename(device)); 744 744 system(program); 745 745 if (g_fprep) { … … 753 753 *(strchr(line, '\n')) = '\0'; // get rid of the \n on the end 754 754 755 mr_asprintf( &tmp, "Initializing plex: %s", line);755 mr_asprintf(tmp, "Initializing plex: %s", line); 756 756 open_evalcall_form(tmp); 757 757 mr_free(tmp); 758 758 759 mr_asprintf( &tmp, "vinum init %s", line);759 mr_asprintf(tmp, "vinum init %s", line); 760 760 system(tmp); 761 761 mr_free(tmp); 762 762 763 763 while (1) { 764 mr_asprintf( &tmp, "vinum lp -r %s | grep '^S' | head -1 | tr -s ' ' | cut -d: -f2 | cut -f1 | sed 's/^ //' | sed 's/I //' | sed 's/%%//'", line);764 mr_asprintf(tmp, "vinum lp -r %s | grep '^S' | head -1 | tr -s ' ' | cut -d: -f2 | cut -f1 | sed 's/^ //' | sed 's/I //' | sed 's/%%//'", line); 765 765 FILE *pin = popen(tmp, "r"); 766 766 mr_free(tmp); … … 782 782 } 783 783 #else 784 mr_asprintf( &tmp, "Initializing RAID device %s", device);784 mr_asprintf(tmp, "Initializing RAID device %s", device); 785 785 log_to_screen(tmp); 786 786 mr_free(tmp); … … 798 798 log_msg(1, "Creating RAID device %s via mdadm returned %d", device, res); 799 799 } else { 800 mr_asprintf( &program, "mkraid --really-force %s", device);800 mr_asprintf(program, "mkraid --really-force %s", device); 801 801 res = run_program_and_log_output(program, 1); 802 802 log_msg(1, "%s returned %d", program, res); … … 822 822 } 823 823 program = which_format_command_do_i_need(format); 824 mr_asprintf( &tmp, "%s %s", program, device);824 mr_asprintf(tmp, "%s %s", program, device); 825 825 if (strstr(program, "kludge")) { 826 826 mr_strcat(tmp, " /"); … … 828 828 mr_free(program); 829 829 830 mr_asprintf( &program, "sh -c 'echo -en \"y\\ny\\ny\\n\" | %s'", tmp);830 mr_asprintf(program, "sh -c 'echo -en \"y\\ny\\ny\\n\" | %s'", tmp); 831 831 mr_free(tmp); 832 832 833 mr_asprintf( &tmp, "Formatting %s as %s", device, format);833 mr_asprintf(tmp, "Formatting %s as %s", device, format); 834 834 update_progress_form(tmp); 835 835 mr_free(tmp); … … 848 848 mr_free(program); 849 849 #ifdef __FreeBSD__ 850 mr_asprintf( &program, "newfs_msdos -F 32 %s", device);850 mr_asprintf(program, "newfs_msdos -F 32 %s", device); 851 851 #else 852 852 #ifdef __IA64__ 853 853 /* For EFI partitions take fat16 854 854 * as we want to make small ones */ 855 mr_asprintf( &program, "mkfs -t %s -F 16 %s", format, device);855 mr_asprintf(program, "mkfs -t %s -F 16 %s", format, device); 856 856 #else 857 mr_asprintf( &program, "mkfs -t %s -F 32 %s", format, device);857 mr_asprintf(program, "mkfs -t %s -F 32 %s", format, device); 858 858 #endif 859 859 #endif … … 911 911 912 912 assert(mountlist != NULL); 913 mr_asprintf( &tmp, "format_everything (mountlist, interactively = %s", (interactively) ? "true" : "false");913 mr_asprintf(tmp, "format_everything (mountlist, interactively = %s", (interactively) ? "true" : "false"); 914 914 log_it(tmp); 915 915 mr_free(tmp); … … 939 939 if (interactively) { 940 940 // ask user if we should format the current device 941 mr_asprintf( &tmp, "Shall I format %s (%s) ?", me->device, me->mountpoint);941 mr_asprintf(tmp, "Shall I format %s (%s) ?", me->device, me->mountpoint); 942 942 do_it = ask_me_yes_or_no(tmp); 943 943 mr_free(tmp); … … 989 989 me = &mountlist->el[lino]; // the current mountlist entry 990 990 if (!strcmp(me->mountpoint, "image")) { 991 mr_asprintf( &tmp, "Not formatting %s - it's an image", me->device);991 mr_asprintf(tmp, "Not formatting %s - it's an image", me->device); 992 992 log_it(tmp); 993 993 mr_free(tmp); 994 994 } else if (!strcmp(me->format, "raid")) { 995 mr_asprintf( &tmp, "Not formatting %s - it's a raid-let", me->device);995 mr_asprintf(tmp, "Not formatting %s - it's a raid-let", me->device); 996 996 log_it(tmp); 997 997 mr_free(tmp); 998 998 continue; 999 999 } else if (!strcmp(me->format, "lvm")) { 1000 mr_asprintf( &tmp, "Not formatting %s - it's an LVM", me->device);1000 mr_asprintf(tmp, "Not formatting %s - it's an LVM", me->device); 1001 1001 log_it(tmp); 1002 1002 mr_free(tmp); 1003 1003 continue; 1004 1004 } else if (!strncmp(me->device, "/dev/md", 7)) { 1005 mr_asprintf( &tmp, "Already formatted %s - it's a soft-RAID dev", me->device);1005 mr_asprintf(tmp, "Already formatted %s - it's a soft-RAID dev", me->device); 1006 1006 log_it(tmp); 1007 1007 mr_free(tmp); … … 1010 1010 && strncmp(me->device, "/dev/hd", 7) 1011 1011 && strncmp(me->device, "/dev/sd", 7)) { 1012 mr_asprintf( &tmp, "Not formatting %s yet - doesn't exist - probably an LVM", me->device);1012 mr_asprintf(tmp, "Not formatting %s yet - doesn't exist - probably an LVM", me->device); 1013 1013 log_it(tmp); 1014 1014 mr_free(tmp); … … 1017 1017 if (interactively) { 1018 1018 // ask user if we should format the current device 1019 mr_asprintf( &tmp, "Shall I format %s (%s) ?", me->device, me->mountpoint);1019 mr_asprintf(tmp, "Shall I format %s (%s) ?", me->device, me->mountpoint); 1020 1020 do_it = ask_me_yes_or_no(tmp); 1021 1021 mr_free(tmp); … … 1048 1048 } 1049 1049 1050 mr_asprintf( &tmp, "format_everything () - %s", (retval) ? "failed!" : "finished successfully");1050 mr_asprintf(tmp, "format_everything () - %s", (retval) ? "failed!" : "finished successfully"); 1051 1051 log_it(tmp); 1052 1052 mr_free(tmp); … … 1111 1111 1112 1112 if (devno_we_must_allow_for >= 5) { 1113 mr_asprintf( &tmp, "Making dummy primary 1 on %s", drivename);1113 mr_asprintf(tmp, "Making dummy primary 1 on %s", drivename); 1114 1114 log_it(tmp); 1115 1115 mr_free(tmp); … … 1127 1127 } 1128 1128 for (; current_devno < devno_we_must_allow_for; current_devno++) { 1129 mr_asprintf( &tmp, "Creating dummy partition %d on %s", current_devno, drivename);1129 mr_asprintf(tmp, "Creating dummy partition %d on %s", current_devno, drivename); 1130 1130 log_it(tmp); 1131 1131 mr_free(tmp); … … 1360 1360 for (c = 'a'; c <= 'z'; ++c) { 1361 1361 int idx; 1362 mr_asprintf( &subdev_str, "%s%c", drivename, c);1362 mr_asprintf(subdev_str, "%s%c", drivename, c); 1363 1363 if ((idx = find_device_in_mountlist(mountlist, subdev_str)) < 0) { 1364 1364 lp->d_partitions[c - 'a'].p_size = 0; … … 1416 1416 display_disklabel(ftmp, lp); 1417 1417 fclose(ftmp); 1418 mr_asprintf( &command, "disklabel -wr %s auto", canonical_name(drivename));1418 mr_asprintf(command, "disklabel -wr %s auto", canonical_name(drivename)); 1419 1419 retval += run_program_and_log_output(command, TRUE); 1420 1420 mr_free(command); 1421 1421 1422 mr_asprintf( &command, "disklabel -R %s /tmp/disklabel", canonical_name(drivename));1422 mr_asprintf(command, "disklabel -R %s /tmp/disklabel", canonical_name(drivename)); 1423 1423 retval += run_program_and_log_output(command, TRUE); 1424 1424 mr_free(command); … … 1468 1468 malloc_string(format); 1469 1469 1470 mr_asprintf( &tmp, "Partitioning drive %s", drivename);1470 mr_asprintf(tmp, "Partitioning drive %s", drivename); 1471 1471 log_it(tmp); 1472 1472 mr_free(tmp); … … 1477 1477 #else 1478 1478 make_hole_for_file(FDISK_LOG); 1479 mr_asprintf( &tmp, "parted2fdisk %s >> %s 2>> %s", drivename, FDISK_LOG, FDISK_LOG);1479 mr_asprintf(tmp, "parted2fdisk %s >> %s 2>> %s", drivename, FDISK_LOG, FDISK_LOG); 1480 1480 pout_to_fdisk = popen(tmp, "w"); 1481 1481 mr_free(tmp); … … 1500 1500 // try DangerouslyDedicated mode 1501 1501 for (c = 'a'; c <= 'z'; c++) { 1502 mr_asprintf( &subdev_str, "%s%c", drivename, c);1502 mr_asprintf(subdev_str, "%s%c", drivename, c); 1503 1503 if (find_device_in_mountlist(mountlist, subdev_str) > 0) { 1504 1504 fbsd_part = TRUE; … … 1510 1510 drivename, 1511 1511 0); 1512 mr_asprintf( &command, "disklabel -B %s", basename(drivename));1512 mr_asprintf(command, "disklabel -B %s", basename(drivename)); 1513 1513 if (system(command)) { 1514 1514 log_to_screen … … 1522 1522 } 1523 1523 for (c = 'a'; c <= 'z'; c++) { 1524 mr_asprintf( &subdev_str, "%s%c", device_str, c);1524 mr_asprintf(subdev_str, "%s%c", device_str, c); 1525 1525 if (find_device_in_mountlist(mountlist, subdev_str) > 0) { 1526 1526 fbsd_part = TRUE; … … 1535 1535 partsize = 0; 1536 1536 for (i = 'a'; i < 'z'; ++i) { 1537 mr_asprintf( &subdev_str, "%s%c", device_str, i);1537 mr_asprintf(subdev_str, "%s%c", device_str, i); 1538 1538 line = find_device_in_mountlist(mountlist, subdev_str); 1539 1539 mr_free(subdev_str); … … 1565 1565 file = open(drivename, O_WRONLY); 1566 1566 if (file != -1) { 1567 mr_asprintf( &tmp, "Warning - unable to open %s for wiping it's partition table", drivename);1567 mr_asprintf(tmp, "Warning - unable to open %s for wiping it's partition table", drivename); 1568 1568 log_to_screen(tmp); 1569 1569 mr_free(tmp); … … 1572 1572 for (i = 0; i < 512; i++) { 1573 1573 if (!write(file, "\0", 1)) { 1574 mr_asprintf( &tmp, "Warning - unable to write to %s", drivename);1574 mr_asprintf(tmp, "Warning - unable to write to %s", drivename); 1575 1575 log_to_screen(tmp); 1576 1576 mr_free(tmp); … … 1618 1618 #ifdef __FreeBSD__ 1619 1619 if ((current_devno <= 4) && fbsd_part) { 1620 mr_asprintf( &tmp, "disklabel -B %s", basename(device_str));1620 mr_asprintf(tmp, "disklabel -B %s", basename(device_str)); 1621 1621 retval += label_drive_or_slice(mountlist, device_str, 0); 1622 1622 if (system(tmp)) { … … 1634 1634 if (pout_to_fdisk) { 1635 1635 // mark relevant partition as bootable 1636 mr_asprintf( &tmp, "a\n%s\n", call_program_and_get_last_line_of_output("make-me-bootable /tmp/mountlist.txt dummy"));1636 mr_asprintf(tmp, "a\n%s\n", call_program_and_get_last_line_of_output ("make-me-bootable /tmp/mountlist.txt dummy")); 1637 1637 fput_string_one_char_at_a_time(pout_to_fdisk, tmp); 1638 1638 mr_free(tmp); … … 1644 1644 log_msg(0, 1645 1645 "------------------- fdisk.log looks like this ------------------"); 1646 mr_asprintf( &tmp, "cat %s >> %s", FDISK_LOG, MONDO_LOGFILE);1646 mr_asprintf(tmp, "cat %s >> %s", FDISK_LOG, MONDO_LOGFILE); 1647 1647 system(tmp); 1648 1648 mr_free(tmp); … … 1650 1650 log_msg(0, 1651 1651 "------------------- end of fdisk.log... word! ------------------"); 1652 mr_asprintf( &tmp, "tail -n6 %s | grep -F \"16: \"", FDISK_LOG);1652 mr_asprintf(tmp, "tail -n6 %s | grep -F \"16: \"", FDISK_LOG); 1653 1653 if (!run_program_and_log_output(tmp, 5)) { 1654 1654 g_partition_table_locked_up++; … … 1656 1656 mr_free(tmp); 1657 1657 1658 mr_asprintf( &tmp, "partprobe %s", drivename);1658 mr_asprintf(tmp, "partprobe %s", drivename); 1659 1659 if (!run_program_and_log_output(tmp, 5)) { 1660 1660 g_partition_table_locked_up--; … … 1708 1708 1709 1709 if (!strncmp(drive, RAID_DEVICE_STUB, strlen(RAID_DEVICE_STUB))) { 1710 mr_asprintf( &tmp, "Not partitioning %s - it is a virtual drive", drive);1710 mr_asprintf(tmp, "Not partitioning %s - it is a virtual drive", drive); 1711 1711 log_it(tmp); 1712 1712 mr_free(tmp); … … 1716 1716 partition_name = build_partition_name(drive, partno); 1717 1717 if (partsize <= 0) { 1718 mr_asprintf( &tmp, "Partitioning device %s (max size)", partition_name);1718 mr_asprintf(tmp, "Partitioning device %s (max size)", partition_name); 1719 1719 } else { 1720 mr_asprintf( &tmp, "Partitioning device %s (%lld MB)", partition_name, (long long) partsize / 1024);1720 mr_asprintf(tmp, "Partitioning device %s (%lld MB)", partition_name, (long long) partsize / 1024); 1721 1721 } 1722 1722 update_progress_form(tmp); … … 1725 1725 1726 1726 if (is_this_device_mounted(partition_name)) { 1727 mr_asprintf( &tmp, "%s is mounted, and should not be partitioned", partition_name);1727 mr_asprintf(tmp, "%s is mounted, and should not be partitioned", partition_name); 1728 1728 log_to_screen(tmp); 1729 1729 mr_free(tmp); … … 1737 1737 /* BERLIOS: should not be called each time */ 1738 1738 part_table_fmt = which_partition_format(drive); 1739 mr_asprintf( &output, "");1739 mr_asprintf(output, ""); 1740 1740 /* make it a primary/extended/logical */ 1741 1741 if (partno <= 4) { … … 1769 1769 } 1770 1770 mr_strcat(output, "\n"); 1771 mr_asprintf( &tmp,"PARTSIZE = +%ld",(long)partsize);1771 mr_asprintf(tmp,"PARTSIZE = +%ld",(long)partsize); 1772 1772 log_it(tmp); 1773 1773 mr_free(tmp); … … 1777 1777 log_it("---end of fdisk---"); 1778 1778 1779 mr_asprintf( &program, "parted2fdisk %s >> %s 2>> %s", drive, MONDO_LOGFILE, MONDO_LOGFILE);1779 mr_asprintf(program, "parted2fdisk %s >> %s 2>> %s", drive, MONDO_LOGFILE, MONDO_LOGFILE); 1780 1780 if (pout_to_fdisk) { 1781 1781 log_msg(1, "Doing the new all-in-one fdisk thing"); … … 1783 1783 fput_string_one_char_at_a_time(pout_to_fdisk, output); 1784 1784 fput_string_one_char_at_a_time(pout_to_fdisk, "\n\np\n"); 1785 mr_asprintf( &tmp, "%s", last_line_of_file(FDISK_LOG));1785 mr_asprintf(tmp, "%s", last_line_of_file(FDISK_LOG)); 1786 1786 if (strstr(tmp, " (m ")) { 1787 1787 log_msg(1, "Successfully created partition %d on %s", partno, drive); … … 1826 1826 format, -1); 1827 1827 if (res) { 1828 mr_asprintf( &tmp, "Failed to vacuum-pack %s", partition_name);1828 mr_asprintf(tmp, "Failed to vacuum-pack %s", partition_name); 1829 1829 log_it(tmp); 1830 1830 mr_free(tmp); … … 1840 1840 partsize); 1841 1841 if (retval) { 1842 mr_asprintf( &tmp, "Partitioned %s but failed to set its type", partition_name);1842 mr_asprintf(tmp, "Partitioned %s but failed to set its type", partition_name); 1843 1843 log_it(tmp); 1844 1844 mr_free(tmp); 1845 1845 } else { 1846 1846 if (partsize > 0) { 1847 mr_asprintf( &tmp, "Partition %s created+configured OK", partition_name);1847 mr_asprintf(tmp, "Partition %s created+configured OK", partition_name); 1848 1848 log_to_screen(tmp); 1849 1849 mr_free(tmp); … … 1853 1853 } 1854 1854 } else { 1855 mr_asprintf( &tmp, "Failed to partition %s", partition_name);1855 mr_asprintf(tmp, "Failed to partition %s", partition_name); 1856 1856 if (partsize > 0) { 1857 1857 log_to_screen(tmp); … … 1997 1997 p = (char *) strrchr(partition, '/'); 1998 1998 if (strcmp(format, "swap") == 0) { 1999 mr_asprintf( &partcode, "82");1999 mr_asprintf(partcode, "82"); 2000 2000 } else if (strcmp(format, "vfat") == 0) { 2001 2001 if (partsize / 1024 > 8192) { 2002 mr_asprintf( &partcode, "c");2002 mr_asprintf(partcode, "c"); 2003 2003 } else { 2004 mr_asprintf( &partcode, "b");2004 mr_asprintf(partcode, "b"); 2005 2005 } 2006 2006 } else if (strcmp(format, "ext2") == 0 … … 2010 2010 || strcmp(format, "xfs") == 0 2011 2011 || strcmp(format, "jfs") == 0) { 2012 mr_asprintf( &partcode, "83");2012 mr_asprintf(partcode, "83"); 2013 2013 } else if (strcmp(format, "minix") == 0) { 2014 mr_asprintf( &partcode, "81");2014 mr_asprintf(partcode, "81"); 2015 2015 } else if (strcmp(format, "vmfs3") == 0) { 2016 mr_asprintf( &partcode, "fb");2016 mr_asprintf(partcode, "fb"); 2017 2017 } else if (strcmp(format, "vmkcore") == 0) { 2018 mr_asprintf( &partcode, "fc");2018 mr_asprintf(partcode, "fc"); 2019 2019 } else if (strcmp(format, "raid") == 0) { 2020 mr_asprintf( &partcode, "fd");2020 mr_asprintf(partcode, "fd"); 2021 2021 } else if (strcmp(format, "ntfs") == 0) { 2022 mr_asprintf( &partcode, "7");2022 mr_asprintf(partcode, "7"); 2023 2023 } else if ((strcmp(format, "ufs") == 0) 2024 2024 || (strcmp(format, "ffs") == 0)) { /* raid autodetect */ 2025 mr_asprintf( &partcode, "a5");2025 mr_asprintf(partcode, "a5"); 2026 2026 } else if (strcmp(format, "lvm") == 0) { 2027 mr_asprintf( &partcode, "8e");2027 mr_asprintf(partcode, "8e"); 2028 2028 } else if (format[0] == '\0') { /* LVM physical partition */ 2029 mr_asprintf( &partcode, "");2029 mr_asprintf(partcode, ""); 2030 2030 } else if (strlen(format) >= 1 && strlen(format) <= 2) { 2031 mr_asprintf( &partcode, format);2031 mr_asprintf(partcode, format); 2032 2032 } else { 2033 2033 /* probably an image */ 2034 mr_asprintf( &tmp, "Unknown format ('%s') - using supplied string anyway", format);2034 mr_asprintf(tmp, "Unknown format ('%s') - using supplied string anyway", format); 2035 2035 mvaddstr_and_log_it(g_currentY++, 0, tmp); 2036 2036 mr_free(tmp); 2037 2037 #ifdef __FreeBSD__ 2038 mr_asprintf( &partcode, format); // was a52038 mr_asprintf(partcode, format); // was a5 2039 2039 #else 2040 mr_asprintf( &partcode, format); // was 832040 mr_asprintf(partcode, format); // was 83 2041 2041 #endif 2042 2042 } … … 2052 2052 || strstr(last_line_of_file(FDISK_LOG), " (1-4)")) { 2053 2053 log_msg(5, "Specifying partno (%d) - yay", partno); 2054 mr_asprintf( &tmp, "%d\n", partno);2054 mr_asprintf(tmp, "%d\n", partno); 2055 2055 fput_string_one_char_at_a_time(pout_to_fdisk, tmp); 2056 2056 mr_free(tmp); … … 2060 2060 } 2061 2061 2062 mr_asprintf( &tmp, "%s\n", partcode);2062 mr_asprintf(tmp, "%s\n", partcode); 2063 2063 fput_string_one_char_at_a_time(pout_to_fdisk, tmp); 2064 2064 mr_free(tmp); … … 2070 2070 last_line_of_file(FDISK_LOG)); 2071 2071 2072 mr_asprintf( &tmp, "%s", last_line_of_file(FDISK_LOG));2072 mr_asprintf(tmp, "%s", last_line_of_file(FDISK_LOG)); 2073 2073 if (!strstr(tmp, " (m ")) { 2074 2074 log_msg(1, "last line = '%s'; part type set failed", tmp); … … 2080 2080 fput_string_one_char_at_a_time(pout_to_fdisk, "p\n"); 2081 2081 } else { 2082 mr_asprintf( &output, "t\n%d\n%s\nw\n", partno, partcode);2083 mr_asprintf( &command, "parted2fdisk %s >> %s 2>> %s", drive,2082 mr_asprintf(output, "t\n%d\n%s\nw\n", partno, partcode); 2083 mr_asprintf(command, "parted2fdisk %s >> %s 2>> %s", drive, 2084 2084 MONDO_LOGFILE, MONDO_LOGFILE); 2085 2085 log_msg(5, "output = '%s'", output); … … 2123 2123 return 1; 2124 2124 } 2125 mr_asprintf( &program, "vinum start -f %s", raid_device);2125 mr_asprintf(program, "vinum start -f %s", raid_device); 2126 2126 #else 2127 mr_asprintf( &program, "raidstart %s", raid_device);2127 mr_asprintf(program, "raidstart %s", raid_device); 2128 2128 #endif 2129 2129 log_msg(1, "program = %s", program); … … 2168 2168 return 1; 2169 2169 } 2170 mr_asprintf( &program, "vinum stop -f %s", raid_device);2170 mr_asprintf(program, "vinum stop -f %s", raid_device); 2171 2171 #else 2172 2172 // use raidstop if it exists, otherwise use mdadm 2173 2173 if (run_program_and_log_output("which raidstop", FALSE)) { 2174 mr_asprintf( &program, "mdadm -S %s", raid_device);2174 mr_asprintf(program, "mdadm -S %s", raid_device); 2175 2175 } else { 2176 mr_asprintf( &program, "raidstop %s", raid_device);2176 mr_asprintf(program, "raidstop %s", raid_device); 2177 2177 } 2178 2178 #endif … … 2320 2320 if (strcmp(format, "swap") == 0) { 2321 2321 #ifdef __FreeBSD__ 2322 mr_asprintf( &program, "true");2322 mr_asprintf(program, "true"); 2323 2323 #else 2324 mr_asprintf( &program, "mkswap");2324 mr_asprintf(program, "mkswap"); 2325 2325 #endif 2326 2326 } else if (strcmp(format, "vfat") == 0) { 2327 mr_asprintf( &program, "format-and-kludge-vfat");2327 mr_asprintf(program, "format-and-kludge-vfat"); 2328 2328 #ifndef __FreeBSD__ 2329 2329 } else if (strcmp(format, "reiserfs") == 0) { 2330 mr_asprintf( &program, "mkreiserfs -ff");2330 mr_asprintf(program, "mkreiserfs -ff"); 2331 2331 } else if (strcmp(format, "xfs") == 0) { 2332 mr_asprintf( &program, "mkfs.xfs -f -q");2332 mr_asprintf(program, "mkfs.xfs -f -q"); 2333 2333 } else if (strcmp(format, "jfs") == 0) { 2334 mr_asprintf( &program, "mkfs.jfs");2334 mr_asprintf(program, "mkfs.jfs"); 2335 2335 } else if (strcmp(format, "ext3") == 0) { 2336 mr_asprintf( &program, "mkfs -t ext3 -F -q");2336 mr_asprintf(program, "mkfs -t ext3 -F -q"); 2337 2337 } else if (strcmp(format, "ext4") == 0) { 2338 mr_asprintf( &program, "mkfs -t ext4 -F -q");2338 mr_asprintf(program, "mkfs -t ext4 -F -q"); 2339 2339 } else if (strcmp(format, "minix") == 0) { 2340 mr_asprintf( &program, "mkfs.minix");2340 mr_asprintf(program, "mkfs.minix"); 2341 2341 } else if (strcmp(format, "vmfs") == 0) { 2342 mr_asprintf( &program, "mkfs -t vmfs");2342 mr_asprintf(program, "mkfs -t vmfs"); 2343 2343 } else if (strcmp(format, "ntfs") == 0) { 2344 2344 /* … … 2346 2346 * so the default "mkfs -t %s -c" command structure fails 2347 2347 */ 2348 mr_asprintf( &program, "mkfs -t ntfs");2348 mr_asprintf(program, "mkfs -t ntfs"); 2349 2349 } else if (strcmp(format, "ocfs2") == 0) { 2350 2350 /* … … 2352 2352 * 2353 2353 */ 2354 mr_asprintf( &program, "mkfs -t ocfs2 -F");2354 mr_asprintf(program, "mkfs -t ocfs2 -F"); 2355 2355 #endif 2356 2356 } else if (strcmp(format, "ext2") == 0) { 2357 mr_asprintf( &program, "mke2fs -F -q");2357 mr_asprintf(program, "mke2fs -F -q"); 2358 2358 } else { 2359 2359 #ifdef __FreeBSD__ 2360 mr_asprintf( &program, "newfs_%s", format);2360 mr_asprintf(program, "newfs_%s", format); 2361 2361 #else 2362 mr_asprintf( &program, "mkfs -t %s -c", format); // -c checks for bad blocks2363 #endif 2364 mr_asprintf( &tmp, "Unknown format (%s) - assuming '%s' will do", format, program);2362 mr_asprintf(program, "mkfs -t %s -c", format); // -c checks for bad blocks 2363 #endif 2364 mr_asprintf(tmp, "Unknown format (%s) - assuming '%s' will do", format, program); 2365 2365 log_it(tmp); 2366 2366 mr_free(tmp); … … 2425 2425 return; 2426 2426 } 2427 mr_asprintf( &tmp, "Expanding entries to suit drive %s (%ld MB)", drive_name, current_size_of_drive);2427 mr_asprintf(tmp, "Expanding entries to suit drive %s (%ld MB)", drive_name, current_size_of_drive); 2428 2428 log_to_screen(tmp); 2429 2429 mr_free(tmp); … … 2445 2445 2446 2446 if (original_size_of_drive <= 0) { 2447 mr_asprintf( &tmp, "Cannot resize %s's entries. Drive not found.", drive_name);2447 mr_asprintf(tmp, "Cannot resize %s's entries. Drive not found.", drive_name); 2448 2448 log_to_screen(tmp); 2449 2449 mr_free(tmp); … … 2451 2451 } 2452 2452 factor = (float) (current_size_of_drive) / (float) (original_size_of_drive); 2453 mr_asprintf( &tmp, "Disk %s was %ld MB; is now %ld MB; factor = %f", drive_name, original_size_of_drive, current_size_of_drive, factor);2453 mr_asprintf(tmp, "Disk %s was %ld MB; is now %ld MB; factor = %f", drive_name, original_size_of_drive, current_size_of_drive, factor); 2454 2454 log_to_screen(tmp); 2455 2455 mr_free(tmp); … … 2478 2478 } 2479 2479 2480 mr_asprintf( &tmp, "Changing %s from %lld KB to %ld KB", drivemntlist->el[partno]->device, drivemntlist->el[partno]->size, newsizL);2480 mr_asprintf(tmp, "Changing %s from %lld KB to %ld KB", drivemntlist->el[partno]->device, drivemntlist->el[partno]->size, newsizL); 2481 2481 log_to_screen(tmp); 2482 2482 mr_free(tmp); … … 2484 2484 } 2485 2485 final_size = get_phys_size_of_drive(drive_name); 2486 mr_asprintf( &tmp, "final_size = %ld MB", final_size);2486 mr_asprintf(tmp, "final_size = %ld MB", final_size); 2487 2487 log_to_screen(tmp); 2488 2488 mr_free(tmp);
Note:
See TracChangeset
for help on using the changeset viewer.