Changeset 539 in MondoRescue for trunk/mindi
- Timestamp:
- May 13, 2006, 7:38:44 PM (19 years ago)
- Location:
- trunk/mindi
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.