Changeset 2623 in MondoRescue for branches/2.2.10/mondo/src/mondorestore/mondorestore.c
- Timestamp:
- Apr 12, 2010, 3:23:24 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/mondorestore/mondorestore.c
r2508 r2623 79 79 80 80 /** 81 * The location of 'biggielist.txt', containing the biggiefiles on the current archive set.82 */83 char *g_biggielist_txt;84 85 /**86 81 * The location of 'filelist.full', containing all files (<em>including biggiefiles</em>) on 87 82 * the current archive set. … … 100 95 */ 101 96 char *g_imagedevs_restthese; 102 103 /**104 * The location of 'mondorestore.cfg', containing the metadata105 * information for this backup.106 */107 char *g_mondo_cfg_file;108 109 /**110 * The location of 'mountlist.txt', containing the information on the111 * user's partitions and hard drives.112 */113 char *g_mountlist_fname;114 97 115 98 /** … … 161 144 assert(mountlist != NULL); 162 145 assert(raidlist != NULL); 163 if (!bkpinfo->disaster_recovery) { 164 strcpy(g_mountlist_fname, MINDI_CACHE"/mountlist.txt"); 165 log_msg(2, "I guess you're testing edit_mountlist()"); 166 } 167 if (!does_file_exist(g_mountlist_fname)) { 168 log_to_screen(g_mountlist_fname); 169 log_to_screen("does not exist"); 146 if (!does_file_exist(MINDI_CACHE"/mountlist.txt")) { 147 log_to_screen(MINDI_CACHE"/mountlist.txt doesn't exist"); 170 148 return (1); 171 149 } 172 150 173 retval = load_mountlist(mountlist, g_mountlist_fname);151 retval = load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); 174 152 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 175 153 if (retval) { … … 177 155 ("Warning - load_raidtab_into_raidlist returned an error"); 178 156 } 179 res = edit_mountlist( g_mountlist_fname, mountlist, raidlist);157 res = edit_mountlist(MINDI_CACHE"/mountlist.txt", mountlist, raidlist); 180 158 if (res) { 181 159 return (1); 182 160 } 183 161 184 save_mountlist_to_disk(mountlist, g_mountlist_fname);162 save_mountlist_to_disk(mountlist, MINDI_CACHE"/mountlist.txt"); 185 163 save_raidlist_to_raidtab(raidlist, RAIDTAB_FNAME); 186 164 … … 466 444 467 445 log_it("About to load config file"); 468 get_cfg_file_from_archive_or_bust(); 469 read_cfg_file_into_bkpinfo(g_mondo_cfg_file); 446 read_cfg_file_into_bkpinfo(MINDI_CACHE"/mondorestore.cfg"); 470 447 log_it("Done loading config file; resizing ML"); 471 448 … … 481 458 log_it("About to edit mountlist"); 482 459 if (g_text_mode) { 483 save_mountlist_to_disk(mountlist, g_mountlist_fname);484 mr_asprintf(tmp1, "%s %s", find_my_editor(), g_mountlist_fname);460 save_mountlist_to_disk(mountlist, MINDI_CACHE"/mountlist.txt"); 461 mr_asprintf(tmp1, "%s %s", find_my_editor(), MINDI_CACHE"/mountlist.txt"); 485 462 res = system(tmp1); 486 463 mr_free(tmp1); 487 load_mountlist(mountlist, g_mountlist_fname);464 load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); 488 465 } else { 489 res = edit_mountlist( g_mountlist_fname, mountlist, raidlist);466 res = edit_mountlist(MINDI_CACHE"/mountlist.txt", mountlist, raidlist); 490 467 } 491 468 log_it("Finished editing mountlist"); … … 494 471 } 495 472 log_msg(2, "Proceeding..."); 496 save_mountlist_to_disk(mountlist, g_mountlist_fname);473 save_mountlist_to_disk(mountlist, MINDI_CACHE"/mountlist.txt"); 497 474 save_raidlist_to_raidtab(raidlist, RAIDTAB_FNAME); 498 475 mvaddstr_and_log_it(1, 30, "Restoring Interactively"); … … 646 623 mr_asprintf(fstab_fname, "/tmp/fstab"); 647 624 } 648 mr_asprintf(tmp1, "label-partitions-as-necessary %s < %s >> %s 2>> %s", g_mountlist_fname, fstab_fname, MONDO_LOGFILE, MONDO_LOGFILE);625 mr_asprintf(tmp1, "label-partitions-as-necessary %s < %s >> %s 2>> %s", MINDI_CACHE"/mountlist.txt", fstab_fname, MONDO_LOGFILE, MONDO_LOGFILE); 649 626 mr_free(fstab_fname); 650 627 … … 762 739 763 740 log_msg(2, "nuke_mode --- starting"); 764 765 get_cfg_file_from_archive_or_bust(); 766 load_mountlist(mountlist, g_mountlist_fname); // in case read_cfg_file_into_bkpinfo updated the mountlist 741 load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); // in case read_cfg_file_into_bkpinfo updated the mountlist 767 742 768 743 tmp = call_program_and_get_last_line_of_output("cat " CMDLINE); … … 788 763 } 789 764 790 save_mountlist_to_disk(mountlist, g_mountlist_fname);765 save_mountlist_to_disk(mountlist, MINDI_CACHE"/mountlist.txt"); 791 766 mvaddstr_and_log_it(1, 30, "Restoring Automatically"); 792 767 if (bkpinfo->differential) { … … 862 837 "Using tune2fs to identify your ext2,3 partitions"); 863 838 864 mr_asprintf(tmp, "label-partitions-as-necessary %s < /tmp/fstab", g_mountlist_fname);839 mr_asprintf(tmp, "label-partitions-as-necessary %s < /tmp/fstab", MINDI_CACHE"/mountlist.txt"); 865 840 res = run_program_and_log_output(tmp, TRUE); 866 841 mr_free(tmp); … … 927 902 mr_free(bkpinfo->restore_path); 928 903 mr_asprintf(bkpinfo->restore_path, "/"); 929 if ( !g_restoring_live_from_cd && !g_restoring_live_from_netfs) {904 if (bkpinfo->backup_media_type != netfs) { 930 905 popup_and_OK 931 906 ("Please insert tape/CD/USB Key, then hit 'OK' to continue."); 932 907 sleep(1); 933 }934 if (!g_restoring_live_from_netfs) {935 908 interactively_obtain_media_parameters_from_user(FALSE); 936 909 } … … 945 918 946 919 open_evalcall_form("Thinking..."); 947 948 get_cfg_file_from_archive_or_bust(); 949 read_cfg_file_into_bkpinfo(g_mondo_cfg_file); 950 load_mountlist(mountlist, g_mountlist_fname); // in case read_cfg_file_into_bkpinfo 920 read_cfg_file_into_bkpinfo(MINDI_CACHE"/mondorestore.cfg"); 921 load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); // in case read_cfg_file_into_bkpinfo 951 922 952 923 close_evalcall_form(); 953 retval = load_mountlist(mountlist, g_mountlist_fname);924 retval = load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); 954 925 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 955 926 956 if ( !g_restoring_live_from_netfs&& (filelist = process_filelist_and_biggielist())) {927 if ((bkpinfo->backup_media_type != netfs) && (filelist = process_filelist_and_biggielist())) { 957 928 save_filelist(filelist, "/tmp/selected-files.txt"); 958 929 mr_asprintf(old_restpath, "%s", bkpinfo->restore_path); … … 1945 1916 } 1946 1917 1947 tmp1 = read_cfg_var( g_mondo_cfg_file, "total-slices");1918 tmp1 = read_cfg_var(MINDI_CACHE"/mondorestore.cfg", "total-slices"); 1948 1919 total_slices = atol(tmp1); 1949 1920 mr_free(tmp1); … … 2080 2051 } 2081 2052 insist_on_this_cd_number(g_current_media_number); 2082 tmp1 = read_cfg_var( g_mondo_cfg_file, "last-filelist-number");2053 tmp1 = read_cfg_var(MINDI_CACHE"/mondorestore.cfg", "last-filelist-number"); 2083 2054 max_val = atol(tmp1) + 1; 2084 2055 mr_free(tmp1); … … 2219 2190 assert(bkpinfo != NULL); 2220 2191 2221 tmp1 = read_cfg_var( g_mondo_cfg_file, "total-slices");2192 tmp1 = read_cfg_var(MINDI_CACHE"/mondorestore.cfg", "total-slices"); 2222 2193 total_slices = atol(tmp1); 2223 2194 mr_free(tmp1); … … 2375 2346 assert(bkpinfo != NULL); 2376 2347 mvaddstr_and_log_it(g_currentY, 0, "Restoring from archives"); 2377 tmp = read_cfg_var( g_mondo_cfg_file, "last-filelist-number");2348 tmp = read_cfg_var(MINDI_CACHE"/mondorestore.cfg", "last-filelist-number"); 2378 2349 max_val = atol(tmp) + 1; 2379 2350 mr_free(tmp); … … 2649 2620 g_kernel_version = get_kernel_version(); 2650 2621 2651 log_msg(1, "FYI - g_mountlist_fname = %s", g_mountlist_fname); 2652 if (strlen(g_mountlist_fname) < 3) { 2653 fatal_error("Serious error in malloc()'ing. Could be a bug in your glibc."); 2654 } 2622 log_msg(1, "FYI - mountlist = %s", MINDI_CACHE"/mountlist.txt"); 2655 2623 mkdir(MNT_CDROM, 0x770); 2656 2624 make_hole_for_dir(MONDO_CACHE); 2657 2625 2658 2626 /* Backup original mountlist.txt */ 2659 mr_asprintf(tmp, "%s.orig", g_mountlist_fname); 2660 if (!does_file_exist(g_mountlist_fname)) { 2661 log_msg(2, "%ld: Warning - g_mountlist_fname (%s) does not exist yet", __LINE__, g_mountlist_fname); 2662 } else if (!does_file_exist(tmp)) { 2663 mr_free(tmp); 2664 mr_asprintf(tmp, "cp -f %s %s.orig", g_mountlist_fname, g_mountlist_fname); 2665 run_program_and_log_output(tmp, FALSE); 2666 } 2627 mr_asprintf(tmp, "cp -f "MINDI_CACHE"/mountlist.txt "MINDI_CACHE"/mountlist.txt.orig"); 2628 run_program_and_log_output(tmp, FALSE); 2667 2629 mr_free(tmp); 2668 2630 … … 2694 2656 #endif 2695 2657 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2696 if (!does_file_exist(g_mountlist_fname)) {2697 strcpy(g_mountlist_fname, MINDI_CACHE"/mountlist.txt");2698 }2699 2658 res = let_user_edit_the_mountlist(mountlist, raidlist); 2700 2659 #ifdef __FreeBSD__ … … 2795 2754 log_msg(0, "Partitioning only."); 2796 2755 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2797 strcpy(g_mountlist_fname, MINDI_CACHE"/mountlist.txt"); 2798 load_mountlist(mountlist, g_mountlist_fname); 2756 load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); 2799 2757 res = partition_everything(mountlist); 2800 2758 finish(res); … … 2804 2762 log_msg(0, "Formatting only."); 2805 2763 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2806 strcpy(g_mountlist_fname, MINDI_CACHE"/mountlist.txt");2807 load_mountlist(mountlist, g_mountlist_fname);2808 2764 res = format_everything(mountlist, FALSE, raidlist); 2809 2765 finish(res); … … 2813 2769 log_msg(0, "Stopping LVM and RAID"); 2814 2770 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2815 strcpy(g_mountlist_fname, MINDI_CACHE"/mountlist.txt"); 2816 load_mountlist(mountlist, g_mountlist_fname); 2771 load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); 2817 2772 res = do_my_funky_lvm_stuff(TRUE, FALSE); 2818 2773 res += stop_all_raid_devices(mountlist); … … 2820 2775 } 2821 2776 2822 if ((argc > 1 && strcmp(argv[argc - 1], "--live-from-cd") == 0) && (!bkpinfo->disaster_recovery)) {2823 g_restoring_live_from_cd = TRUE;2824 }2825 2826 2777 // Handle params here first 2827 2778 handle_incoming_parameters(argc,argv); … … 2829 2780 if (!bkpinfo->disaster_recovery) { // live! 2830 2781 log_msg(1, "I am in normal, live mode."); 2831 log_msg(2, "FYI, MOUNTLIST_FNAME = %s", g_mountlist_fname);2832 2782 mount_boot_if_necessary(); /* for Gentoo users */ 2833 2783 log_msg(2, "Still here."); 2834 if (bkpinfo->backup_media_type == netfs) {2835 g_restoring_live_from_netfs = TRUE;2836 }2837 2784 /* Adding an initialisation in order to avoid to hndle NULL pointer later */ 2838 2785 mr_free(bkpinfo->restore_path); … … 2853 2800 /* Disaster recovery mode (must be) */ 2854 2801 log_msg(1, "I must be in disaster recovery mode."); 2855 log_msg(2, "FYI, MOUNTLIST_FNAME = %s ", g_mountlist_fname);2856 2802 2857 2803 log_it("About to call load_mountlist and load_raidtab"); 2858 2804 mr_free(bkpinfo->restore_path); 2859 2805 mr_asprintf(bkpinfo->restore_path, "%s", MNT_RESTORING); 2860 read_cfg_file_into_bkpinfo( g_mondo_cfg_file);2861 retval = load_mountlist(mountlist, g_mountlist_fname);2806 read_cfg_file_into_bkpinfo(MINDI_CACHE"/mondorestore.cfg"); 2807 retval = load_mountlist(mountlist, MINDI_CACHE"/mountlist.txt"); 2862 2808 retval += load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2863 2809 log_it("Returned from calling load_mountlist and load_raidtab successfully"); … … 2865 2811 // BCO:To be reviewed 2866 2812 if ((bkpinfo->restore_mode == compare) || (bkpinfo->restore_mode == nuke)) { 2867 if ( bkpinfo->backup_media_type == netfs&& bkpinfo->netfs_mount && !is_this_device_mounted(bkpinfo->netfs_mount)) {2813 if ((bkpinfo->backup_media_type == netfs) && bkpinfo->netfs_mount && !is_this_device_mounted(bkpinfo->netfs_mount)) { 2868 2814 log_msg(1, "Mounting remote %s dir", bkpinfo->netfs_proto); 2869 2815 mr_free(bkpinfo->isodir); … … 3011 2957 3012 2958 unlink("/tmp/filelist.full"); 3013 unlink("/tmp/filelist.full.gz");3014 2959 3015 2960 exit(retval);
Note:
See TracChangeset
for help on using the changeset viewer.