Changeset 541 in MondoRescue for branches/stable/mondo/mondo/common/libmondo-archive.c
- Timestamp:
- May 13, 2006, 8:47:23 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mondo/mondo/common/libmondo-archive.c
r538 r541 179 179 #include "libmondo-devices-EXT.h" 180 180 #include "libmondo-tools-EXT.h" 181 #include " newt-specific-EXT.h"181 #include "libmondo-gui-EXT.h" 182 182 #include "libmondo-fork-EXT.h" 183 183 #include "libmondo-files-EXT.h" … … 186 186 #include "libmondo-verify-EXT.h" 187 187 #include "libmondo-archive.h" 188 #include "lib-common-externs.h" 188 189 #include <sys/sem.h> 189 190 #include <sys/types.h> … … 580 581 * @ingroup archiveGroup 581 582 */ 582 int backup_data(struct s_bkpinfo *bkpinfo , struct s_mrconf *mrconf)583 int backup_data(struct s_bkpinfo *bkpinfo) 583 584 { 584 585 int retval = 0, res = 0; … … 643 644 sprintf(tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir); 644 645 run_program_and_log_output(tmp, 1); 645 retval += make_those_afios_phase(bkpinfo ,mrconf); // backup regular files646 retval += make_those_afios_phase(bkpinfo); // backup regular files 646 647 retval += make_those_slices_phase(bkpinfo); // backup BIG files 647 648 retval += do_that_final_phase(bkpinfo); // clean up … … 1014 1015 if (!res) { 1015 1016 log_to_screen("Boot+data disks were created OK"); 1016 sprintf(command, "mkdir -p / var/cache/mindi/");1017 sprintf(command, "mkdir -p /root/images/mindi/"); 1017 1018 log_msg(2, command); 1018 1019 run_program_and_log_output(command, FALSE); 1019 1020 sprintf(command, 1020 "cp -f %s/images/mindi.iso / var/cache/mindi/mondorescue.iso",1021 "cp -f %s/images/mindi.iso /root/images/mindi/mondorescue.iso", 1021 1022 bkpinfo->scratchdir); 1022 1023 log_msg(2, command); … … 1252 1253 * @ingroup MLarchiveGroup 1253 1254 */ 1254 int do_that_final_phase(struct s_bkpinfo *bkpinfo , struct s_mrconf *mrconf)1255 int do_that_final_phase(struct s_bkpinfo *bkpinfo) 1255 1256 { 1256 1257 … … 1273 1274 /* write final ISO */ 1274 1275 { 1275 res = write_final_iso_if_necessary(bkpinfo , mrconf);1276 res = write_final_iso_if_necessary(bkpinfo); 1276 1277 retval += res; 1277 1278 if (res) { … … 1563 1564 * @return The number of errors encountered (0 for success) 1564 1565 */ 1565 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo , struct s_mrconf *mrconf)1566 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo) 1566 1567 { 1567 1568 … … 1619 1620 log_to_screen("Archiving regular files"); 1620 1621 log_msg(5, "Go, Shorty. It's your birthday."); 1621 open_progress_form( _("Backing up filesystem"),1622 _("I am backing up your live filesystem now."),1623 _("Please wait. This may take a couple of hours."),1624 _("Working..."),1622 open_progress_form("Backing up filesystem", 1623 "I am backing up your live filesystem now.", 1624 "Please wait. This may take a couple of hours.", 1625 "Working...", 1625 1626 get_last_filelist_number(bkpinfo) + 1); 1626 1627 … … 1707 1708 } else { 1708 1709 res = 1709 move_files_to_cd(bkpinfo, mrconf,storing_filelist_fname,1710 move_files_to_cd(bkpinfo, storing_filelist_fname, 1710 1711 curr_xattr_list_fname, 1711 1712 curr_acl_list_fname, … … 1785 1786 * @return The number of errors encountered (0 for success) 1786 1787 */ 1787 int make_iso_fs(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf,char *destfile)1788 int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile) 1788 1789 { 1789 1790 /*@ int ********************************************** */ … … 1848 1849 tmp3 = NULL; 1849 1850 if (bkpinfo->backup_media_type == iso && bkpinfo->manual_cd_tray) { 1850 popup_and_OK( _("Please insert new media and press Enter."));1851 popup_and_OK("Please insert new media and press Enter."); 1851 1852 } 1852 1853 … … 2005 2006 #ifdef __IA64__ 2006 2007 log_msg(1, "IA64 --> elilo"); 2007 asprintf(&tmp2,"mkisofs -no-emul-boot -b images/mindi-bootroot.%s.img -c boot.cat -o _ISO_ -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", mrconf->ia64_boot_size);2008 2008 res = eval_call_to_make_ISO(bkpinfo, 2009 2009 //-b images/mindi-boot.2880.img 2010 tmp2, 2010 "mkisofs -no-emul-boot -b images/mindi-bootroot." 2011 IA64_BOOT_SIZE 2012 ".img -c boot.cat -o _ISO_ -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", 2011 2013 destfile, 2012 2014 g_current_media_number, … … 2016 2018 // FIXME --- change mkisofs string to MONDO_MKISOFS_REGULAR_SYSLINUX/LILO depending on bkpinfo->make_cd_usE_lilo 2017 2019 // and add ' .' at end 2018 paranoid_free(tmp2);2019 2020 log_msg(1, "Non-ia64 --> lilo"); 2020 2021 res = … … 2150 2151 */ 2151 2152 int 2152 make_slices_and_images(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf,char *biggielist_fname)2153 make_slices_and_images(struct s_bkpinfo *bkpinfo, char *biggielist_fname) 2153 2154 { 2154 2155 … … 2223 2224 } else { 2224 2225 // Call ntfsclone (formerly partimagehack) if it's a /dev entry (i.e. a partition to be imaged) 2225 log_msg(2, "bigfile_fname = '%s'", bigfile_fname);2226 log_msg(2, "bigfile_fname = %s", bigfile_fname); 2226 2227 use_ntfsprog = FALSE; 2227 2228 if (!strncmp(bigfile_fname, "/dev/", 5) … … 2269 2270 } 2270 2271 res = 2271 slice_up_file_etc(bkpinfo, mrconf,bigfile_fname,2272 slice_up_file_etc(bkpinfo, bigfile_fname, 2272 2273 ntfsprog_fifo, biggie_file_number, 2273 2274 noof_biggie_files, use_ntfsprog); … … 2321 2322 * @see make_afioballs_and_images 2322 2323 */ 2323 int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo , struct s_mrconf *mrconf)2324 int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo) 2324 2325 { 2325 2326 … … 2349 2350 log_to_screen("Archiving regular files"); 2350 2351 2351 open_progress_form( _("Backing up filesystem"),2352 _("I am backing up your live filesystem now."),2353 _("Please wait. This may take a couple of hours."),2354 _("Working..."),2352 open_progress_form("Backing up filesystem", 2353 "I am backing up your live filesystem now.", 2354 "Please wait. This may take a couple of hours.", 2355 "Working...", 2355 2356 get_last_filelist_number(bkpinfo) + 1); 2356 2357 … … 2403 2404 } else { 2404 2405 res = 2405 move_files_to_cd(bkpinfo, mrconf,curr_filelist_fname,2406 move_files_to_cd(bkpinfo, curr_filelist_fname, 2406 2407 curr_xattr_list_fname, 2407 2408 curr_acl_list_fname, curr_afioball_fname, … … 2448 2449 * @ingroup MLarchiveGroup 2449 2450 */ 2450 int make_those_afios_phase(struct s_bkpinfo *bkpinfo , struct s_mrconf *mrconf)2451 int make_those_afios_phase(struct s_bkpinfo *bkpinfo) 2451 2452 { 2452 2453 /*@ int ******************************************* */ … … 2465 2466 log_msg(1, 2466 2467 "Using single-threaded make_afioballs_and_images() to suit b0rken FreeBSD 5.0"); 2467 res = make_afioballs_and_images_OLD(bkpinfo , mrconf);2468 res = make_afioballs_and_images_OLD(bkpinfo); 2468 2469 #else 2469 res = make_afioballs_and_images_OLD(bkpinfo , mrconf);2470 res = make_afioballs_and_images_OLD(bkpinfo); 2470 2471 #endif 2471 2472 write_header_block_to_stream(0, "stop-afioballs", 2472 2473 BLK_STOP_AFIOBALLS); 2473 2474 } else { 2474 res = make_afioballs_and_images(bkpinfo , mrconf);2475 res = make_afioballs_and_images(bkpinfo); 2475 2476 } 2476 2477 … … 2575 2576 * transfer files over the network) or leave it as is. 2576 2577 */ 2577 int (*move_files_to_cd) (struct s_bkpinfo *, struct s_mrconf *mrconf,char *, ...) =2578 int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...) = 2578 2579 _move_files_to_cd; 2579 2580 … … 2596 2597 * @return The number of errors encountered (0 for success) 2597 2598 */ 2598 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf,char *files_to_add, ...)2599 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, char *files_to_add, ...) 2599 2600 { 2600 2601 … … 2635 2636 } 2636 2637 if (would_occupy / 1024 > bkpinfo->media_size[g_current_media_number]) { 2637 res = write_iso_and_go_on(bkpinfo, struct s_mrconf *mrconf,FALSE); /* FALSE because this is not the last CD we'll write */2638 res = write_iso_and_go_on(bkpinfo, FALSE); /* FALSE because this is not the last CD we'll write */ 2638 2639 retval += res; 2639 2640 if (res) { … … 2685 2686 * @c backup_media_type field is used in this function. 2686 2687 * @param imagesdir The directory containing the floppy images (usually 2687 * / var/cache/mindi).2688 * /root/images/mindi). 2688 2689 * 2689 2690 * @return The number of errors encountered (0 for success) … … 2864 2865 if (!bkpinfo->nonbootable_backup) { 2865 2866 #ifdef __FreeBSD__ 2866 if (!does_file_exist("/ var/cache/mindi/mindi-kern.1722.img"))2867 if (!does_file_exist("/root/images/mindi/mindi-kern.1722.img")) 2867 2868 #else 2868 if (!does_file_exist("/var/cache/mindi/mindi-bootroot.1722.img") 2869 && !does_file_exist("/var/cache/mindi/mindi-boot.1440.img") 2870 && !does_file_exist("/var/cache/mindi/mindi-boot.2880.img") 2871 && !does_file_exist("/var/cache/mindi/mindi-boot.5760.img")) 2869 if (!does_file_exist("/root/images/mindi/mindi-bootroot.1722.img") 2870 && !does_file_exist("/root/images/mindi/mindi-boot.1440.img")) 2872 2871 #endif 2873 2872 { 2874 2873 mvaddstr_and_log_it(g_currentY++, 74, "No Imgs"); 2875 if (does_file_exist("/ var/cache/mindi/mondorescue.iso")) {2874 if (does_file_exist("/root/images/mindi/mondorescue.iso")) { 2876 2875 popup_and_OK 2877 ("Boot+data floppy creation failed. However, FYI, you may burn / var/cache/mindi/mondorescue.iso to a CD and boot from that instead if you wish.");2876 ("Boot+data floppy creation failed. However, FYI, you may burn /root/images/mindi/mondorescue.iso to a CD and boot from that instead if you wish."); 2878 2877 res++; 2879 2878 } 2880 2879 } else { 2881 offer_to_write_floppies(bkpinfo, "/ var/cache/mindi");2880 offer_to_write_floppies(bkpinfo, "/root/images/mindi"); 2882 2881 mvaddstr_and_log_it(g_currentY++, 74, "Done."); 2883 2882 } … … 3279 3278 */ 3280 3279 int 3281 slice_up_file_etc(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf,char *biggie_filename,3280 slice_up_file_etc(struct s_bkpinfo *bkpinfo, char *biggie_filename, 3282 3281 char *ntfsprog_fifo, long biggie_file_number, 3283 3282 long noof_biggie_files, bool use_ntfsprog) … … 3409 3408 } else { 3410 3409 res = 3411 move_files_to_cd(bkpinfo, mrconf,3410 move_files_to_cd(bkpinfo, 3412 3411 slice_fname(biggie_file_number, 0, 3413 3412 bkpinfo->tmpdir, ""), NULL); … … 3511 3510 res = move_files_to_stream(bkpinfo, file_to_archive, NULL); 3512 3511 } else { 3513 res = move_files_to_cd(bkpinfo, mrconf,file_to_archive, NULL);3512 res = move_files_to_cd(bkpinfo, file_to_archive, NULL); 3514 3513 } 3515 3514 retval += res; … … 3603 3602 * however, this occurs rarely. 3604 3603 */ 3605 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo , struct s_mrconf *mrconf)3604 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo) 3606 3605 { 3607 3606 /*@ int ***************************************************** */ … … 3624 3623 } 3625 3624 #endif 3626 res = write_iso_and_go_on(bkpinfo, struct s_mrconf *mrconf,TRUE);3625 res = write_iso_and_go_on(bkpinfo, TRUE); 3627 3626 #ifndef _XWIN 3628 3627 if (!g_text_mode) { … … 3653 3652 * @see make_iso_fs 3654 3653 */ 3655 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf,bool last_cd)3654 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, bool last_cd) 3656 3655 { 3657 3656 /*@ pointers **************************************************** */ … … 3729 3728 g_current_media_number); 3730 3729 for (that_one_was_ok = FALSE; !that_one_was_ok;) { 3731 res = make_iso_fs(bkpinfo, mrconf,isofile);3730 res = make_iso_fs(bkpinfo, isofile); 3732 3731 if (g_current_media_number == 1 && !res 3733 3732 && (bkpinfo->backup_media_type == cdr … … 4031 4030 setenv("MONDO_SHARE", MONDO_SHARE, 1); 4032 4031 } 4033 4034 void mrarchive_init_conf(struct s_mrconf *mrconf) {4035 char *command = NULL;4036 FILE *conffd = NULL;4037 FILE *fin = NULL;4038 int n = 0;4039 char *param = NULL;4040 4041 mrconf = (struct s_mrconf *)malloc(sizeof(struct s_mrconf));4042 if (mrconf == NULL) {4043 fatal_error("Unable to malloc mrconf");4044 }4045 /* Default for everything int : 0 char * : NULL */4046 4047 /* mindi conf parameters also needed in mondo */4048 mrconf->ia64_boot_size = 0;4049 4050 asprintf(&command, "mindi -printvar IA64_BOOT_SIZE");4051 fin = popen(command, "r");4052 getline(¶m, &n, fin);4053 pclose(fin);4054 paranoid_free(command);4055 mrconf->ia64_boot_size = atoi(param);4056 paranoid_free(param);4057 4058 mrconf->iso_creation_cmd = NULL;4059 4060 /* Finds mondo conf file */4061 mrconf_open(MONDO_CONF_DIR"/mondo.conf");4062 4063 /* mondo conf parameters needed */4064 mrconf->iso_creation_cmd = mrconf_sread(iso_creation_cmd);4065 4066 mrconf_close();
Note:
See TracChangeset
for help on using the changeset viewer.