Changeset 539 in MondoRescue
- Timestamp:
- May 13, 2006, 7:38:44 PM (18 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/contrib/backup-kungfu/backup-kungfu
r354 r539 68 68 function remove_garbage { 69 69 echo -e "Removing the files left from previous mondoarchive run...\n" 70 rm -rf / root/images70 rm -rf /var/cache/mondo 71 71 rm -rf ${backup_dir}/mondo* 72 72 rm -rf ${backup_dir}/tmp* … … 107 107 echo -e "Creating the new backup directory and moving the files there...\n" 108 108 mkdir -p ${backup_dir}/${comp_name}_${date}/images 109 cp / root/images/mindi/* ${backup_dir}/${comp_name}_${date}/images/109 cp /var/cache/mindi/* ${backup_dir}/${comp_name}_${date}/images/ 110 110 111 111 # If you want just move the iso files without renaming them just uncomment the next line -
trunk/mindi/distributions/conf/mindi.conf
r489 r539 64 64 #mindi_kernel="/boot/vmlinuz.special" 65 65 66 # TBC 67 # 66 68 # 67 69 # Additinal modules to support … … 70 72 mindi_additional_modules="" 71 73 74 # TBC 75 # 72 76 # 73 77 # Boot loader to use -
trunk/mindi/mindi
r527 r539 79 79 # TBC 80 80 if [ "$mindi_images_dir" == "" ]; then 81 CACHE _LOC="/var/cache/mindi"81 CACHEDIR="/var/cache/mindi" 82 82 else 83 CACHE _LOC="$mindi_images_dir"83 CACHEDIR="$mindi_images_dir" 84 84 fi 85 85 if [ "$mindi_dual_floppies" == "" ]; then … … 219 219 Aborted() { 220 220 trap SIGHUP SIGTERM SIGTRAP SIGINT 221 [ "$imagesdir" != "" ] && rm -f $imagesdir/mindi*img $imagesdir/*gz $imagesdir/mindi.iso221 rm -f $CACHEDIR/mindi*img $CACHEDIR/*gz $CACHEDIR/mindi.iso 222 222 [ "$minidir_root" != "" ] && rm -Rf $minidir_root/* 223 223 Die "User abort." … … 510 510 if [ "$?" -ne "0" ] ; then 511 511 umount $mountpoint 512 Die "Tarball $tarball is too big for disk! (CODI)\nTell Hugoto adjust MAX_COMPRESSED_SIZE"512 Die "Tarball $tarball is too big for disk! (CODI)\nTell dev team to adjust MAX_COMPRESSED_SIZE" 513 513 fi 514 514 [ "$diskno" -eq "$noof_disks" ] && echo "This is the last disk ($diskno=$noof_disks)" >> $mountpoint/LAST-DISK … … 684 684 echo "MINDI_CONF = $MINDI_CONF" >> $LOGFILE 685 685 echo "MONDO_SHARE = $MONDO_SHARE" >> $LOGFILE 686 mkdir -p $CACHE _LOC686 mkdir -p $CACHEDIR 687 687 } 688 688 … … 1626 1626 1627 1627 1628 OfferToCopyImagesToDisks() {1629 local imagesdir i imagename dev count boot_dev data_dev1630 imagesdir=$11631 boot_dev=$21632 data_dev=$31633 echo -en "Would you like to create boot+data floppy disks now (y/n) ?"1634 read i1635 [ "$i" != "y" ] && [ "$i" != "Y" ] && return1636 mount | fgrep /dev/fd > /dev/null && Die "Please unmount your floppies first."1637 echo "WARNING! THIS WILL ERASE YOUR FLOPPY DISKS."1638 [ ! -e "$boot_dev" ] && Die "Cannot find $boot_dev - is your Linux distro broken?"1639 [ ! -e "$data_dev" ] && Die "Cannot find $data_dev - is your Linux distro broken?"1640 i=`find $imagesdir -type f | fgrep "/mindi-root.1" 2> /dev/null`1641 j=`find $imagesdir -type f | fgrep "/mindi-boot" | egrep -v '2880|5760'`1642 # echo "i=$i"1643 # echo "j=$j"1644 if [ "$i" ] ; then1645 CopyImageToDisk $j $data_dev "boot disk"1646 CopyImageToDisk $i $data_dev "root disk"1647 else1648 CopyImageToDisk $j $boot_dev "boot/root disk"1649 fi1650 count=11651 for i in `find $imagesdir | fgrep mindi-data` ; do1652 CopyImageToDisk $i $data_dev "data disk #$count"1653 count=$(($count+1))1654 done1655 }1656 1657 1628 1658 1629 … … 1688 1659 cp $kernelpath $TMP_ROOT/iso/isolinux/vmlinuz || Die "Cannot copy vmlinuz ($kernelpath) to mondo root ($MONDO_ROOT/isolinux/vmlinuz). Did you run out of disk space?" 1689 1660 cp $TMP_ROOT/mindi.rdz $TMP_ROOT/iso/isolinux/initrd.img 1690 cp $TMP_ROOT/mindi.rdz $ imagesdir/initrd.img1661 cp $TMP_ROOT/mindi.rdz $CACHEDIR/initrd.img 1691 1662 [ -e "$iso_cfg_file" ] || Die "FIXME - unable to find $iso_cfg_file - this should never occur" 1692 1663 cd $TMP_ROOT/iso/isolinux … … 1709 1680 fi 1710 1681 if [ "$ARCH" != "ia64" ] ; then 1711 mkisofs -U -J -r -o $ imagesdir/mindi.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table . > /dev/null 2> /tmp/$$.mk1712 else 1713 mkisofs -J -r -o $ imagesdir/mindi.iso -b images/mindi-bootroot.$IA64_BOOT_SIZE.img -c isolinux/boot.cat -no-emul-boot . > /dev/null 2> /tmp/$$.mk1682 mkisofs -U -J -r -o $CACHEDIR/mindi.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table . > /dev/null 2> /tmp/$$.mk 1683 else 1684 mkisofs -J -r -o $CACHEDIR/mindi.iso -b images/mindi-bootroot.$IA64_BOOT_SIZE.img -c isolinux/boot.cat -no-emul-boot . > /dev/null 2> /tmp/$$.mk 1714 1685 fi 1715 1686 if [ "$?" -ne "0" ] ; then … … 1720 1691 LogIt "Failed to create ISO image.\n" 1721 1692 else 1722 echo "Created bootable ISO image at $ imagesdir/mindi.iso" >> $LOGFILE1693 echo "Created bootable ISO image at $CACHEDIR/mindi.iso" >> $LOGFILE 1723 1694 fi 1724 1695 rm -f /tmp/$$.mk … … 2174 2145 [ "$retval" -ne "0" ] && LogIt "PrepareBootDiskImage() is returning nonzero\n" 2175 2146 return $retval 2176 }2177 2178 2179 2180 2181 PrepareDataDiskImages() {2182 local needlist bigdir minidir_root tardir diskdir imagesdir res i j k old_pwd lines2183 2184 imagesdir=$12185 rm -f $imagesdir/mindi-*.img $imagesdir/[0-9]*.tar.gz $imagesdir/mindi.iso2186 needlist=$TMP_ROOT/what-we-need.txt2187 bigdir=$TMP_ROOT/bigdir2188 minidir_root=$TMP_ROOT/minidir2189 mkdir -p $minidir_root2190 mkdir -p $bigdir/usr/bin2191 tardir=$TMP_ROOT/tardir2192 2193 lines=`grep -vx " *#.*" $MINDI_CONF/deplist.txt $DEPLIST_DIR/* | grep -vx "" | wc -l`2194 cat $MINDI_CONF/deplist.txt $DEPLIST_DIR/* | GenerateGiantDependencyList $needlist $lines2195 res=$?2196 if [ "$YOUR_KERNEL_SUCKS" ]; then2197 pwd=`pwd`2198 cd $TMP_ROOT2199 for i in `ListKernelModulePaths | HackPathsToFailsafe` ; do2200 cp --parents -pRdf ./$i $bigdir || Die "PDDI can't cp $i->$bigdir"2201 if [ "`du -sk $i | cut -f1`" -lt "$(($CHOPSIZE*2))" ] ; then2202 cp --parents -pRdf $i $bigdir2203 else2204 ChopUpAndCopyFile $i $bigdir $CHOPSIZE $BIGNO2205 BIGNO=$(($BIGNO+1))2206 fi2207 done2208 for i in $EXTRA_MODS ; do2209 j=`find lib/modules/$FAILSAFE_KVER -name $i.*o 2> /dev/null`2210 [ ! "$j" ] && echo "Warning - cannot find failsafe module $i.o" >> $LOGFILE2211 for k in $j ; do2212 if [ "`du -sk $k | cut -f1`" -lt "$CHOPSIZE" ] ; then2213 cp --parents -pRdf $k $bigdir2214 else2215 ChopUpAndCopyFile $k $bigdir $CHOPSIZE $BIGNO2216 BIGNO=$(($BIGNO+1))2217 fi2218 echo "Added failsafe module $k to ramdisk" >> $LOGFILE2219 done2220 done2221 cd $pwd2222 else2223 ListKernelModulePaths >> $needlist2224 fi2225 if [ "$res" -ne "0" ] ; then2226 Die "You have $res file`PluralOrNot $res` present in dependency list\nbut absent from filesystem."2227 fi2228 FindAndAddUserKeyboardMappingFile2229 mkdir -p $bigdir/tmp2230 if [ "`DidMondoCallMe`" ] ; then2231 MakeMondoConfigFile $TMP_ROOT/mondo-restore.cfg2232 cp -f $TMP_ROOT/mondo-restore.cfg $bigdir/tmp &> /dev/null2233 cp -f $TMP_ROOT/mondo-restore.cfg $CACHE_LOC &> /dev/null2234 fi2235 [ -d "/mnt/.boot.d" ] && echo "Oh Jebus" > $bigdir/tmp/DUMBASS-GENTOO2236 DropOptimizedLibraries $needlist $bigdir2237 echo -en "Assembling dependency files"2238 CopyDependenciesToDirectory < $needlist $bigdir2239 2240 # also copy io.sys and msdos.sys, if we can find them2241 for i in `mount | cut -d' ' -f3` ; do2242 for j in io.sys msdos.sys ; do2243 [ -e "$i/$j" ] && cp -f $i/$j $bigdir2244 done2245 done2246 2247 # master boot record, too2248 i=`cat $MONDO_TMP/BOOTLOADER.DEVICE 2> /dev/null`2249 if [ "$i" ] ; then2250 LogIt "Backing up $i's MBR\n"2251 dd if=$i of=$bigdir/BOOTLOADER.MBR bs=446 count=1 >> $LOGFILE 2>> $LOGFILE2252 # < < E O F2253 sleep 12254 sync2255 # [ "$?" -ne "0" ] && echo "Failed to save $i's MBR to bigdir" >> $LOGFILE2256 j=$i2257 [ -h "$j" ] && j=`ResolveSoftlink $j`2258 LogIt "Creating /dev/boot_device ($j)\n"2259 mkdir -p $bigdir/dev2260 cp -pRdf $j $bigdir/dev/boot_device || Die "Unable to create /dev/boot_device on ramdisk"2261 fi2262 2263 # more stuff2264 # cp -f $MINDI_LIB/embleer* $bigdir2265 old_pwd=`pwd`2266 cd $bigdir2267 2268 [ -e "$MINDI_LIB/aux-tools" ] || Die "aux-tools not found in Mindi's home dir. Do you have multiple copies of Mindi lying around? Please delete them. No, don't e-mail me and ask how. ;) Use 'rm'."2269 cp -Rdf $MINDI_LIB/aux-tools/* . 2>> $LOGFILE || LogIt "Warning - error occurred while unzipping aux-tools\n"2270 if [ -e "$MINDI_LIB/x11-tools.tgz" ] ; then2271 tar -zxf $MINDI_LIB/x11-tools.tgz 2>> $LOGFILE || LogIt "Warning - error occurred while unzipping x11-tools.tgz\n"2272 fi2273 if [ -e "$MONDO_SHARE/restore-scripts" ] ; then2274 cp -Rdf $MONDO_SHARE/restore-scripts/* . 2>> $LOGFILE2275 [ "$?" -ne "0" ] && [ "`DidMondoCallMe`" ] && Die "Cannot find/install $MONDO_SHARE/restore-scripts"2276 fi2277 [ -d "/lib/dev-state" ] && cp --parents -pRdf /lib/dev-state .2278 cd $old_pwd2279 echo -e "$DONE"2280 TOTAL_BIGDIR_SIZE=`du -sk $bigdir | cut -f1`2281 SplitDirectoryIntoMinidirs $bigdir $minidir_root2282 noof_disks=$?2283 [ "$noof_disks" -eq "0" ] && Die "Too much stuff!"2284 MakeMountlist $TMP_ROOT/mountlist.txt2285 mkdir -p $minidir_root/$noof_disks/tmp2286 cp -f $TMP_ROOT/mountlist.txt $minidir_root/$noof_disks/tmp/mountlist.txt || Die "Cannot copy mountlist.txt from $TMP_ROOT to data disk"2287 cp -f $TMP_ROOT/mountlist.txt $CACHE_LOC2288 [ "`DidMondoCallMe`" ] && cp -f $minidir_root/$noof_disks/tmp/mountlist.txt $MONDO_TMP/.2289 [ -d "/proc/lvm" ] && $MINDI_SBIN/analyze-my-lvm > $minidir_root/$noof_disks/tmp/i-want-my-lvm2290 [ -d "/dev/mapper" ] && $MINDI_SBIN/analyze-my-lvm > $minidir_root/$noof_disks/tmp/i-want-my-lvm2291 cat $minidir_root/$noof_disks/tmp/mountlist.txt >> $LOGFILE2292 ZipMinidirsIntoTarballs $minidir_root $tardir $noof_disks2293 CreateDataDiskImagesFromTarballs $tardir $imagesdir $noof_disks2294 FRIENDLY_OUTSTRING="Boot and data disk images were created."2295 # One 1.72MB boot disk, one 2.88MB boot disk and $noof_disks data disk images2296 rmdir $tardir $bigdir2297 rm -f $needlist2298 return $noof_disks2299 2147 } 2300 2148 … … 2925 2773 while [ "$diskno" -le "$noof_disks" ] ; do 2926 2774 cd $minidir_root/$diskno || LogIt "Warning - cannot cd to $minidir_root/$diskno\n" 2927 tar -cf - . 2>> $LOGFILE | gzip -9 > $tardir/$diskno.tar.gz || Die "Can't tar/gzip disk#$diskno; please tell Hugo-exactly- what the errors where."2775 tar -cf - . 2>> $LOGFILE | gzip -9 > $tardir/$diskno.tar.gz || Die "Can't tar/gzip disk#$diskno; please tell dev team -exactly- what the errors where." 2928 2776 diskno=$(($diskno+1)) 2929 2777 echo -n "..." … … 2975 2823 if [ "$1" = "-V" ] || [ "$1" = "-v" ] || [ "$1" = "--version" ] || [ "$1" = "-version" ] ; then 2976 2824 echo "mindi v$MINDI_VERSION" 2825 exit 0 2826 fi 2827 2828 if [ "$1" = "-printvar" ] ; then 2829 shift 2830 if [ _"$1" != _"" ] ; then 2831 set | egrep "^$1" | cut -d= -f2 2832 fi 2977 2833 exit 0 2978 2834 fi … … 3026 2882 BIGNO=0 3027 2883 MAX_COMPRESSED_SIZE=1300 3028 imagesdir=/root/images/mindi 3029 mkdir -p $imagesdir 2884 imagesdir=$CACHEDIR 3030 2885 kernelpath="" 3031 2886 MONDO_ROOT=/tmp/mindilinux/mondo-root … … 3062 2917 exit $? 3063 2918 elif [ "$1" = " --version" ] || [ "$1" = "-v" ] ; then 3064 echo "Mindi v$MINDI_VERSION"2919 echo "Mindi v$MINDI_VERSION" 3065 2920 exit 0 3066 2921 elif [ "$#" -ge "9" ] && [ "$1" = "--custom" ] ; then 3067 TMP_ROOT=$23068 MONDO_TMP=$23069 imagesdir=$33070 kernelpath=$4; [ "$kernelpath" = "(null)" ] && kernelpath=""2922 TMP_ROOT=$2 2923 MONDO_TMP=$2 2924 imagesdir=$3 2925 kernelpath=$4; [ "$kernelpath" = "(null)" ] && kernelpath="" 3071 2926 ### 3072 2927 ### Sq-Modification... … … 3075 2930 ### 3076 2931 kernelname=`echo $kernelpath | cut -d'-' -f2-` 3077 LogIt "kernelname = $kernelname\n"3078 LogIt "kernelpath = $kernelpath\n"2932 LogIt "kernelname = $kernelname\n" 2933 LogIt "kernelpath = $kernelpath\n" 3079 2934 if [ ! -d "/lib/modules/$kernelname" ] && [ "$kernelpath" != "FAILSAFE" ] 3080 2935 then … … 3088 2943 ### end of Sq-Modification 3089 2944 ### 3090 TAPEDEV=$53091 TAPESIZE=$63092 FILES_IN_FILELIST=$73093 USE_LZO=$83094 CDRECOVERY=$92945 TAPEDEV=$5 2946 TAPESIZE=$6 2947 FILES_IN_FILELIST=$7 2948 USE_LZO=$8 2949 CDRECOVERY=$9 3095 2950 if [ "${10}" = "(null)" ] || [ "${10}" = "" ] ; then 3096 2951 IMAGE_DEVS="" … … 3098 2953 IMAGE_DEVS="`echo "${10}" | tr '|' ' '`" 3099 2954 fi 3100 if [ "${11}" ] ; then3101 LILO_OPTIONS=""2955 if [ "${11}" ] ; then 2956 LILO_OPTIONS="" 3102 2957 # LogIt "LILO will use conservative settings, to be compatible with older BIOSes." 3103 fi3104 LAST_FILELIST_NUMBER=${12}2958 fi 2959 LAST_FILELIST_NUMBER=${12} 3105 2960 ESTIMATED_TOTAL_NOOF_SLICES=${13} 3106 2961 EXCLUDE_DEVS="${14}" 3107 2962 USE_COMP="${15}" 3108 2963 USE_LILO="${16}" 3109 USE_STAR="${17}"3110 INTERNAL_TAPE_BLOCK_SIZE="${18}"2964 USE_STAR="${17}" 2965 INTERNAL_TAPE_BLOCK_SIZE="${18}" 3111 2966 DIFFERENTIAL="${19}" 3112 2967 NOT_BOOT="${20}" 3113 2968 [ "$USE_COMP" = "" ] && USE_COMP=yes 3114 2969 [ "$NOT_BOOT" = "" ] && NOT_BOOT=no 3115 [ "$TAPEDEV" ] && LogIt "This is a tape-based backup. Fine.\n"3116 [ "$kernelpath" = "" ] && kernelpath=`TryToFindKernelPath`2970 [ "$TAPEDEV" ] && LogIt "This is a tape-based backup. Fine.\n" 2971 [ "$kernelpath" = "" ] && kernelpath=`TryToFindKernelPath` 3117 2972 kernelname=`echo $kernelpath | cut -d'-' -f2-` 3118 2973 if [ ! -d "/lib/modules/$kernelname" ] && [ "$kernelpath" != "FAILSAFE" ] … … 3124 2979 LogIt "Using modules for kernel: ${kernelname}\n" 3125 2980 fi 3126 [ "$CDRECOVERY" = "yes" ] && [ "$TAPEDEV" != "" ] && Die "Sorry, you can't use --cd-recovery and --write-tapes at the same time"2981 [ "$CDRECOVERY" = "yes" ] && [ "$TAPEDEV" != "" ] && Die "Sorry, you can't use --cd-recovery and --write-tapes at the same time" 3127 2982 MONDO_ROOT=`echo $imagesdir | sed 's/\(.*\)\/.*/\1/'` 3128 [ "$MONDO_ROOT" = "" ] && Die "MONDO_ROOT is undefined"3129 else 3130 echo "Syntax: mindi (--custom ....)" >> /dev/stderr3131 exit 12983 [ "$MONDO_ROOT" = "" ] && Die "MONDO_ROOT is undefined" 2984 else 2985 echo "Syntax: mindi (--custom ....)" >> /dev/stderr 2986 exit 1 3132 2987 fi 3133 2988 fi … … 3143 2998 3144 2999 3145 3146 3147 #ReplaceIndividualLine /tmp/init `grep -n "#WHOLIVESINAPINEAPPLEUNDERTHESEA#" /tmp/init | cut -d':' -f1` "$RUN_AFTER_INITIAL_BOOT_PHASE"3148 #exit 03149 3150 3151 #ListKernelModules3152 #exit 03153 3154 3155 3156 3157 3000 [ -e "$iso_cfg_file" ] || Die "Cannot find $iso_cfg_file" 3158 3001 rm -Rf $TMP_ROOT/mindilinux/* 3159 3002 TMP_ROOT=$TMP_ROOT/mindilinux/$$ 3160 3003 mkdir -p $TMP_ROOT 3161 mkdir -p $imagesdir3162 3004 if [ ! "`DidMondoCallMe`" ] ; then 3163 3005 LogIt "Mindi Linux mini-distro generator v$MINDI_VERSION\n" 3164 LogIt "Latest Mindi is available from http:// mondorescue.berlios.de\n"3006 LogIt "Latest Mindi is available from http://www.mondorescue.org\n" 3165 3007 LogIt "BusyBox sources are available from http://www.busybox.net\n" 3166 3008 LogIt "------------------------------------------------------------------------------" … … 3204 3046 fi 3205 3047 if [ "$USE_OWN_KERNEL" = "yes" ]; then 3206 YOUR_KERNEL_SUCKS=""3207 kernelpath=`TryToFindKernelPath`3208 if [ "$kernelpath" = "" ] ; then3209 echo -n "Please enter kernel path : "3210 read kernelpath3211 fi3212 else 3213 YOUR_KERNEL_SUCKS="That's why you're using mine, dude. :-)"3048 YOUR_KERNEL_SUCKS="" 3049 kernelpath=`TryToFindKernelPath` 3050 if [ "$kernelpath" = "" ] ; then 3051 echo -n "Please enter kernel path : " 3052 read kernelpath 3053 fi 3054 else 3055 YOUR_KERNEL_SUCKS="That's why you're using mine, dude. :-)" 3214 3056 fi 3215 3057 fi … … 3240 3082 [ "$YOUR_KERNEL_SUCKS" ] && [ ! "$FAILSAFE_KVER" ] && Die "Please install mindi-kernel package. You need it. Go to http://www.mondorescue.org and download it, then install it." 3241 3083 3242 rm -f /root/images/mindi/{*img,*gz,*iso} 3243 3244 PrepareDataDiskImages $imagesdir 3084 rm -f $CACHEDIR/{*img,*gz,*iso} 3085 3086 rm -f $imagesdir/mindi-*.img $imagesdir/[0-9]*.tar.gz $imagesdir/mindi.iso 3087 needlist=$TMP_ROOT/what-we-need.txt 3088 bigdir=$TMP_ROOT/bigdir 3089 minidir_root=$TMP_ROOT/minidir 3090 mkdir -p $minidir_root 3091 mkdir -p $bigdir/usr/bin 3092 tardir=$TMP_ROOT/tardir 3093 3094 lines=`grep -vx " *#.*" $MINDI_CONF/deplist.txt $DEPLIST_DIR/* | grep -vx "" | wc -l` 3095 cat $MINDI_CONF/deplist.txt $DEPLIST_DIR/* | GenerateGiantDependencyList $needlist $lines 3096 res=$? 3097 if [ "$YOUR_KERNEL_SUCKS" ]; then 3098 pwd=`pwd` 3099 cd $TMP_ROOT 3100 for i in `ListKernelModulePaths | HackPathsToFailsafe` ; do 3101 cp --parents -pRdf ./$i $bigdir || Die "PDDI can't cp $i->$bigdir" 3102 if [ "`du -sk $i | cut -f1`" -lt "$(($CHOPSIZE*2))" ] ; then 3103 cp --parents -pRdf $i $bigdir 3104 else 3105 ChopUpAndCopyFile $i $bigdir $CHOPSIZE $BIGNO 3106 BIGNO=$(($BIGNO+1)) 3107 fi 3108 done 3109 for i in $EXTRA_MODS ; do 3110 j=`find lib/modules/$FAILSAFE_KVER -name $i.*o 2> /dev/null` 3111 [ ! "$j" ] && echo "Warning - cannot find failsafe module $i.o" >> $LOGFILE 3112 for k in $j ; do 3113 if [ "`du -sk $k | cut -f1`" -lt "$CHOPSIZE" ] ; then 3114 cp --parents -pRdf $k $bigdir 3115 else 3116 ChopUpAndCopyFile $k $bigdir $CHOPSIZE $BIGNO 3117 BIGNO=$(($BIGNO+1)) 3118 fi 3119 echo "Added failsafe module $k to ramdisk" >> $LOGFILE 3120 done 3121 done 3122 cd $pwd 3123 else 3124 ListKernelModulePaths >> $needlist 3125 fi 3126 if [ "$res" -ne "0" ] ; then 3127 Die "You have $res file`PluralOrNot $res` present in dependency list\nbut absent from filesystem." 3128 fi 3129 FindAndAddUserKeyboardMappingFile 3130 mkdir -p $bigdir/tmp 3131 if [ "`DidMondoCallMe`" ] ; then 3132 MakeMondoConfigFile $TMP_ROOT/mondo-restore.cfg 3133 cp -f $TMP_ROOT/mondo-restore.cfg $bigdir/tmp &> /dev/null 3134 cp -f $TMP_ROOT/mondo-restore.cfg $CACHEDIR &> /dev/null 3135 fi 3136 [ -d "/mnt/.boot.d" ] && echo "Oh Jebus" > $bigdir/tmp/DUMBASS-GENTOO 3137 DropOptimizedLibraries $needlist $bigdir 3138 echo -en "Assembling dependency files" 3139 CopyDependenciesToDirectory < $needlist $bigdir 3140 3141 # also copy io.sys and msdos.sys, if we can find them 3142 for i in `mount | cut -d' ' -f3` ; do 3143 for j in io.sys msdos.sys ; do 3144 [ -e "$i/$j" ] && cp -f $i/$j $bigdir 3145 done 3146 done 3147 3148 # master boot record, too 3149 i=`cat $MONDO_TMP/BOOTLOADER.DEVICE 2> /dev/null` 3150 if [ "$i" ] ; then 3151 LogIt "Backing up $i's MBR\n" 3152 dd if=$i of=$bigdir/BOOTLOADER.MBR bs=446 count=1 >> $LOGFILE 2>> $LOGFILE 3153 # < < E O F 3154 sleep 1 3155 sync 3156 # [ "$?" -ne "0" ] && echo "Failed to save $i's MBR to bigdir" >> $LOGFILE 3157 j=$i 3158 [ -h "$j" ] && j=`ResolveSoftlink $j` 3159 LogIt "Creating /dev/boot_device ($j)\n" 3160 mkdir -p $bigdir/dev 3161 cp -pRdf $j $bigdir/dev/boot_device || Die "Unable to create /dev/boot_device on ramdisk" 3162 fi 3163 3164 # more stuff 3165 # cp -f $MINDI_LIB/embleer* $bigdir 3166 old_pwd=`pwd` 3167 cd $bigdir 3168 3169 [ -e "$MINDI_LIB/aux-tools" ] || Die "aux-tools not found in Mindi's home dir. Do you have multiple copies of Mindi lying around? Please delete them. No, don't e-mail me and ask how. ;) Use 'rm'." 3170 cp -Rdf $MINDI_LIB/aux-tools/* . 2>> $LOGFILE || LogIt "Warning - error occurred while unzipping aux-tools\n" 3171 if [ -e "$MINDI_LIB/x11-tools.tgz" ] ; then 3172 tar -zxf $MINDI_LIB/x11-tools.tgz 2>> $LOGFILE || LogIt "Warning - error occurred while unzipping x11-tools.tgz\n" 3173 fi 3174 if [ -e "$MONDO_SHARE/restore-scripts" ] ; then 3175 cp -Rdf $MONDO_SHARE/restore-scripts/* . 2>> $LOGFILE 3176 [ "$?" -ne "0" ] && [ "`DidMondoCallMe`" ] && Die "Cannot find/install $MONDO_SHARE/restore-scripts" 3177 fi 3178 [ -d "/lib/dev-state" ] && cp --parents -pRdf /lib/dev-state . 3179 cd $old_pwd 3180 echo -e "$DONE" 3181 TOTAL_BIGDIR_SIZE=`du -sk $bigdir | cut -f1` 3182 SplitDirectoryIntoMinidirs $bigdir $minidir_root 3245 3183 noof_disks=$? 3184 [ "$noof_disks" -eq "0" ] && Die "Too much stuff!" 3185 MakeMountlist $TMP_ROOT/mountlist.txt 3186 mkdir -p $minidir_root/$noof_disks/tmp 3187 cp -f $TMP_ROOT/mountlist.txt $minidir_root/$noof_disks/tmp/mountlist.txt || Die "Cannot copy mountlist.txt from $TMP_ROOT to data disk" 3188 cp -f $TMP_ROOT/mountlist.txt $CACHEDIR 3189 [ "`DidMondoCallMe`" ] && cp -f $minidir_root/$noof_disks/tmp/mountlist.txt $MONDO_TMP/. 3190 [ -d "/proc/lvm" ] && $MINDI_SBIN/analyze-my-lvm > $minidir_root/$noof_disks/tmp/i-want-my-lvm 3191 [ -d "/dev/mapper" ] && $MINDI_SBIN/analyze-my-lvm > $minidir_root/$noof_disks/tmp/i-want-my-lvm 3192 cat $minidir_root/$noof_disks/tmp/mountlist.txt >> $LOGFILE 3193 ZipMinidirsIntoTarballs $minidir_root $tardir $noof_disks 3194 CreateDataDiskImagesFromTarballs $tardir $imagesdir $noof_disks 3195 FRIENDLY_OUTSTRING="Boot and data disk images were created." 3196 # One 1.72MB boot disk, one 2.88MB boot disk and $noof_disks data disk images 3197 rmdir $tardir $bigdir 3198 rm -f $needlist 3199 #return $noof_disks 3200 3246 3201 ramdisk_size=$(($size_of_all_tools+$EXTRA_SPACE)) 3247 3202 rds=$(($ramdisk_size-$((ramdisk_size%4096)))) … … 3288 3243 [ ! -e "$boot_dev" ] && mknod $boot_dev b 2 60 3289 3244 [ ! -e "$boot_dev" ] && boot_dev=/dev/fd0H1722 3290 [ ! -e "$boot_dev" ] && Die " Oh Lord, will you PLEASE tell the vendor to create the 1.72MB devices in /dev?"3245 [ ! -e "$boot_dev" ] && Die "Will you PLEASE tell your distribution maker to create the 1.72MB devices in /dev?" 3291 3246 if [ "$PROMPT_WRITE_BOOT_FLOPPIES" = "yes" ]; then 3292 OfferToCopyImagesToDisks $imagesdir $boot_dev $FDDEVICE 3247 echo -en "Would you like to create boot+data floppy disks now (y/n) ?" 3248 read i 3249 [ "$i" != "y" ] && [ "$i" != "Y" ] && return 3250 mount | fgrep /dev/fd > /dev/null && Die "Please unmount your floppies first." 3251 echo "WARNING! THIS WILL ERASE YOUR FLOPPY DISKS." 3252 [ ! -e "$boot_dev" ] && Die "Cannot find $boot_dev - is your Linux distro broken?" 3253 [ ! -e "$FDDEVICE" ] && Die "Cannot find $FDDEVICE - is your Linux distro broken?" 3254 i=`find $imagesdir -type f | fgrep "/mindi-root.1" 2> /dev/null` 3255 j=`find $imagesdir -type f | fgrep "/mindi-boot" | egrep -v '2880|5760'` 3256 if [ "$i" ] ; then 3257 CopyImageToDisk $j $FDDEVICE "boot disk" 3258 CopyImageToDisk $i $FDDEVICE "root disk" 3259 else 3260 CopyImageToDisk $j $boot_dev "boot/root disk" 3261 fi 3262 count=1 3263 for i in `find $imagesdir | fgrep mindi-data` ; do 3264 CopyImageToDisk $i $FDDEVICE "data disk #$count" 3265 count=$(($count+1)) 3266 done 3293 3267 fi 3294 3268 OfferToMakeBootableISO $imagesdir 3295 3269 LogIt "Finished.\n" 3296 3270 elif [ "$TAPEDEV" ] ; then 3297 mkdir -p /root/images/mindi 3298 rm -f /root/images/mindi/{*img,*gz,*iso} 3271 rm -f $CACHEDIR/{*img,*gz,*iso} 3299 3272 OfferToMakeBootableISO $imagesdir 3300 3273 if [ -e "$imagesdir/all.tar.gz" ] ; then … … 3305 3278 else 3306 3279 OfferToMakeBootableISO $imagesdir 3307 fi3308 if [ "$imagesdir" != "/root/images/mindi" ] ; then3309 for i in `find $imagesdir -maxdepth 1 -name "*.iso" -o -name "*.img"` ; do3310 cp -f $i /root/images/mindi || LogIt "[line 3260] Cannot copy $i to /root/images/mindi\n"3311 done3312 3280 fi 3313 3281 [ "$TMP_ROOT" != "/tmp" ] && rm -Rf $TMP_ROOT -
trunk/mondo/distributions/conf/mondo.conf
r537 r539 13 13 # as they will be generated by mondoarchive 14 14 # 15 iso_creation_cmd="/usr/bin/mkisofs"15 mondo_iso_creation_cmd="/usr/bin/mkisofs" 16 16 #iso_creation_cmd="/usr/bin/growisofs" 17 17 … … 20 20 # do not specify the -o, -c or the -b options, nor the directory to backup 21 21 # 22 iso_creation_options="-J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL_Version -V _CD#_"22 mondo_iso_creation_options="-J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL_Version -V _CD#_" 23 23 #iso_creation_options="-use-the-force-luke -v -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL_Version -V _CD#_" 24 24 … … 26 26 # ISO Burning CLI command to use 27 27 # 28 iso_burning_cmd="/usr/bin/cdrecord"28 mondo_iso_burning_cmd="/usr/bin/cdrecord" 29 29 30 30 # 31 31 # ISO Burning CLI command options 32 iso_burning_options="-eject dev=%s speed=%d fs=24m driveropts=burnfree"32 mondo_iso_burning_options="-eject dev=%s speed=%d fs=24m driveropts=burnfree" 33 33 34 34 # 35 35 # ISO Burning Speed (optional) 36 36 # 37 # iso_burning_speed=137 #mondo_iso_burning_speed=1 38 38 39 39 # … … 42 42 # Use 4380 for DVDs, 650 or 700 for CDs 43 43 # 44 m edia_size=438044 mondo_media_size=4380 45 45 46 46 # … … 49 49 # Use /dev/hdc, /dev/sr0, /dev/st0, ATAPI:0,0,0, ... 50 50 # 51 m edia_device="/dev/hdc"51 mondo_media_device="/dev/hdc" 52 52 53 53 # 54 54 # Is the CD tray manual ? (yes|no) 55 55 # 56 m anual_tray=no56 mondo_manual_tray=no 57 57 58 58 # 59 59 # Default log level 60 60 # 61 log_level=461 mondo_log_level=4 62 62 63 63 # 64 64 # default prefix for ISO names 65 65 # 66 prefix=mondorescue66 mondo_prefix=mondorescue 67 67 68 68 # 69 69 # External tape blocksize 70 70 # 71 external_tape_blocksize=13107271 mondo_external_tape_blocksize=131072 72 72 73 73 # 74 74 # Internal tape blocksize 75 75 # 76 internal_tape_blocksize=819276 mondo_internal_tape_blocksize=8192 77 77 78 78 # 79 79 # Size of the slices for biggiefiles 80 80 # 81 slice_size=409681 mondo_slice_size=4096 82 82 83 83 # 84 84 # deplist file used 85 85 # 86 deplist_file="/etc/mondorescue/deplist.txt"86 mondo_deplist_file="/etc/mondo/deplist.txt" 87 87 88 88 # 89 89 # Write boot floppies (yes|no) ? 90 90 # 91 write_boot_floppy=no91 mondo_write_boot_floppy=no 92 92 93 93 # 94 # Write mindi CD (yes|no) ?94 # Create mindi CD (yes|no) ? 95 95 # 96 write_mindi_cd=no96 mondo_create_mindi_cd=no 97 97 98 98 # 99 99 # Kernel to use (NATIVE|FAILSAFE|PATH TO THE KERNEL) 100 100 # 101 mondo rescue_kernel="NATIVE"101 mondo_kernel="NATIVE" 102 102 #mondorescue_kernel="/boot/vmlinuz.special" 103 103 104 104 # 105 # Additi nal modules to support105 # Additional modules to support 106 106 # (white space separated list of modules) 107 107 # 108 additional_modules=""108 mondo_additional_modules="" 109 109 110 110 # … … 112 112 # (GRUB|ELILO|LILO|RAW|NATIVE) 113 113 # 114 boot_loader=NATIVE114 mondo_boot_loader=NATIVE 115 115 116 116 # 117 117 # Differential backup or full (yes|no) 118 118 # 119 differential=no119 mondo_differential=no 120 120 121 121 # 122 122 # Default compression tool 123 123 # 124 compression_tool="/usr/bin/bzip2"124 mondo_compression_tool="/usr/bin/bzip2" 125 125 126 126 # 127 127 # Default compression level 128 128 # 129 compression_level=3129 mondo_compression_level=3 130 130 131 131 # … … 133 133 # (white space separated list of paths) 134 134 # 135 exclude_files=""135 mondo_exclude_files="" 136 136 137 137 # … … 139 139 # (white space separated list of paths) 140 140 # 141 include_files=""141 mondo_include_files="" 142 142 143 143 # 144 144 # Activate semi-graphical mode by default (yes|no) 145 145 # 146 text_mode=no146 mondo_text_mode=no 147 147 148 148 # … … 150 150 # (look at -H option in man page) 151 151 # 152 automatic_restore=no152 mondo_automatic_restore=no 153 153 154 154 # 155 155 # Scratch directory 156 156 # 157 scratch_dir=""157 mondo_scratch_dir="" 158 158 #scratch_dir="/tmp/mondo/scratch" 159 159 … … 161 161 # Temporary directory 162 162 # 163 tmp_dir=""163 mondo_tmp_dir="" 164 164 #tmp_dir="/tmp/mondo/tmp" 165 165 … … 167 167 # Images creation dir 168 168 # 169 images_dir="/var/cache/mondo"169 mondo_images_dir="/var/cache/mondo" -
trunk/mondo/mondo/common/Makefile.am
r507 r539 9 9 libmondo_a_SOURCES = libmondo-archive.c libmondo-devices.c libmondo-fifo.c \ 10 10 libmondo-filelist.c libmondo-files.c libmondo-fork.c \ 11 libmondo-mountlist.c libmondo-raid.c \11 libmondo-mountlist.c libmondo-raid.c libmondo-msg.c \ 12 12 libmondo-stream.c libmondo-string.c libmondo-tools.c \ 13 13 libmondo-verify.c newt-specific.c \ -
trunk/mondo/mondo/common/libmondo-archive-EXT.h
r483 r539 15 15 extern int make_slices_and_images(struct s_bkpinfo *bkpinfo, 16 16 char *biggielist_fname); 17 extern int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile);17 extern int make_iso_fs(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *destfile); 18 18 extern int make_afioballs_and_images(struct s_bkpinfo *bkpinfo); 19 19 extern int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...); -
trunk/mondo/mondo/common/libmondo-archive.c
r507 r539 419 419 * @ingroup archiveGroup 420 420 */ 421 int backup_data(struct s_bkpinfo *bkpinfo )421 int backup_data(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf) 422 422 { 423 423 int retval = 0, res = 0; … … 485 485 run_program_and_log_output(tmp, 1); 486 486 paranoid_free(tmp); 487 retval += make_those_afios_phase(bkpinfo); // backup regular files488 487 retval += make_those_slices_phase(bkpinfo); // backup BIG files 489 488 retval += do_that_final_phase(bkpinfo); // clean up … … 876 875 if (!res) { 877 876 log_to_screen("Boot+data disks were created OK"); 878 asprintf(&command, "mkdir -p / root/images/mindi/");877 asprintf(&command, "mkdir -p /var/cache/mindi/"); 879 878 log_msg(2, command); 880 879 run_program_and_log_output(command, FALSE); … … 882 881 883 882 asprintf(&command, 884 "cp -f %s/images/mindi.iso / root/images/mindi/mondorescue.iso",883 "cp -f %s/images/mindi.iso /var/cache/mindi/mondorescue.iso", 885 884 bkpinfo->scratchdir); 886 885 log_msg(2, command); … … 1107 1106 * @ingroup MLarchiveGroup 1108 1107 */ 1109 int do_that_final_phase(struct s_bkpinfo *bkpinfo )1108 int do_that_final_phase(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf) 1110 1109 { 1111 1110 … … 1126 1125 } else { 1127 1126 /* write final ISO */ 1128 res = write_final_iso_if_necessary(bkpinfo );1127 res = write_final_iso_if_necessary(bkpinfo, mrconf); 1129 1128 retval += res; 1130 1129 if (res) { … … 1406 1405 * @return The number of errors encountered (0 for success) 1407 1406 */ 1408 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo )1407 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf) 1409 1408 { 1410 1409 … … 1548 1547 NULL); 1549 1548 } else { 1550 res = move_files_to_cd(bkpinfo, storing_filelist_fname, 1551 curr_xattr_list_fname, 1552 curr_acl_list_fname, 1553 storing_afioball_fname, NULL); 1549 res = 1550 move_files_to_cd(bkpinfo, mrconf, storing_filelist_fname, 1551 curr_xattr_list_fname, 1552 curr_acl_list_fname, 1553 storing_afioball_fname, NULL); 1554 1554 } 1555 1555 paranoid_free(storing_filelist_fname); … … 1628 1628 * @return The number of errors encountered (0 for success) 1629 1629 */ 1630 int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile)1630 int make_iso_fs(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *destfile) 1631 1631 { 1632 1632 /*@ int ********************************************** */ … … 1822 1822 #ifdef __IA64__ 1823 1823 log_msg(1, "IA64 --> elilo"); 1824 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); 1824 1825 res = eval_call_to_make_ISO(bkpinfo, 1825 "mkisofs -no-emul-boot -b images/mindi-bootroot." 1826 IA64_BOOT_SIZE 1827 ".img -c boot.cat -o _ISO_ -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", 1826 tmp2, 1828 1827 destfile, 1829 1828 g_current_media_number, … … 1833 1832 // FIXME --- change mkisofs string to MONDO_MKISOFS_REGULAR_SYSLINUX/LILO depending on bkpinfo->make_cd_usE_lilo 1834 1833 // and add ' .' at end 1834 paranoid_free(tmp2); 1835 1835 log_msg(1, "Non-ia64 --> lilo"); 1836 1836 res = eval_call_to_make_ISO(bkpinfo, … … 1956 1956 */ 1957 1957 int 1958 make_slices_and_images(struct s_bkpinfo *bkpinfo, char *biggielist_fname)1958 make_slices_and_images(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *biggielist_fname) 1959 1959 { 1960 1960 … … 2029 2029 } else { 2030 2030 // Call ntfsclone (formerly partimagehack) if it's a /dev entry (i.e. a partition to be imaged) 2031 log_msg(2, "bigfile_fname = %s", bigfile_fname);2031 log_msg(2, "bigfile_fname = '%s'", bigfile_fname); 2032 2032 use_ntfsprog = FALSE; 2033 2033 if (!strncmp(bigfile_fname, "/dev/", 5) … … 2076 2076 } 2077 2077 res = 2078 slice_up_file_etc(bkpinfo, bigfile_fname,2078 slice_up_file_etc(bkpinfo, mrconf, bigfile_fname, 2079 2079 ntfsprog_fifo, biggie_file_number, 2080 2080 noof_biggie_files, use_ntfsprog); … … 2125 2125 * @see make_afioballs_and_images 2126 2126 */ 2127 int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo )2127 int make_afioballs_and_images_OLD(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf) 2128 2128 { 2129 2129 … … 2198 2198 res = move_files_to_stream(bkpinfo, curr_afioball_fname, NULL); 2199 2199 } else { 2200 res = move_files_to_cd(bkpinfo, curr_filelist_fname, 2201 curr_xattr_list_fname, 2202 curr_acl_list_fname, 2203 curr_afioball_fname, NULL); 2200 res = 2201 move_files_to_cd(bkpinfo, mrconf, curr_filelist_fname, 2202 curr_xattr_list_fname, 2203 curr_acl_list_fname, curr_afioball_fname, 2204 NULL); 2204 2205 } 2205 2206 retval += res; … … 2246 2247 * @ingroup MLarchiveGroup 2247 2248 */ 2248 int make_those_afios_phase(struct s_bkpinfo *bkpinfo )2249 int make_those_afios_phase(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf) 2249 2250 { 2250 2251 /*@ int ******************************************* */ … … 2263 2264 log_msg(1, 2264 2265 "Using single-threaded make_afioballs_and_images() to suit b0rken FreeBSD 5.0"); 2265 res = make_afioballs_and_images_OLD(bkpinfo );2266 res = make_afioballs_and_images_OLD(bkpinfo, mrconf); 2266 2267 #else 2267 res = make_afioballs_and_images_OLD(bkpinfo );2268 res = make_afioballs_and_images_OLD(bkpinfo, mrconf); 2268 2269 #endif 2269 2270 write_header_block_to_stream(0, "stop-afioballs", 2270 2271 BLK_STOP_AFIOBALLS); 2271 2272 } else { 2272 res = make_afioballs_and_images(bkpinfo );2273 res = make_afioballs_and_images(bkpinfo, mrconf); 2273 2274 } 2274 2275 … … 2376 2377 * transfer files over the network) or leave it as is. 2377 2378 */ 2378 int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...) =2379 int (*move_files_to_cd) (struct s_bkpinfo *, struct s_mrconf *mrconf, char *, ...) = 2379 2380 _move_files_to_cd; 2380 2381 … … 2397 2398 * @return The number of errors encountered (0 for success) 2398 2399 */ 2399 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, char *files_to_add, ...)2400 int _move_files_to_cd(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *files_to_add, ...) 2400 2401 { 2401 2402 … … 2436 2437 if (would_occupy / 1024 > bkpinfo->media_size[g_current_media_number]) { 2437 2438 /* FALSE because this is not the last CD we'll write */ 2438 res = write_iso_and_go_on(bkpinfo, FALSE);2439 res = write_iso_and_go_on(bkpinfo, mrconf, FALSE); 2439 2440 retval += res; 2440 2441 if (res) { … … 2480 2481 * @c backup_media_type field is used in this function. 2481 2482 * @param imagesdir The directory containing the floppy images (usually 2482 * / root/images/mindi).2483 * /var/cache/mindi). 2483 2484 * 2484 2485 * @return The number of errors encountered (0 for success) … … 2653 2654 if (!bkpinfo->nonbootable_backup) { 2654 2655 #ifdef __FreeBSD__ 2655 if (!does_file_exist("/ root/images/mindi/mindi-kern.1722.img"))2656 if (!does_file_exist("/var/cache/mindi/mindi-kern.1722.img")) 2656 2657 #else 2657 if (!does_file_exist("/root/images/mindi/mindi-bootroot.1722.img") 2658 && !does_file_exist("/root/images/mindi/mindi-boot.1440.img")) 2658 if (!does_file_exist("/var/cache/mindi/mindi-bootroot.1722.img") 2659 && !does_file_exist("/var/cache/mindi/mindi-boot.1440.img") 2660 && !does_file_exist("/var/cache/mindi/mindi-boot.2880.img") 2661 && !does_file_exist("/var/cache/mindi/mindi-boot.5760.img")) 2659 2662 #endif 2660 2663 { 2661 2664 mvaddstr_and_log_it(g_currentY++, 74, "No Imgs"); 2662 if (does_file_exist("/ root/images/mindi/mondorescue.iso")) {2665 if (does_file_exist("/var/cache/mindi/mondorescue.iso")) { 2663 2666 popup_and_OK 2664 ("Boot+data floppy creation failed.\nHowever, you may burn / root/images/mindi/mondorescue.iso to a CD\nand boot from that instead if you wish.");2667 ("Boot+data floppy creation failed.\nHowever, you may burn /var/cache/mindi/mondorescue.iso to a CD\nand boot from that instead if you wish."); 2665 2668 res++; 2666 2669 } 2667 2670 } else { 2668 offer_to_write_floppies(bkpinfo, "/ root/images/mindi");2671 offer_to_write_floppies(bkpinfo, "/var/cache/mindi"); 2669 2672 mvaddstr_and_log_it(g_currentY++, 74, "Done."); 2670 2673 } … … 3004 3007 */ 3005 3008 int 3006 slice_up_file_etc(struct s_bkpinfo *bkpinfo, char *biggie_filename,3009 slice_up_file_etc(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *biggie_filename, 3007 3010 char *ntfsprog_fifo, long biggie_file_number, 3008 3011 long noof_biggie_files, bool use_ntfsprog) … … 3127 3130 bkpinfo->tmpdir, ""), NULL); 3128 3131 } else { 3129 res = move_files_to_cd(bkpinfo, 3130 slice_fname(biggie_file_number, 0, 3131 bkpinfo->tmpdir, ""), NULL); 3132 res = 3133 move_files_to_cd(bkpinfo, mrconf, 3134 slice_fname(biggie_file_number, 0, 3135 bkpinfo->tmpdir, ""), NULL); 3132 3136 } 3133 3137 i = bkpinfo->optimal_set_size / 256; … … 3243 3247 res = move_files_to_stream(bkpinfo, file_to_archive, NULL); 3244 3248 } else { 3245 res = move_files_to_cd(bkpinfo, file_to_archive, NULL);3249 res = move_files_to_cd(bkpinfo, mrconf, file_to_archive, NULL); 3246 3250 } 3247 3251 paranoid_free(file_to_archive); … … 3339 3343 * however, this occurs rarely. 3340 3344 */ 3341 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo )3345 int write_final_iso_if_necessary(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf) 3342 3346 { 3343 3347 /*@ int ***************************************************** */ … … 3362 3366 #endif 3363 3367 paranoid_free(tmp); 3364 res = write_iso_and_go_on(bkpinfo, TRUE);3368 res = write_iso_and_go_on(bkpinfo, mrconf, TRUE); 3365 3369 #ifndef _XWIN 3366 3370 if (!g_text_mode) { … … 3390 3394 * @see make_iso_fs 3391 3395 */ 3392 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, bool last_cd)3396 int write_iso_and_go_on(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, bool last_cd) 3393 3397 { 3394 3398 /*@ pointers **************************************************** */ … … 3468 3472 g_current_media_number); 3469 3473 for (that_one_was_ok = FALSE; !that_one_was_ok;) { 3470 res = make_iso_fs(bkpinfo, isofile);3474 res = make_iso_fs(bkpinfo, mrconf, isofile); 3471 3475 if (g_current_media_number == 1 && !res 3472 3476 && (bkpinfo->backup_media_type == cdr … … 3753 3757 setenv("MONDO_SHARE", MONDO_SHARE, 1); 3754 3758 } 3759 3760 void mrarchive_init_conf(struct s_mrconf *mrconf) { 3761 char *command = NULL; 3762 FILE *conffd = NULL; 3763 FILE *fin = NULL; 3764 int n = 0; 3765 char *param = NULL; 3766 3767 mrconf = (struct s_mrconf *)malloc(sizeof(struct s_mrconf)); 3768 if (mrconf == NULL) { 3769 fatal_error("Unable to malloc mrconf"); 3770 } 3771 /* Default for everything int : 0 char * : NULL */ 3772 3773 /* mindi conf parameters also needed in mondo */ 3774 mrconf->ia64_boot_size = 0; 3775 3776 asprintf(&command, "mindi -printvar IA64_BOOT_SIZE"); 3777 fin = popen(command, "r"); 3778 getline(¶m, &n, fin); 3779 pclose(fin); 3780 paranoid_free(command); 3781 mrconf->ia64_boot_size = atoi(param); 3782 paranoid_free(param); 3783 3784 mrconf->iso_creation_cmd = NULL; 3785 3786 /* Finds mondo conf file */ 3787 mrconf_open(MONDO_CONF_DIR"/mondo.conf"); 3788 3789 /* mondo conf parameters needed */ 3790 mrconf->iso_creation_cmd = mrconf_sread(iso_creation_cmd); 3791 3792 mrconf_close(); -
trunk/mondo/mondo/common/libmondo-archive.h
r483 r539 17 17 int make_slices_and_images(struct s_bkpinfo *bkpinfo, 18 18 char *biggielist_fname); 19 int make_iso_fs(struct s_bkpinfo *bkpinfo, char *destfile);19 int make_iso_fs(struct s_bkpinfo *bkpinfo, struct s_mrconf *mrconf, char *destfile); 20 20 int make_afioballs_and_images(struct s_bkpinfo *bkpinfo); 21 21 extern int (*move_files_to_cd) (struct s_bkpinfo *, char *, ...); -
trunk/mondo/mondo/common/libmondo-filelist.c
r507 r539 1536 1536 char *userdef_filelist) 1537 1537 { 1538 char sz_datefile_wildcard[] = "/var/cache/mondo -archive/difflevel.%d";1538 char sz_datefile_wildcard[] = "/var/cache/mondo/difflevel.%d"; 1539 1539 char *p, *q; 1540 1540 char *sz_datefile; … … 1605 1605 asprintf(&exclude_paths, " %s %s %s %s %s %s . .. \ 1606 1606 " MNT_CDROM " " MNT_FLOPPY " /media/cdrom /media/cdrecorder \ 1607 /proc /sys / root/images/mondo /root/images/mindi", excp, call_program_and_get_last_line_of_output("locate /win386.swp 2> /dev/null"), call_program_and_get_last_line_of_output("locate /hiberfil.sys 2> /dev/null"), call_program_and_get_last_line_of_output("locate /pagefile.sys 2> /dev/null"), (tmpdir[0] == '/' && tmpdir[1] == '/') ? (tmpdir + 1) : tmpdir, (scratchdir[0] == '/' && scratchdir[1] == '/') ? (scratchdir + 1) : scratchdir);1607 /proc /sys /tmp /var/cache/mondo /var/cache/mindi", excp, call_program_and_get_last_line_of_output("locate /win386.swp 2> /dev/null"), call_program_and_get_last_line_of_output("locate /hiberfil.sys 2> /dev/null"), call_program_and_get_last_line_of_output("locate /pagefile.sys 2> /dev/null"), (tmpdir[0] == '/' && tmpdir[1] == '/') ? (tmpdir + 1) : tmpdir, (scratchdir[0] == '/' && scratchdir[1] == '/') ? (scratchdir + 1) : scratchdir); 1608 1608 1609 1609 log_msg(2, "Excluding paths = '%s'", exclude_paths); -
trunk/mondo/mondo/common/libmondo-tools.c
r507 r539 737 737 strcpy(bkpinfo->isodir, "/"); 738 738 } else { 739 strcpy(bkpinfo->isodir, "/ root/images/mondo");739 strcpy(bkpinfo->isodir, "/var/cache/mondo/iso"); 740 740 } 741 741 strcpy(bkpinfo->prefix, STD_PREFIX); … … 848 848 #endif 849 849 850 if ((Lres = free_space_on_given_partition("/ root")) == -1){850 if ((Lres = free_space_on_given_partition("/var/cache/mondo")) == -1) /* { 851 851 Lres = free_space_on_given_partition("/"); 852 852 } 853 */ 853 854 log_it("Free space on given partition = %ld MB", Lres); 854 855 855 856 if (Lres < 50) { 856 run_program_and_log_output 857 ("rm -Rf /root/images/mindi; mkdir -p /home/root/images/mindi; mkdir -p /root/images; ln -sf /home/root/images/mindi /root/images/mindi", 858 3); 859 // fatal_error("Your / (or /root) partition has <50MB free. Please adjust your partition table to something saner."); 857 fatal_error("Your /var/cache/mondo partition has <50MB free. Please adjust your partition table to something saner."); 860 858 } 861 859 … … 1216 1214 } 1217 1215 1218 1219 /**1220 * The standard log_debug_msg() (log_msg() also due to a macro). Writes some describing1221 * information to the logfile.1222 */1223 void standard_log_debug_msg(int debug_level, const char *szFile,1224 const char *szFunction, int nLine,1225 const char *fmt, ...)1226 {1227 va_list args;1228 int i;1229 static int depth = 0;1230 FILE *fout;1231 1232 if (depth > 5) {1233 depth--;1234 return;1235 }1236 depth++;1237 1238 if (debug_level <= g_loglevel) {1239 va_start(args, fmt);1240 if (!(fout = fopen(MONDO_LOGFILE, "a"))) {1241 return;1242 } // fatal_error("Failed to openout to logfile - sheesh..."); }1243 1244 // add tabs to distinguish log levels1245 if (debug_level > 0) {1246 for (i = 1; i < debug_level; i++)1247 fprintf(fout, "\t");1248 if (getpid() == g_main_pid)1249 fprintf(fout, "[Main] %s->%s#%d: ", szFile, szFunction,1250 nLine);1251 else if (getpid() == g_buffer_pid && g_buffer_pid > 0)1252 fprintf(fout, "[Buff] %s->%s#%d: ", szFile, szFunction,1253 nLine);1254 else1255 fprintf(fout, "[TH=%d] %s->%s#%d: ", getpid(), szFile,1256 szFunction, nLine);1257 }1258 vfprintf(fout, fmt, args);1259 1260 // do not slow down the progran if standard debug level1261 // must be enabled: if no flush, the log won't be up-to-date if there1262 // is a segfault1263 //if (g_dwDebugLevel != 1)1264 1265 va_end(args);1266 fprintf(fout, "\n");1267 paranoid_fclose(fout);1268 }1269 depth--;1270 }1271 1272 /**1273 * Function pointer to the @c log_debug_msg function to use. Points to standard_log_debug_msg() by default.1274 */1275 void (*log_debug_msg) (int, const char *, const char *, int, const char *,1276 ...) = standard_log_debug_msg;1277 1278 1279 1216 /** 1280 1217 * Allocate or free important globals, depending on @p mal. -
trunk/mondo/mondo/common/mondostructures.h
r518 r539 784 784 struct s_mdrec el[MAXIMUM_RAID_DEVS]; 785 785 }; 786 787 struct s_mrconf { 788 int ia64_boot_size; 789 char *iso_creation_cmd; 790 }; -
trunk/mondo/mondo/common/my-stuff.h
r518 r539 1 /* $Id$ */ 2 1 /* 2 * Common defines across the project 3 * 4 * $Id$ 5 */ 6 7 #ifndef _MY_STUFF_H_ 8 #define _MY_STUFF_H_ 9 10 /* BERLIOS 3 11 #define HAVE_MALLOC 1 12 */ 4 13 5 14 // Extra info for ACLs and SELINUX users … … 26 35 * Create the illusion of a Boolean type. 27 36 */ 28 #define bool int37 #define bool unsigned char 29 38 #define TRUE 1 30 39 #define FALSE 0 … … 34 43 #include <config.h> 35 44 #endif 45 /* BERLIOS 46 * Useful ? 47 */ 36 48 37 49 #ifndef __FreeBSD__ … … 47 59 48 60 #include <stdlib.h> 61 /* BERLIOS 49 62 #ifndef __USE_FILE_OFFSET64 50 63 #define __USE_FILE_OFFSET64 … … 53 66 #define __USE_LARGEFILE64 54 67 #endif 68 */ 55 69 #include <sys/stat.h> 56 70 #include <fcntl.h> … … 64 78 #include <signal.h> 65 79 #endif 66 //#include <curses.h>67 80 #include <newt.h> 68 81 #include <ctype.h> … … 70 83 #ifndef S_SPLINT_S 71 84 #include <pthread.h> 72 #endif73 85 #include <assert.h> 74 86 75 #include "../../config.h" 76 87 /* 77 88 #if defined(DEBUG) && !__cplusplus 78 89 int count; 79 char trace_log[255]; /*buffer for logging */90 char trace_log[255]; 80 91 char *trace_log_ptr; 81 #endif /* DEBUG */82 83 #define IA64_BOOT_SIZE "8192" /* Should be coherent with mindi */ 84 #define STD_PREFIX "mondorescue" /* Should be coherent with mindi */92 #endif 93 */ 94 95 #define STD_PREFIX "mondorescue" 85 96 86 97 /** … … 129 140 #define CRC_M16 0xA001 ///< Mask for crc16. 130 141 #define CRC_MTT 0x1021 ///< Mask for crc-ccitt. 131 132 #define FALSE 0 ///< The ubiquitous FALSE macro.133 #define TRUE 1 ///< The even more ubiquitous TRUE macro.134 142 135 143 #define SCREEN_LENGTH 25 ///< The default size of the screen. -
trunk/mondo/mondo/mondoarchive/main.c
r507 r539 133 133 { 134 134 struct s_bkpinfo *bkpinfo; 135 struct s_mrconf *mrconf; 135 136 char *tmp; 136 137 int res = 0; … … 160 161 malloc_libmondo_global_strings(); 161 162 163 /* Initialize Configuration Structure */ 164 mrarchive_init_conf(mrconf); 165 166 res = 0; 167 retval = 0; 162 168 diffs = 0; 163 169 printf(_("Initializing...\n")); … … 327 333 /* If we're meant to backup then backup */ 328 334 if (bkpinfo->backup_data) { 329 res = backup_data(bkpinfo );335 res = backup_data(bkpinfo, mrconf); 330 336 retval += res; 331 337 if (res) { … … 363 369 } 364 370 365 if (does_file_exist("/ root/images/mindi/mondorescue.iso")) {371 if (does_file_exist("/var/cache/mindi/mondorescue.iso")) { 366 372 log_to_screen 367 (_("/ root/images/mindi/mondorescue.iso, a boot/utility CD, is available if you want it."));373 (_("/var/cache/mindi/mondorescue.iso, a boot/utility CD, is available if you want it.")); 368 374 } 369 375 -
trunk/mondo/mondo/mondorestore/mondo-rstr-newt.c
r507 r539 2294 2294 * @param isodir_device Where to put the device (e.g. /dev/hda4) the user enters. 2295 2295 * @param isodir_format Where to put the format (e.g. ext2) the user enters. 2296 * @param isodir_path Where to put the path (e.g. / root/images/mondo) the user enters.2296 * @param isodir_path Where to put the path (e.g. /var/cache/mondo) the user enters. 2297 2297 * @param nuke_me_please Whether we're planning on nuking or not. 2298 2298 * @return TRUE if OK was pressed, FALSE otherwise. -
trunk/mondo/po/fr.po
r501 r539 1314 1314 #: mondo/mondoarchive/main.c:501 1315 1315 msgid "" 1316 "/ root/images/mindi/mondorescue.iso, a boot/utility CD, is available if you "1316 "/var/cache/mindi/mondorescue.iso, a boot/utility CD, is available if you " 1317 1317 "want it." 1318 1318 msgstr "" 1319 "/ root/images/mindi/mondorescue.iso est un CD de boot/utilitaires à votre "1319 "/var/cache/mindi/mondorescue.iso est un CD de boot/utilitaires à votre " 1320 1320 "disposition" 1321 1321
Note:
See TracChangeset
for help on using the changeset viewer.