Changeset 2635 in MondoRescue for branches/2.2.10/mondo/src


Ignore:
Timestamp:
May 17, 2010, 5:57:40 AM (14 years ago)
Author:
Bruno Cornec
Message:

svn merge -r 2586:2634 svn+ssh://bruno@svn.mondorescue.org/mondo/svn/mondorescue/branches/2.2.9

  • Avoids error messages from stat in analyze-my-lvm
  • Avoid perl warning by removing non-exitent dirs from @INC in mindi-get-perl-modules r3744@localhost: bruno | 2010-03-16 01:44:33 +0100
    • Fix a bug on Mandriva modules analysis (at least) (Backport from mindi 2.1.0)
  • Try to improve exclusion of binded /proc mount with "none" fs type exclusion Cf: #397
  • Adds gmane mirror on the support page of the web site.
  • More website improvements based on Tom Metro feedbacks
  • Adds Nable ML archive
  • For gmane prefer the threaded view to the blog one.
  • Fix an initialization bug for network protocol in interactive mode (was NULL and not NFS by default)
  • Put an explicit notice of MondoRescue's license: GPLv2 or later (as per Hugo's notice in sources)
  • Adds tee to deplist
  • Fix #412 by supporting grub-install.unsupported for OpenSuSE and solving an issue with the parameter passed to grub for device which should be a device name, not a partition.
  • Fix #413 where list of devices was not re-initialized correctly in a loop (Michael Shapiro)
  • Fix #415 by avoiding integration of unknown devices report from pvscan (Mike Shapiro)
  • Fix #414 by adding a function GetPVsForLV to remove PVs from excluded LVs (Mike Shapiro)
  • Fixes for #414: remove comments from grub conf file if used and improve grub conf file generation
  • Fix a typo (Mike Shapiro)
  • Improved msg for USB device creation
  • Mondoarchive should not try to cerate a cmp binary if it doesn't exist.
  • Fix a bug on ia64 where the boot image generated was removed before use in mondo
  • Avoid to have multiple similar calls to mkisofs by using macros r3946@localhost: bruno | 2010-05-04 19:17:51 +0200
    • Solves an issue with usage of -V option in mkiofs wrongly placed
  • netfs_proto should be initialized in every case, not just in DR (should solve remaining NULL reports)
  • Integrate Michael Shapiro's patch on Xen Kernel support for RHEL 5 (only atm) and fixes #418 (Michael Shapiro)
  • Fox a typo in a Web page
  • Precise that GPL is v2+ (as per Hugo's wish)
  • Improve display of messages (removes extra \n) and replace a stract with "" with " ". trying to debug #421
  • Remove a wrong usage of mr_strcat with exclude_path in the 2.2.9 version (probably cause of #421)
  • Fix strcat call !
Location:
branches/2.2.10/mondo/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.10/mondo/src/common/libmondo-archive.c

    r2623 r2635  
    17111711        if (bkpinfo->nonbootable_backup) {
    17121712            log_msg(1, "Making nonbootable backup");
    1713 // FIXME --- change mkisofs string to MONDO_MKISOFS_NONBOOTABLE and add ' .' at end
    1714             res = eval_call_to_make_ISO("mkisofs -o '_ISO_' -r -p MondoRescue -publisher www.mondorescue.org -A MondoRescue_GPL -V _CD#_ .", destfile, g_current_media_number, message_to_screen);
     1713            res = eval_call_to_make_ISO(MONDO_MKISOFS"-o '_ISO_' -V _CD#_ .", destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen);
    17151714        } else {
    17161715            log_msg(1, "Making bootable backup");
     
    17251724            if (bkpinfo->make_cd_use_lilo) {
    17261725                log_msg(1, "make_cd_use_lilo = TRUE");
    1727 // FIXME --- change mkisofs string to MONDO_MKISOFS_REGULAR_SYSLINUX/LILO depending on bkpinfo->make_cd_usE_lilo
    1728 // and add ' .' at end
    17291726#ifdef __IA64__
    17301727                log_msg(1, "IA64 --> elilo");
    1731                 res = eval_call_to_make_ISO("mkisofs -no-emul-boot -b images/mindi-bootroot." IA64_BOOT_SIZE ".img -c boot.cat -o '_ISO_' -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", destfile, g_current_media_number, message_to_screen);
     1728                res = eval_call_to_make_ISO(MONDO_MKISOFS_REGULAR_ELILO"-o '_ISO_' -V _CD#_ .", destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen);
    17321729#else
    1733 // FIXME --- change mkisofs string to MONDO_MKISOFS_REGULAR_SYSLINUX/LILO depending on bkpinfo->make_cd_usE_lilo
    1734 // and add ' .' at end
    17351730                log_msg(1, "Non-ia64 --> lilo");
    1736                 res =
    1737                     eval_call_to_make_ISO("mkisofs -b images/mindi-bootroot.2880.img -c boot.cat -o '_ISO_' -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", destfile, g_current_media_number, message_to_screen);
     1731                    // FIXME: fixed boot size probably wrong. lilo to be removed
     1732                res = eval_call_to_make_ISO(MONDO_MKISOFS"-b images/mindi-bootroot.2880.img -c boot.cat -o '_ISO_' -J -V _CD#_ .", destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen);
    17381733#endif
    17391734            } else {
    17401735                log_msg(1, "make_cd_use_lilo = FALSE");
    17411736                log_msg(1, "Isolinux");
    1742                 res = eval_call_to_make_ISO("mkisofs -no-emul-boot -b isolinux.bin -boot-load-size 4 -boot-info-table -c boot.cat -o '_ISO_' -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", destfile, g_current_media_number, message_to_screen);
     1737                res = eval_call_to_make_ISO(MONDO_MKISOFS_REGULAR_SYSLINUX"-o '_ISO_' -V _CD#_ .", destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen);
    17431738            }
    17441739        }
  • branches/2.2.10/mondo/src/common/libmondo-devices.c

    r2623 r2635  
    120120
    121121    tmp = where_is_root_mounted();
    122     log_msg(0, "root is currently mounted at %s\n", tmp);
     122    log_msg(0, "root is currently mounted at %s", tmp);
    123123
    124124#ifdef __FreeBSD__
     
    18771877    while (DSFptr != NULL) {
    18781878        if (DSFptr->check) {
    1879             log_msg (4, "%s is mounted on %s and is on disk %s\n", DSFptr->device, DSFptr->mount_point, ndsf);
     1879            log_msg (4, "%s is mounted on %s and is on disk %s", DSFptr->device, DSFptr->mount_point, ndsf);
    18801880            strcat(*included_dsf_list, DSFptr->mount_point);
    18811881            strcat(*included_dsf_list, " ");
    18821882        } else {
    1883             log_msg (4, "%s is mounted on %s and is NOT on disk %s\n", DSFptr->device, DSFptr->mount_point, ndsf);
     1883            log_msg (4, "%s is mounted on %s and is NOT on disk %s", DSFptr->device, DSFptr->mount_point, ndsf);
    18841884            strcat(*excluded_dsf_list, DSFptr->mount_point);
    18851885            strcat(*excluded_dsf_list, " ");
     
    19211921        if (mode == 'E') {
    19221922            if (strlen(mounted_on_dsf)) {
    1923                 log_to_screen("Excluding the following file systems on %s:\n", token);
    1924                 log_to_screen("  %s\n", mounted_on_dsf);
     1923                log_to_screen("Excluding the following file systems on %s:", token);
     1924                log_to_screen("==> %s", mounted_on_dsf);
    19251925                log_msg (5, "Adding to bkpinfo->exclude_paths due to -E option: %s", mounted_on_dsf);
    19261926                mr_strcat(bkpinfo->exclude_paths, " %s ", mounted_on_dsf);
     
    19281928            }
    19291929        } else {
    1930             log_to_screen("Archiving only the following file systems on %s:\n", token);
    1931             log_to_screen("  %s\n", mounted_on_dsf);
    1932             strcpy(bkpinfo->include_paths, "/");
     1930            log_to_screen("Archiving only the following file systems on %s:", token);
     1931            log_to_screen("==> %s", mounted_on_dsf);
     1932            mr_free(bkpinfo->include_paths);
     1933            mr_asprintf(bkpinfo->include_paths, "%s", "/");
    19331934            if (strlen(not_mounted_on_dsf)) {
    19341935                log_msg (5, "Adding to bkpinfo->exclude_paths due to -I option: %s", not_mounted_on_dsf);
    1935                 log_to_screen("Not archiving the following file systems:\n");
    1936                 log_to_screen("  %s\n", not_mounted_on_dsf);
    1937                 mr_strcat(bkpinfo->exclude_paths, " %s ", mounted_on_dsf);
     1936                log_to_screen("Not archiving the following file systems:");
     1937                log_to_screen("==> %s", not_mounted_on_dsf);
     1938                mr_strcat(bkpinfo->exclude_paths, " %s ", not_mounted_on_dsf);
    19381939            }
    19391940        }
     
    27892790        /* Never try to eject a NETFS device */
    27902791        bkpinfo->please_dont_eject = TRUE;
     2792        /*  Force NFS to be the protocol by default */
     2793        if (bkpinfo->netfs_proto == NULL) {
     2794            mr_asprintf(bkpinfo->netfs_proto, "nfs");
     2795        }
    27912796
    27922797        /* Initiate bkpinfo netfs_mount path from running environment if not already done */
     
    28512856            mr_free(command);
    28522857
    2853             p = popup_and_get_string("Network protocol", "Which Network protocol should I use?", bkpinfo->netfs_proto);
    2854             if (p == NULL) {
    2855                 log_to_screen("User has chosen not to backup the PC");
    2856                 finish(1);
    2857             }
    2858             mr_free(bkpinfo->netfs_proto);
    2859             bkpinfo->netfs_proto = p;
    2860 
    2861             p = popup_and_get_string("Network share", "Which remote Network share should I mount?", bkpinfo->netfs_mount);
    2862             if (p == NULL) {
    2863                 log_to_screen("User has chosen not to backup the PC");
    2864                 finish(1);
    2865             }
    2866             mr_free(bkpinfo->netfs_mount);
    2867             bkpinfo->netfs_mount = p;
    2868         }
     2858        }
     2859        p = popup_and_get_string("Network protocol", "Which Network protocol should I use?", bkpinfo->netfs_proto);
     2860        if (p == NULL) {
     2861            log_to_screen("User has chosen not to backup the PC");
     2862            finish(1);
     2863        }
     2864        mr_free(bkpinfo->netfs_proto);
     2865        bkpinfo->netfs_proto = p;
     2866
     2867        p = popup_and_get_string("Network share", "Which remote Network share should I mount?", bkpinfo->netfs_mount);
     2868        if (p == NULL) {
     2869            log_to_screen("User has chosen not to backup the PC");
     2870            finish(1);
     2871        }
     2872        mr_free(bkpinfo->netfs_mount);
     2873        bkpinfo->netfs_mount = p;
     2874
    28692875        /* Initiate bkpinfo isodir path from running environment if mount already done */
    28702876        mr_free(bkpinfo->isodir);
  • branches/2.2.10/mondo/src/common/libmondo-filelist.c

    r2623 r2635  
    13581358#if linux
    13591359        // 2.6 has /sys as a proc-type thing -- must be excluded
    1360         mr_asprintf(strtmp, "find '%s' -fstype mvfs -prune -o -fstype devpts -prune -o -fstype tmpfs -prune -o -fstype proc -prune -o -fstype sysfs -prune -o -fstype rpc_pipefs -prune -o %s -type d -print > %s 2> /dev/null", dir, find_excludes, g_skeleton_filelist);
     1360        mr_asprintf(strtmp, "find '%s' -fstype mvfs -prune -o -fstype devpts -prune -o -fstype tmpfs -prune -o -fstype proc -prune -o -fstype sysfs -prune -o -fstype rpc_pipefs -prune -o -fstype none -prune -o %s -type d -print > %s 2> /dev/null", dir, find_excludes, g_skeleton_filelist);
    13611361#else
    13621362        // On BSD, for example, /sys is the kernel sources -- don't exclude
  • branches/2.2.10/mondo/src/common/libmondo-tools.c

    r2607 r2635  
    514514
    515515        if (bkpinfo->nonbootable_backup) {
    516             mr_asprintf(mondo_mkisofs_sz, MONDO_MKISOFS_NONBOOT);
     516            mr_asprintf(mondo_mkisofs_sz, MONDO_MKISOFS);
    517517        } else if
    518518#ifdef __FreeBSD__
     
    523523#ifdef __IA64__
    524524    {
    525         mr_asprintf(mondo_mkisofs_sz, MONDO_MKISOFS_REGULAR_ELILO);
     525        mr_asprintf(mondo_mkisofs_sz, "%s -V _CD#_", MONDO_MKISOFS_REGULAR_ELILO);
    526526    }
    527527#else
    528528    {
    529         mr_asprintf(mondo_mkisofs_sz, MONDO_MKISOFS_REGULAR_LILO);
     529        mr_asprintf(mondo_mkisofs_sz, "%s -V _CD#_", MONDO_MKISOFS_REGULAR_LILO);
    530530    }
    531531#endif
    532         else {
    533             mr_asprintf(mondo_mkisofs_sz, MONDO_MKISOFS_REGULAR_SYSLINUX);
     532        else
     533        {
     534            mr_asprintf(mondo_mkisofs_sz, "%s -V _CD#_", MONDO_MKISOFS_REGULAR_SYSLINUX);
    534535        }
    535536
     
    950951    }
    951952
    952     tmp = find_home_of_exe("cmp");
    953     if (!tmp) {
    954         mr_free(tmp);
    955         tmp = find_home_of_exe("true");
    956         if (!tmp) {
    957             retval += whine_if_not_found("cmp");
    958         } else {
    959             log_to_screen("Your system lacks the 'cmp' binary. I'll create a dummy cmp for you.");
    960             if (run_program_and_log_output("cp -f `which true` /usr/bin/cmp", 0)) {
    961                 mr_free(tmp);
    962                 fatal_error("Failed to create dummy 'cmp' file.");
    963             }
    964         }
    965     }
    966     mr_free(tmp);
     953    if (!find_home_of_exe("cmp")) {
     954        whine_if_not_found("cmp");
     955    }
    967956
    968957    run_program_and_log_output("umount `mount | grep cdr | cut -d' ' -f3 | tr '\n' ' '`", 5);
  • branches/2.2.10/mondo/src/include/my-stuff.h

    r2508 r2635  
    174174
    175175
    176 /**
    177  * @c mkisofs command to generate a nonbootable CD, except for -o option and the directory to image.
    178  */
    179 #define MONDO_MKISOFS_NONBOOT   "mkisofs -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL_Version -V _CD#_"
     176#define MONDO_MKISOFS "mkisofs -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL_Version "
    180177
    181178/**
    182179 * @c mkisofs command to generate a bootable CD using isolinux, except for -o option and the directory to image.
    183180 */
    184 #define MONDO_MKISOFS_REGULAR_SYSLINUX  "mkisofs -J -boot-info-table -no-emul-boot -b isolinux.bin -c boot.cat -boot-load-size 4 -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL_Version -V _CD#_"
     181#define MONDO_MKISOFS_REGULAR_SYSLINUX  MONDO_MKISOFS"-J -boot-info-table -no-emul-boot -b isolinux.bin -c boot.cat -boot-load-size 4 "
    185182
    186183/**
    187184 * @c mkisofs command to generate a bootable CD using LILO, except for -o option and the directory to image.
    188185 */
    189 #define MONDO_MKISOFS_REGULAR_LILO      "mkisofs -boot-info-table -no-emul-boot -b isolinux.bin -c boot.cat -boot-load-size 4 -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_"
     186#define MONDO_MKISOFS_REGULAR_LILO      MONDO_MKISOFS_REGULAR_SYSLINUX
    190187
    191188/**
    192189 * @c mkisofs command to generate a bootable CD using ELILO, except for -o option and the directory to image.
    193190 */
    194 // Should replace 8192 by IA64_BOOT_SIZE
    195 #define MONDO_MKISOFS_REGULAR_ELILO      "mkisofs -no-emul-boot -b images/mindi-bootroot.8192.img -c boot.cat -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_"
     191#define MONDO_MKISOFS_REGULAR_ELILO      MONDO_MKISOFS"-J -no-emul-boot -b images/mindi-bootroot."IA64_BOOT_SIZE".img -c boot.cat "
    196192
    197193/**
  • branches/2.2.10/mondo/src/restore-scripts/mondo/grub-MR

    r2508 r2635  
    6969
    7070    echo -en "\
    71     device (hd$driveno) $mbrpart\n\
     71    device (hd$driveno) $mbrdev\n\
    7272    $extraline\n\
    7373    root (hd$driveno,$partno)\n\
     
    7777    log_file=/tmp/grub.output
    7878    if [ "$MNT_RESTORING" ] ; then
    79         chroot /mnt/RESTORING grub --batch < /tmp/feed.txt > $log_file
     79        chroot $MNT_RESTORING grub --batch < /tmp/feed.txt > $log_file
    8080    else
    8181        grub --batch < /tmp/feed.txt > $log_file
     
    104104
    105105echo "Now I'll use grub-install" >> $LOGFILE
    106 chroot /mnt/RESTORING grub-install $1 >> $LOGFILE
    107 res=$?
     106if [ "$MNT_RESTORING" ] ; then
     107    chroot $MNT_RESTORING grub-install $1 2>&1 | tee -a  $LOGFILE
     108    res=$?
     109else
     110    grub-install $1 2>&1 | tee -a $LOGFILE
     111    res=$?
     112fi
    108113echo "grub-install returned $res" >> $LOGFILE
    109114[ "$res" -eq "0" ] && exit 0
    110115
     116# For some OpenSuSE
     117echo "Now I'll use grub-install.unsupported" >> $LOGFILE
     118if [ "$MNT_RESTORING" ] ; then
     119    chroot $MNT_RESTORING grub-install.unsupported $1 2>&1 | tee -a $LOGFILE
     120    res=$?
     121else
     122    grub-install.unsupported $1 2>&1 | tee -a $LOGFILE
     123    res=$?
     124fi
     125echo "grub-install.unsupported returned $res" >> $LOGFILE
     126[ "$res" -eq "0" ] && exit 0
     127
    111128echo "Trying a hack" >> $LOGFILE
    112 FindBootPart $1 $2
    113 mbrpart=$1
     129FindBootPart $1 $2 2>&1 | tee -a $LOGFILE
     130mbrdev=`echo $1 | sed 's/\([^0-9]*\)[0-9]*$/\1/'`
    114131if echo $bootpart | grep "/cciss/" > /dev/null ; then
    115132    partno=`basename $bootpart | cut -d'p' -f2`
     133    mbrdev=`echo $mbrdev | cut -d'p' -f1`
    116134elif echo $bootpart | grep "/mapper/mpath" > /dev/null ; then
    117135    partno=`basename $bootpart | cut -d'p' -f3`
     136    mbrdev=`echo $mbrdev | cut -d'p' -f1`
    118137else
    119     partno=`basename $bootpart | sed s/[a-z]*//`
     138    partno=`basename $bootpart | sed 's/[a-z]*//'`
    120139fi
    121140if [ ! "$partno" ] ; then
     
    125144fi
    126145if echo $bootpart | grep "/md" > /dev/null ; then
     146    # FIXME: Why this if not used later
    127147    base=`basename $bootpart`
    128148    line=`grep $base /proc/mdstat | head -n1`
    129     echo "mbrpart was $mbrpart"
    130     mbrpart=`parted2fdisk -l | grep /dev/ | head -n1 | tr ':' ' ' | cut -d' ' -f2`
    131     echo "mbrpart is $mbrpart"
     149    echo "mbrdev was $mbrdev" 2>&1 | tee -a $LOGFILE
     150    mbrdev=`parted2fdisk -l | grep /dev/ | head -n1 | tr ':' ' ' | cut -d' ' -f2`
     151    echo "mbrdev is $mbrdev" 2>&1 | tee -a $LOGFILE
    132152    partno="0"; # cheating - FIXME   
    133153fi
    134 echo ".............Cool."
     154echo ".............Cool." 2>&1 | tee -a $LOGFILE
    135155
    136156grub=`FindPathOfRESTExe grub`
     
    142162for driveno in 0 1 2 ; do
    143163    try_grub_hack $driveno $partno "" >> $LOGFILE 2>> $LOGFILE && break
    144     try_grub_Hack $driveno $partno "find $BOOTPATHNAME/stage1" >> $LOGFILE 2>> $LOGFILE && break
     164    try_grub_hack $driveno $partno "find $BOOTPATHNAME/stage1" >> $LOGFILE 2>> $LOGFILE && break
    145165done
    146166res=$?
     
    152172echo "Now I'll use grub-install.patched" >> $LOGFILE
    153173cp -f `which grub-install.patched` /mnt/RESTORING/sbin
    154 chroot /mnt/RESTORING grub-install.patched $1 >> $LOGFILE
     174chroot /mnt/RESTORING grub-install.patched $1 2>&1 | tee -a $LOGFILE
    155175res=$?
    156176echo "grub-install.patched returned $res" >> $LOGFILE
     
    160180
    161181if [ -f "/mnt/RESTORING/boot/grub/menu.lst" ]; then
    162     GRUBCFGFILE=/boot/grub/menu.lst
     182    grep -vE '^#' /boot/grub/menu.lst > /mnt/RESTORING/tmp/grub.conf
    163183elif [ -f "/mnt/RESTORING/boot/grub/grub.cfg" ]; then
    164     GRUBCFGFILE=/boot/grub/grub.cfg
     184    grep -vE '^#' /boot/grub/grub.cfg > /mnt/RESTORING/tmp/grub.conf
    165185else
    166     echo "Unable to find Grub conf file"
     186    echo "Unable to find Grub conf file" | tee -a $LOGFILE
    167187    exit -1
    168188fi
    169 echo "Trying to use the existing $GRUBCFGFILE file in batch mode" >> $LOGFILE
    170 chroot /mnt/RESTORING grub --batch < /mnt/RESTORING$GRUBCFGFILE
     189echo "Trying to use the existing grub conf file in batch mode" >> $LOGFILE
     190cat /mnt/RESTORING/tmp/grub.conf >> $LOGFILE
     191chroot /mnt/RESTORING grub --batch < /mnt/RESTORING/tmp/grub.conf
    171192res=$?
    172 echo "$GRUBCFGFILE approach returned $res" >> $LOGFILE
     193echo "grub conf file approach returned $res" >> $LOGFILE
     194rm -f /mnt/RESTORING/tmp/grub.conf
    173195[ "$res" -eq "0" ] && exit 0
    174196
Note: See TracChangeset for help on using the changeset viewer.