Changeset 2334 in MondoRescue for branches/2.2.10/mondo/src/mondorestore/mondo-prep.c
- Timestamp:
- Aug 18, 2009, 5:28:18 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/mondorestore/mondo-prep.c
r2331 r2334 192 192 char *incoming; 193 193 char *command; 194 char *lvscan_sz; 195 char *lvremove_sz; 196 char *pvscan_sz; 197 char *vgscan_sz; 198 char *vgcreate_sz; 199 char *vgchange_sz; 200 char *vgremove_sz; 201 // char *do_this_last; 194 char *lvscan_sz = NULL; 195 char *lvremove_sz = NULL; 196 char *pvscan_sz = NULL; 197 char *vgscan_sz = NULL; 198 char *vgchange_sz = NULL; 199 char *vgremove_sz = NULL; 202 200 203 201 /** char **************************************************/ … … 229 227 malloc_string(tmp); 230 228 malloc_string(incoming); 231 malloc_string(lvscan_sz); 232 malloc_string(lvremove_sz); 233 malloc_string(vgscan_sz); 234 malloc_string(pvscan_sz); 235 malloc_string(vgcreate_sz); 236 malloc_string(vgchange_sz); 237 malloc_string(vgremove_sz); 238 command = malloc(512); 229 command = malloc(1024); 239 230 240 231 log_it("STARTING"); … … 243 234 if (tmp1) // found it :) cool 244 235 { 245 strcpy(lvscan_sz, "lvm lvscan"); 246 strcpy(lvremove_sz, "lvm lvremove"); 247 strcpy(vgscan_sz, "lvm vgscan"); 248 strcpy(pvscan_sz, "lvm pvscan"); 249 strcpy(vgcreate_sz, "lvm vgcreate"); 250 strcpy(vgchange_sz, "lvm vgchange"); 251 strcpy(vgremove_sz, "lvm vgremove -f"); 236 mr_asprintf(lvscan_sz, "lvm lvscan"); 237 mr_asprintf(lvremove_sz, "lvm lvremove"); 238 mr_asprintf(vgscan_sz, "lvm vgscan"); 239 mr_asprintf(pvscan_sz, "lvm pvscan"); 240 mr_asprintf(vgchange_sz, "lvm vgchange"); 241 mr_asprintf(vgremove_sz, "lvm vgremove -f"); 252 242 } else { 253 strcpy(lvscan_sz, "lvscan"); 254 strcpy(lvremove_sz, "lvremove"); 255 strcpy(vgscan_sz, "vgscan"); 256 strcpy(pvscan_sz, "pvscan"); 257 strcpy(vgcreate_sz, "vgcreate"); 258 strcpy(vgchange_sz, "vgchange"); 259 strcpy(vgremove_sz, "vgremove"); 243 mr_asprintf(lvscan_sz, "lvscan"); 244 mr_asprintf(lvremove_sz, "lvremove"); 245 mr_asprintf(vgscan_sz, "vgscan"); 246 mr_asprintf(pvscan_sz, "pvscan"); 247 mr_asprintf(vgchange_sz, "vgchange"); 248 mr_asprintf(vgremove_sz, "vgremove"); 260 249 } 261 250 mr_free(tmp1); 262 251 263 252 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); 253 mr_free(lvscan_sz); 254 mr_free(lvremove_sz); 255 264 256 run_program_and_log_output(tmp1, 5); 265 257 mr_free(tmp1); 266 258 267 259 sleep(1); 268 sprintf(command, 269 "for i in `%s | grep -i lvm | cut -d'\"' -f2` ; do %s -a n $i ; %s $i; echo \"Shutting down vg $i\" >> %s ; done", vgscan_sz, vgchange_sz, vgremove_sz, MONDO_LOGFILE); 260 sprintf(command, "for i in `%s | grep -i lvm | cut -d'\"' -f2` ; do %s -a n $i ; %s $i; echo \"Shutting down vg $i\" >> %s ; done", vgscan_sz, vgchange_sz, vgremove_sz, MONDO_LOGFILE); 261 mr_free(vgchange_sz); 262 mr_free(vgremove_sz); 263 270 264 run_program_and_log_output(command, 5); 271 265 if (just_erase_existing_volumes) { … … 401 395 sleep(1); 402 396 } 397 mr_free(vgscan_sz); 398 mr_free(pvscan_sz); 399 403 400 paranoid_fclose(fin); 404 401 log_msg(1, "Closed i-want-my-lvm. Finished doing funky stuff."); … … 407 404 paranoid_free(incoming); 408 405 paranoid_free(command); 409 paranoid_free(lvscan_sz);410 paranoid_free(lvremove_sz);411 paranoid_free(vgscan_sz);412 paranoid_free(pvscan_sz);413 paranoid_free(vgcreate_sz);414 paranoid_free(vgchange_sz);415 paranoid_free(vgremove_sz);416 406 system("sync"); 417 407 system("sync"); … … 829 819 830 820 if (res && strstr(program, "kludge")) { 831 mr_asprintf( &tmp, "Kludge failed; using regular mkfs.%s to format %s", format, device);821 mr_asprintf(tmp, "Kludge failed; using regular mkfs.%s to format %s", format, device); 832 822 mr_free(program); 833 823 #ifdef __FreeBSD__ … … 895 885 896 886 assert(mountlist != NULL); 897 mr_asprintf(tmp, "format_everything (mountlist, interactively = %s", (interactively) ? "true" : "false"); 898 log_it(tmp); 899 mr_free(tmp); 887 log_it("format_everything (mountlist, interactively = %s", (interactively) ? "true" : "false"); 900 888 901 889 mvaddstr_and_log_it(g_currentY, 0, "Formatting partitions "); … … 1423 1411 /** buffers *********************************************************/ 1424 1412 char *device_str = NULL; 1425 char *format ;1413 char *format = NULL; 1426 1414 char *tmp = NULL; 1427 1415 … … 1430 1418 assert(mountlist != NULL); 1431 1419 assert_string_is_neither_NULL_nor_zerolength(drivename); 1432 1433 malloc_string(format);1434 1420 1435 1421 log_it("Partitioning drive %s", drivename); … … 1445 1431 if (!pout_to_fdisk) { 1446 1432 log_to_screen("Cannot call parted2fdisk to configure %s", drivename); 1447 paranoid_free(format);1448 1433 return (1); 1449 1434 } … … 1480 1465 mr_free(command); 1481 1466 mr_free(device_str); 1482 paranoid_free(format);1483 1467 return r; 1484 1468 } … … 1495 1479 int i, line; 1496 1480 1497 strcpy(format, "ufs");1481 mr_asprintf(format, "ufs"); 1498 1482 partsize = 0; 1499 1483 for (i = 'a'; i < 'z'; ++i) { … … 1552 1536 #ifdef __FreeBSD__ 1553 1537 if (!fbsd_part) { 1554 #endif 1555 1556 strcpy(format, mountlist->el[lino].format); 1538 mr_free(format); 1539 #endif 1540 1541 mr_asprintf(format, "%s", mountlist->el[lino].format); 1557 1542 partsize = mountlist->el[lino].size; 1558 1543 … … 1566 1551 ("You must leave at least one partition spare as the Extended partition."); 1567 1552 mr_free(device_str); 1568 paranoid_free(format);1553 mr_free(format); 1569 1554 return (1); 1570 1555 } 1571 1556 #endif 1572 1557 1573 retval += 1574 partition_device(pout_to_fdisk, drivename, current_devno, 1575 previous_devno, format, partsize); 1558 retval += partition_device(pout_to_fdisk, drivename, current_devno, previous_devno, format, partsize); 1559 mr_free(format); 1576 1560 1577 1561 #ifdef __FreeBSD__ … … 1626 1610 } 1627 1611 } 1628 paranoid_free(format);1629 1612 return (retval); 1630 1613 } … … 1978 1961 mr_asprintf(partcode, ""); 1979 1962 } else if (strlen(format) >= 1 && strlen(format) <= 2) { 1980 mr_asprintf(partcode, format);1963 mr_asprintf(partcode, "%s", format); 1981 1964 } else { 1982 1965 /* probably an image */ … … 1985 1968 mr_free(tmp); 1986 1969 #ifdef __FreeBSD__ 1987 mr_asprintf(partcode, format); // was a51970 mr_asprintf(partcode, "%s", format); // was a5 1988 1971 #else 1989 mr_asprintf(partcode, format); // was 831972 mr_asprintf(partcode, "%s", format); // was 83 1990 1973 #endif 1991 1974 } … … 2260 2243 2261 2244 /** buffers *********************************************************/ 2262 char *tmp = NULL;2263 2245 char *program = NULL; 2264 2246 … … 2311 2293 mr_asprintf(program, "mkfs -t %s -c", format); // -c checks for bad blocks 2312 2294 #endif 2313 mr_asprintf(tmp, "Unknown format (%s) - assuming '%s' will do", format, program); 2314 log_it(tmp); 2315 mr_free(tmp); 2295 log_it("Unknown format (%s) - assuming '%s' will do", format, program); 2316 2296 res = 0; 2317 2297 }
Note:
See TracChangeset
for help on using the changeset viewer.