diff -Nru bootcd-3.10ubuntu1/bootcd2disk bootcd-3.11ubuntu1/bootcd2disk --- bootcd-3.10ubuntu1/bootcd2disk 2007-12-18 15:20:46.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcd2disk 2008-07-29 14:38:01.000000000 +0530 @@ -24,21 +24,21 @@ # get: $1 -- error string usage() { - [ "$1" ] && echo -e >&2 "\n$1\n" + [ "$1" ] && echo >&2 "$1" - echo -e >&2 "\n $(basename $0) copy a system running from bootcd to a disk." - echo -e >&2 " syntax: -i -- interactiv operation" - echo -e >&2 " -v -- be noisy" - echo -e >&2 " -s -- be silent and no interaction" - echo -e >&2 " -c -- use another configuration directory" - echo -e >&2 " -url -- url from imageserver" - echo -e >&2 " (overwrite IMAGEURL and USEIMAGESERVER)" - echo -e >&2 " -onlymount -- only mount disks" - echo -e >&2 " -onlyunmount -- only unmount disks" - echo -e >&2 " -r -- debian root" - echo -e >&2 " -o -- use original disk names for only[un]mount" - echo -e >&2 " -mkchroot -- bootcd will be copied to /chroot" - echo -e >&2 "" + echo >&2 " $(basename $0) copy a system running from bootcd to a disk." + echo >&2 " syntax: -i -- interactiv operation" + echo >&2 " -v -- be noisy" + echo >&2 " -s -- be silent and no interaction" + echo >&2 " -c -- use another configuration directory" + echo >&2 " -url -- url from imageserver" + echo >&2 " (overwrite IMAGEURL and USEIMAGESERVER)" + echo >&2 " -onlymount -- only mount disks" + echo >&2 " -onlyunmount -- only unmount disks" + echo >&2 " -r -- debian root" + echo >&2 " -o -- use original disk names for only[un]mount" + echo >&2 " -mkchroot -- bootcd will be copied to /chroot" + echo >&2 "" exit 1 } @@ -53,7 +53,7 @@ { # use global TODO mm ... - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" if [ "$SCRIPT" ]; then in_ignore $mm "^--- .* ---$" else @@ -72,7 +72,7 @@ { # use global TODO mm - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" if [ "$SCRIPT" ]; then in_ignore $mm "^--- .* ---$" else @@ -163,11 +163,11 @@ BOOTCD2DISKLIB=./bootcd2disk.lib if [ -f $BOOTCD2DISKLIB ]; then [ "$SCRIPT" ] || echo "Using local $BOOTCD2DISKLIB" >&2 - . $BOOTCD2DISKLIB $* + . $BOOTCD2DISKLIB else BOOTCD2DISKLIB=$ROOT/usr/share/bootcd/bootcd2disk.lib if [ -f $BOOTCD2DISKLIB ];then - . $BOOTCD2DISKLIB $* + . $BOOTCD2DISKLIB else echo "Error: Mandatory lib $BOOTCD2DISKLIB not found! ABORT!" exit 1 @@ -233,7 +233,7 @@ } A="" -while [ "$A" != "y" -a "$A" != "n" -a "$SCRIPT" == "" ] +while [ "$A" != "y" -a "$A" != "n" -a "$SCRIPT" = "" ] do if [ "$CHROOTDIR" ]; then echo "Directory $CHROOTDIR will be deleted and created again! " | tee -a $ERRLOG >&2 @@ -249,7 +249,7 @@ [ "$EXT2FS" ] && echo "Partition $EXT2FS will be newly created as $OPT !!!" | tee -a $ERRLOG >&2 [ "$VFAT" ] && echo "Partition $VFAT will be newly created as vfat !!!" | tee -a $ERRLOG >&2 fi - echo -n "(y/n) " | tee -a $ERRLOG >&2 + echo "(y/n) " | tee -a $ERRLOG >&2 if [ "$SCRIPT" ]; then A="y" else @@ -296,7 +296,7 @@ if [ "$(echo "$DELPV" | grep "[[:alnum:]]")" ]; then # Try to use pvremove first (ignore anything, only write to log) - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm ".*" TODO="$TODO \"pvremove -ff -y $DELPV\"" fi @@ -304,7 +304,7 @@ # Add the disk itself DELPV="$DELPV $(eval "echo \"\$DISK$i\"")" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" in_ignore $mm "1+0 records in" in_ignore $mm "1+0 records out" @@ -315,7 +315,7 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$LVMGRP" -a "$LVMVOL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"lvmreset # deactivate lvm, delete lvm info on disk\"" fi @@ -334,7 +334,7 @@ } if [ ! "$CHROOTDIR" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" in_ignore $mm "unrecognized partition table type" in_ignore $mm "^sfdisk: ERROR: sector .* does not have an msdos signature" @@ -358,7 +358,7 @@ # After Disk Partitioning, there could be new places with old # LVM Info, so we delete it before running pvcreate cat <<'END' -let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "WARNING: Forcing physical volume creation on .* of volume group \".*\"" in_ignore $mm "^[[:digit:]]\++[[:digit:]]\+ records in$" in_ignore $mm "^[[:digit:]]\++[[:digit:]]\+ records out$" @@ -367,7 +367,7 @@ echo "TODO=\"\$TODO \\\"dd if=/dev/zero of=$dsk bs=1k count=1\\\"\"" cat <<'END' -let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "WARNING: Forcing physical volume creation on .* of volume group \".*\"" in_ignore $mm "Physical volume \".*\" successfully created" END @@ -380,7 +380,7 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$LVMGRP" -a "$LVMVOL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"lvm_pvcreate\"" fi @@ -399,7 +399,7 @@ while read grp dsks; do cmd="$(echo "$dsks"|sed "s/.*\(vgcreate.*\)/\1/"|grep vgcreate)" cat <<'END' -let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "Volume group \".*\" successfully created" END if [ "$cmd" ]; then @@ -408,7 +408,7 @@ echo "TODO=\"\$TODO \\\"vgcreate --quiet $grp $dsks\\\"\"" fi cat <<'END' -let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "0 logical volume(s) in volume group \".*\" now active" END echo "TODO=\"\$TODO \\\"vgchange --quiet -aey $grp\\\"\"" @@ -418,7 +418,7 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$LVMGRP" -a "$LVMVOL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"lvm_vgcreate\"" fi @@ -435,7 +435,7 @@ getdata "$LVMVOL" | while read vol s grp cmd; do cat <<'END' -let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "Logical volume \".*\" created" in_stdout $mm "Rounding up size to full physical extent" END @@ -450,7 +450,7 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$LVMGRP" -a "$LVMVOL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"lvm_lvcreate\"" fi @@ -462,19 +462,19 @@ echo "--- Activate LVM ---" | tee -a $ERRLOG >&2 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "Reading all physical volumes. This may take a while..." in_ignore $mm "Found volume group \".*\" using metadata type lvm2" TODO="$TODO \"vgscan --quiet\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "[1-9][0-9]* logical volume(s) in volume group \".*\" now active" TODO="$TODO \"vgchange --quiet -ay\"" eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$LVMGRP" -a "$LVMVOL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"lvm_vgchange\"" fi @@ -487,7 +487,7 @@ for i in $VFAT; do echo "--- Building Filesystem $i with mkdosfs ---" | tee -a $ERRLOG >&2 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^mkdosfs " TODO="$TODO \"mkdosfs $i\"" done @@ -495,7 +495,7 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$VFAT" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"vfat # mkdosfs $VFAT\"" fi @@ -510,7 +510,7 @@ [ "$EXT3" = "yes" ] && OPT="-j" for i in $EXT2FS; do echo "--- Building Filesystem $i with mke2fs $OPT ---" | tee -a $ERRLOG >&2 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^mke2fs " TODO="$TODO \"mke2fs $OPT -q $i\"" done @@ -518,7 +518,7 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$EXT2FS" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"extfs # mke2fs $EXT2FS\"" fi @@ -530,7 +530,7 @@ for i in $SWAP; do echo "--- making SWAP $i ---" | tee -a $ERRLOG >&2 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^Setting up swapspace" in_stdout $mm "^no label, " TODO="$TODO \"mkswap $i\"" @@ -539,22 +539,22 @@ eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ \( ! "$CHROOTDIR" \) -a "$SWAP" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"swap # mkswap $SWAP\"" todo_domount fi -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm # you can not set global variables with run TODO="$TODO \"excludemnt\"" if [ "$CHROOTDIR" -a "$CHROOTDIR" != "/" -a "$CHROOTDIR" != "." ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"rm -rf $CHROOTDIR\"" - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"mkdir -p $COPYDEST\"" fi @@ -566,7 +566,7 @@ } if [ "$UDEV_FIXNET" = "yes" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO udev_fixnet" fi @@ -589,30 +589,30 @@ exit 2 fi - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^mke2fs " TODO="$TODO \"mke2fs -q $SWAP\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"mkdir -p /tmp/swapfs\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"mount $SWAP /tmp/swapfs\"" if [ "$(echo "$url" | grep "^file://")" ]; then url="$(echo "$url" | sed "s|^file://\(.*\)$|\1|")" if [ -b "$url" ]; then - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"dd if=$url of=/tmp/swapfs/cdimage.iso\"" elif [ -f "$url" ]; then - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cp $url /tmp/swapfs/cdimage.iso\"" else echo "No file <$url>" | tee -a $ERRLOG >&2 exit 3 fi else - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^--[[:digit:]:]*--.*" in_stdout $mm "^[[:space:]]*=> .*" in_stdout $mm "^Resolving .*" @@ -632,17 +632,17 @@ TODO="$TODO \"wget --no-check-certificate --dns-timeout=$timeout --connect-timeout=$timeout -O /tmp/swapfs/cdimage.iso $url\"" fi - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"mkdir -p /tmp/isoloopback\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"mount -o loop /tmp/swapfs/cdimage.iso /tmp/isoloopback\"" eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ "$USEIMAGESERVER" = "yes" -o "$ENV_IMAGEURL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO copyfromserver_before" fi @@ -655,7 +655,7 @@ # only call the function, if it is defined if [ "$DO_BEFORE_COPY" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"do_before_copy # run function before_copy defined in bootcd2disk.conf\"" fi @@ -679,23 +679,23 @@ # Normally there is no /tmp/isoloopback after booting from CD. But it could be # created in function before_copy. if [ -d /tmp/isoloopback ]; then - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cd /tmp/isoloopback; find . -mount | sed 's|^./|/|g' | grep -v -e '^/var.ro\>' -e '^/var\>' $CPIOEXCLUDE | sed 's|^/|./|g' |cpio --quiet -pdum $COPYDEST\"" else - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"find / -mount|grep -v -e '^/var.ro\>' -e '^/var\>' $CPIOEXCLUDE |cpio --quiet -pdum $COPYDEST\"" fi - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cd /var.ro; find . -mount | cpio --quiet -pdum $COPYDEST/var\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"find $COPYDEST/etc $COPYDEST/tmp $COPYDEST/dev $COPYDEST/home $COPYDEST/root -type l | xargs -r rm\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"rm -r $COPYDEST/etc.ro $COPYDEST/tmp.ro $COPYDEST/dev.ro $COPYDEST/home.ro $COPYDEST/root.ro\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cp -a -x /ram1/etc /ram1/tmp /ram1/home /ram1/root $COPYDEST\"" if [ -d /dev/.static/dev -a -x /etc/init.d/udev ]; then @@ -705,29 +705,29 @@ # But tmpfs is mounted over /dev and hides the static device files. # The static device files are mounted again in /dev/.static/dev/. # This means bootcd has only to copy /dev/.static/dev. - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cp -a -x /ram1/dev/.static/dev $COPYDEST\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"mkdir -p $COPYDEST/dev/.static\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"chown root:root $COPYDEST/dev/.static\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"chmod 700 $COPYDEST/dev/.static\"" else - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cp -a -x /ram1/dev $COPYDEST\"" fi - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"rm -f $COPYDEST/fastboot $COPYDEST/cdboot.catalog $COPYDEST/cdboot.img $COPYDEST/ram1.cpio.gz $COPYDEST/ram2.cpio.gz\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"rm -rf $COPYDEST/rr_moved/ $COPYDEST/isolinux/\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"rm $COPYDEST/etc/rcS.d/S12bootcdram.sh \ $COPYDEST/etc/rcS.d/S13bootcdflop.sh \ $COPYDEST/usr/bin/bootcd2disk \ @@ -736,20 +736,20 @@ $COPYDEST/etc/bootcd/thisbootcd.conf\"" # files that do not always exist - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"rm -f $COPYDEST/usr/bin/bootcdmk2diskconf\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"rm -rf $COPYDEST/ram1 $COPYDEST/ram2\"" echo "--- deleting NOT_TO_RAM symlinks ---" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"delete_not_to_ram_symlinks\"" eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" } if [ ! "$RESTORECMD" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"copycdram # copy cd and ram to $COPYDEST, delete unneeded stuff\"" fi @@ -765,19 +765,19 @@ echo "--- copying image from image server ---" | tee -a $ERRLOG >&2 # cleanup again - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"umount -d /tmp/isoloopback\"" # free loopdevice -# let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +# mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" # TODO="$TODO \"losetup -d /dev/loop0\"" # cleanup again - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"umount /tmp/swapfs\"" # rebuild swap - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"swap\"" @@ -785,14 +785,14 @@ } if [ ! "$RESTORECMD" ]; then if [ "$USEIMAGESERVER" = "yes" -o "$ENV_IMAGEURL" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO copyfromserver_after" fi fi if [ "$RESTORECMD" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"$RESTORECMD\"" fi @@ -803,7 +803,7 @@ } # only call the function, if it is defined if [ ! -z "$DO_AFTER_COPY" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO \"do_after_copy # run function after_copy defined in bootcd2disk.conf\"" fi @@ -820,7 +820,7 @@ rm -f $COPYDEST/etc/mtab fi } -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO \"do_fstab # create $COPYDEST/etc/fstab\"" @@ -851,7 +851,7 @@ echo "$ELILO" > $COPYDEST/etc/elilo.conf fi } -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO bootloadercfg" @@ -867,7 +867,7 @@ 'It will be treated as "no".' fi } -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO createsshkeys" @@ -883,7 +883,7 @@ } if [ ! "$RESTORECMD" ]; then if [ "$DISABLE_CRON" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO enablecron" fi @@ -912,7 +912,7 @@ " | grub --no-floppy --batch } if [ \( ! "$CHROOTDIR" \) -a "$GRUB" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" # To many text in_stdout $mm ".*" TODO="$TODO \"dogrub # run grub-install --root-directory=$COPYDEST $GRUBBOOTDISK\"" @@ -926,7 +926,7 @@ chroot $COPYDEST umount /proc } if [ \( ! "$CHROOTDIR" \) -a "$LILO" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^Added " in_stdout $mm "^--- .* ---$" TODO="$TODO dolilo" @@ -938,7 +938,7 @@ chroot $COPYDEST elilo } if [ \( ! "$CHROOTDIR" \) -a "$ELILO" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO doelilo" fi diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcd2disk.lib /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcd2disk.lib --- bootcd-3.10ubuntu1/bootcd2disk.lib 2007-12-14 12:52:47.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcd2disk.lib 2008-07-29 14:38:01.000000000 +0530 @@ -233,7 +233,7 @@ n=0 for i in $DISKVARS; do - let n=n+1 + n=$(($n+1)) eval "DISK$i=\"$(echo $AUTODISK |awk "{print \$$n}")\"" done for i in $DISKVARS; do eval "echo \"DISK$i=\$DISK$i\""; done >>$ERRLOG diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdbackup /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdbackup --- bootcd-3.10ubuntu1/bootcdbackup 2007-12-14 20:04:19.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdbackup 2008-07-29 14:38:01.000000000 +0530 @@ -95,25 +95,25 @@ # get: $1 -- error string usage() { - [ "$1" ] && echo -e >&2 "\n$1" - echo -e >&2 "[-i] [-v] [-s] [-c ] [-url ] [-nomount] [-2diskconf ] \n" - echo -e >&2 "\n $(basename $0) make an offline backup." - echo -e >&2 " syntax: -i -- interactiv operation" - echo -e >&2 " -v -- be noisy" - echo -e >&2 " -s -- be silent and no interaction" - echo -e >&2 " -e -- space seperated directories exclude from backup" - echo -e >&2 " -c -- use another configuration directory" - echo -e >&2 " -url -- url from imageserver" - echo -e >&2 " (overwrite IMAGEURL and USEIMAGESERVER)" - echo -e >&2 " -2diskconf -- add your own bootcd2disk.conf for target system" - echo -e >&2 " (may be created with \"bootcdmk2diskconf\" on target disk)" - echo -e >&2 " -nomount -- don't mount target disk\n" - echo -e >&2 " -- device where to find the file \"fstab\" for the target disk" - echo -e >&2 " -- name of the backup (no blanks!)" - echo -e >&2 " (used as directory / where to find the tarball of the target disk)" - echo -e >&2 " (also used on bootcd2disk -c to restore the backup)" - echo -e >&2 " -- build the backup CD/DVD on this directory (need lot of space!)" - echo -e >&2 "" + [ "$1" ] && echo >&2 "$1" + echo >&2 "[-i] [-v] [-s] [-c ] [-url ] [-nomount] [-2diskconf ] " + echo >&2 " $(basename $0) make an offline backup." + echo >&2 " syntax: -i -- interactiv operation" + echo >&2 " -v -- be noisy" + echo >&2 " -s -- be silent and no interaction" + echo >&2 " -e -- space seperated directories exclude from backup" + echo >&2 " -c -- use another configuration directory" + echo >&2 " -url -- url from imageserver" + echo >&2 " (overwrite IMAGEURL and USEIMAGESERVER)" + echo >&2 " -2diskconf -- add your own bootcd2disk.conf for target system" + echo >&2 " (may be created with \"bootcdmk2diskconf\" on target disk)" + echo >&2 " -nomount -- don't mount target disk\n" + echo >&2 " -- device where to find the file \"fstab\" for the target disk" + echo >&2 " -- name of the backup (no blanks!)" + echo >&2 " (used as directory / where to find the tarball of the target disk)" + echo >&2 " (also used on bootcd2disk -c to restore the backup)" + echo >&2 " -- build the backup CD/DVD on this directory (need lot of space!)" + echo >&2 "" exit 1 } @@ -229,12 +229,12 @@ TODO="" mm=0 -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "Directory.*" TODO="$TODO \"do_dir $TMPDIR # Create tmp directory \"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" if [ "$DISKCONF2" ]; then TODO="$TODO \"cp $DISKCONF2 $TMPDIR/\"" else @@ -243,26 +243,26 @@ fi if [ ! "$NOMOUNT" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"$BOOTCD2DISK -onlymount -c $TMPDIR -s\"" - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO CLEANUMNT=\\\"$BOOTCD2DISK -onlyunmount -c $TMPDIR -s\\\"\"" fi -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" bootcd2disk_ignore $mm TODO="$TODO \"$BOOTCD2DISK" [ "$CONFDIR" = "/etc/bootcd" ] || TODO="$TODO -c $CONFDIR" [ "$ENV_IMAGEURL" ] && TODO="$TODO -url $ENV_IMAGEURL" TODO="$TODO -mkchroot $BACKUPDIR -s\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO CLEANCHROOT=\"rm -rf $BACKUPDIR\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"mkdir -p $COPYDEST/$BACKUPNAME\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^backup to .*" in_ignore $mm "^find: WARNING: Hard link count is wrong for ./proc: .*" in_stdout $mm "Permission denied$" @@ -274,21 +274,21 @@ # EXCLUDE=".$(echo "$COPYDEST" | sed "s|^/mnt||")" # TODO="$TODO \"tar_ignore\"" # TODO="$TODO \"run \\\"(cd /mnt; tar c -z --exclude $EXCLUDE -f $COPYDEST/$BACKUPNAME/backup.tgz .)\\\"\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"cp $TMPDIR/bootcd2disk.conf $COPYDEST/etc/bootcd/$BACKUPNAME\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm # run the next without run TODO="$TODO \"chroot $COPYDEST bootcdwrite -s\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"mv $COPYDEST/var/spool/bootcd/cdimage.iso $BACKUPDIR/\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"rm -r $COPYDEST\"" if [ ! "$NOMOUNT" ]; then - let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" + mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"$BOOTCD2DISK -onlyunmount -c $TMPDIR -s\"" fi diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdbackup.lib /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdbackup.lib --- bootcd-3.10ubuntu1/bootcdbackup.lib 2007-12-14 22:11:44.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdbackup.lib 2008-07-29 14:38:01.000000000 +0530 @@ -101,7 +101,7 @@ [ "$ext" ] && ext="$ext; s|\x00.${i}[^\x00]*||g" || ext="s|\x00${i}[^\x00]*||g" done - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^backup to .*" in_ignore $mm "^find: WARNING: Hard link count is wrong for ./proc: .*" in_stdout $mm "Permission denied$" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdbackupwizard.src /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdbackupwizard.src --- bootcd-3.10ubuntu1/bootcdbackupwizard.src 2007-12-15 03:02:28.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdbackupwizard.src 2008-07-29 14:38:01.000000000 +0530 @@ -1,7 +1,7 @@ #!/bin/sh # # $Source: /cvsroot/bootcd/bootcd/bootcdbackupwizard.src,v $ -# $Id: bootcdbackupwizard.src,v 1.70 2007-12-14 21:32:28 bs Exp $ +# $Id: bootcdbackupwizard.src,v 1.72 2008-07-29 09:08:01 bs Exp $ # author: Carsten Dinkelmann # start: 20.09.2007 # topic: wizard for bootcddebootstrap and bootcdbackup @@ -65,24 +65,26 @@ # get: $1 -- error string usage() { - [ "$1" ] && echo -e >&2 "\n$1\n" + [ "$1" ] && echo >&2 "$1" - echo -e "\n $SCRIPTNAME Version $VERSION" - echo -e "\n $SCRIPTNAME is the wizard for bootcddebootstrap and bootcdbackup. " - echo -e " bootcddebootstrap build a debian bootcd from scratch and bootcdbackup guess " - echo -e " the parameters of the running system and the system itself to the" - echo -e " created image. After that, you can backup your running system to a CD/DVD.\n" - echo -e " syntax: $SCRIPTNAME [-i] [-m ] [-e ] -d " - echo -e "" - echo -e " -i -- do all things interactive" - echo -e " -m -- debian mirror for debootstrap (e.g. http://ftp.de.debian.org/debian)" - echo -e " -e -- space seperated directories exclude from backup" - echo -e " -c -- look for bootcd2disk.conf and bootcdwrite.conf in" - echo -e " this directory and use it if found." - echo -e " -d -- create image in this directory (Space needed!)" - echo -e "" - echo -e " example: $SCRIPTNAME -e \"/home/data /home/newbie/tmp\" -d /var/spool/bootcd" - echo -e "" + echo " $SCRIPTNAME Version $VERSION" + echo "" + echo " $SCRIPTNAME is the wizard for bootcddebootstrap and bootcdbackup. " + echo " bootcddebootstrap build a debian bootcd from scratch and bootcdbackup guess " + echo " the parameters of the running system and the system itself to the" + echo " created image. After that, you can backup your running system to a CD/DVD." + echo "" + echo " syntax: $SCRIPTNAME [-i] [-m ] [-e ] -d " + echo "" + echo " -i -- do all things interactive" + echo " -m -- debian mirror for debootstrap (e.g. http://ftp.de.debian.org/debian)" + echo " -e -- space seperated directories exclude from backup" + echo " -c -- look for bootcd2disk.conf and bootcdwrite.conf in" + echo " this directory and use it if found." + echo " -d -- create image in this directory (Space needed!)" + echo "" + echo " example: $SCRIPTNAME -e \"/home/data /home/newbie/tmp\" -d /var/spool/bootcd" + echo "" exit 0 } @@ -133,29 +135,29 @@ local TODO="" tt="" mm=0 local IAHEAD="$IAHEAD / create_debian_chroot" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^[[:space:]]*check for \"[^[:space:]]*\" ...ok$" TODO="$TODO \"check_tools $TOOLS # Check if tools are installed\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "Directory.*" TODO="$TODO \"do_dir $workdir # Create work directories \"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout_wget $mm TODO="$TODO \"wget -P $workdir \\\"$BOOTSTRAPPATH\\\" # Get files to create mini debian system \"" - # let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + # mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" # in_stdout_wget $mm # TODO="$TODO \"wget -O $workdir/../bootcddebootstrap \\\"$bootcddebootstrappath\\\" # Get script to create mini debian system\"" # link debian files to work directory for i in $(ls *deb); do - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"ln -s $(pwd)/$i $workdir/\"" done - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # run the next without run [ "$debootstrapmirror" ] && tt="-m $debootstrapmirror" @@ -199,33 +201,33 @@ local IAHEAD="$IAHEAD / do_backup" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "Directory.*" TODO="$TODO \"do_dir $workdir/$IMGDIR/$BACKUPDIR # Create work directories\"" if [ "$bootcd2diskconf" ]; then - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"cp $bootcd2diskconf $workdir/$IMGDIR/$BACKUPDIR/ # copy config given on commandline\"" else # check chroot and file exist - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"chroot $workdir/$IMGDIR sh -c \\\"chmod 755 $BOOTCDMK2DISKCONF\\\"\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^ No volume groups found$" TODO="$TODO \"sh -c \\\"$workdir/$IMGDIR/$BOOTCDMK2DISKCONF -b >$workdir/$IMGDIR/$BACKUPDIR/bootcd2disk.conf\\\" # create config from actual system\"" fi - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm BOOTCDMP="$workdir/$IMGDIR/mnt" TODO="$TODO \"$workdir/$IMGDIR/usr/share/bootcd/bootcd2disk -onlymount -c /$BACKUPDIR -s -o -r $workdir/$IMGDIR\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"chroot $workdir/$IMGDIR /usr/share/bootcd/bootcdbackup -e \\\"$workdir $extdirs $EXCLUDE_DIRS\\\" -cpiostar \\\"$IAHEAD\\\" /mnt /$BACKUPDIR\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm BOOTCDMP="$workdir/$IMGDIR/mnt" TODO="$TODO \"$workdir/$IMGDIR/usr/share/bootcd/bootcd2disk -onlyunmount -c /$BACKUPDIR -s -o -r $workdir/$IMGDIR\"" @@ -235,7 +237,8 @@ # check if filesystems are really umounted if [ "$(/bin/ls $workdir/$IMGDIR/mnt/)" ]; then - echo -e >&2 "\nATTENTION! Found files in \"$workdir/$IMGDIR/mnt\"!" + echo >&2 "" + echo >&2 "ATTENTION! Found files in \"$workdir/$IMGDIR/mnt\"!" echo >&2 "Seems that umount doesn't work, please try it manualy!" ask_user "Continue [y|N] " "n" [ $? -eq 0 ] && err "User break after umount of \"$workdir/$IMGDIR/mnt\" failed!" @@ -295,19 +298,19 @@ local IAHEAD="$IAHEAD / run_bootcdwrite" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm ".*" TODO="$TODO \"chroot $workdir/$IMGDIR bootcdwrite -s # create cd iso image\"" for i in var/spool/bootcd/cdimage.iso var/log/bootcdwrite.log var/log/bootstrap.log var/log/bootcdbackup.log; do - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"mv $workdir/$IMGDIR/$i $workdir\"" done - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm ".*" TODO="$TODO \"rm -rf $workdir/$IMGDIR # cleanup\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm ".*" TODO="$TODO \"rm -f $workdir/bootcddebootstrap $workdir/$(basename $BOOTSTRAPPATH) # cleanup\"" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcddebootstrap.src /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcddebootstrap.src --- bootcd-3.10ubuntu1/bootcddebootstrap.src 2007-12-14 12:28:07.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcddebootstrap.src 2008-07-29 14:38:01.000000000 +0530 @@ -1,12 +1,17 @@ #!/bin/sh # # $Source: /cvsroot/bootcd/bootcd/bootcddebootstrap.src,v $ -# $Id: bootcddebootstrap.src,v 1.28 2007-12-14 06:58:07 bs Exp $ +# $Id: bootcddebootstrap.src,v 1.30 2008-07-29 09:08:01 bs Exp $ # author: Carsten Dinkelmann # start: 12.09.2007 # topic: create a small debian cd and configured it for bootcd # +# Read supported environment variables (before set -u) +http_proxy="$http_proxy" +IAHEAD="$IAHEAD" +set -u + # Version of debian package bootcd with this tools is included # /usr/share/doc/bootcd-backup/examples/bootcddebootstrap VERSION=##BOOTCD_VERSION## # sources are tagged in cvs with rev=debian_version_${VERSION} @@ -56,7 +61,7 @@ SCRIPTNAME=$(basename $0) -IAHEAD="$SCRIPTNAME" +[ "$IAHEAD" ] && IAHEAD="$IAHEAD/$SCRIPTNAME" || IAHEAD="$SCRIPTNAME" ### BOOTCD-RUN_LIB Placeholder ############## @@ -64,25 +69,27 @@ # get: $1 -- error string usage() { - [ "$1" ] && echo -e >&2 "\n$1\n" + [ "$1" ] && echo >&2 "$1" - echo -e "\n $SCRIPTNAME creates a debian bootcd image in a chroot-enviroment." - echo -e " After that, you can backup your running system to a CD/DVD.\n" - echo -e " syntax: $SCRIPTNAME [-i] [-m ] [-d ] " - echo -e "" - echo -e " -i -- do all things interactive" - echo -e " -d -- create image in this directory (Space needed!)" - echo -e " default: \"$WORKDIR\"" - echo -e " -m -- debian mirror for debootstrap (e.g. http://ftp.de.debian.org/debian)" - echo -e " -nu -- no usefull packages (don't install network, lvm ... in bootcdimage)" - echo -e " -- path to debootstrap debian package, use bootcd packages from" - echo -e " \"apt\" source server" - echo -e " -- directory with debootstrap and bootcd debian packages" - echo -e "" - echo -e " download debootstrap: \"$DOWNLOADPATH\" " - echo -e "" - echo -e " example: $SCRIPTNAME /tmp/debootstrap_0.3.3.2etch1_all.deb" - echo -e "" + echo "" + echo " $SCRIPTNAME creates a debian bootcd image in a chroot-enviroment." + echo " After that, you can backup your running system to a CD/DVD." + echo "" + echo " syntax: $SCRIPTNAME [-i] [-m ] [-d ] " + echo "" + echo " -i -- do all things interactive" + echo " -d -- create image in this directory (Space needed!)" + echo " default: \"$WORKDIR\"" + echo " -m -- debian mirror for debootstrap (e.g. http://ftp.de.debian.org/debian)" + echo " -nu -- no usefull packages (don't install network, lvm ... in bootcdimage)" + echo " -- path to debootstrap debian package, use bootcd packages from" + echo " \"apt\" source server" + echo " -- directory with debootstrap and bootcd debian packages" + echo "" + echo " download debootstrap: \"$DOWNLOADPATH\" " + echo "" + echo " example: $SCRIPTNAME /tmp/debootstrap_0.3.3.2etch1_all.deb" + echo "" exit 0 } @@ -153,6 +160,18 @@ Pin: release a=unstable Pin-Priority: 600 END + +echo >&2 "Configure Cache-Limit in apt.conf" + cat >>$workdir/etc/apt/apt.conf <&2 "add http_proxy to apt.conf" + cat >>$workdir/etc/apt/apt.conf <[[:space:]]*\)*$" in_stdout $mm "^Backing up any" TODO="$TODO \"chroot $workdir sh -c \\\"apt-get -y -f install $packages\\\"\"" # use packages from configured directory if [ "$DEBOOTSTRAPDIR" ]; then local inst="" for i in $bootcdpackages; do - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" local file=$(ls $DEBOOTSTRAPDIR/${i}_*.deb |head -1) TODO="$TODO \"cp $file $workdir/tmp/\"" [ "$inst" ] && inst="$inst /tmp/$(basename $file)" || inst="/tmp/$(basename $file)" done - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^(Reading database ... .*" in_stdout $mm "^Selecting .*" in_stdout $mm "^Unpacking .*" @@ -340,47 +359,49 @@ in_stdout $mm "^[[:digit:]]* files and directories .*" TODO="$TODO \"chroot $workdir sh -c \\\"dpkg -i $inst \\\"\"" else - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout_aptget $mm in_stdout $mm ".*" TODO="$TODO \"chroot $workdir sh -c \\\"apt-get -y -f install $bootcdpackages\\\"\"" fi if [ "$(echo "$usepkg" | grep console-data)" ]; then - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"debconf_set_console_selections $workdir\"" fi if [ "$usepkg" ]; then - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout_aptget $mm # The following extra packages will be installed: - in_stdout $mm "^ adduser defoma fontconfig-config ifupdown iputils-ping libconsole libdrm2$" - in_stdout $mm "^ libedit2 libexpat1 libfontconfig1 libfreetype6 libfs6 libgl1-mesa-glx$" - in_stdout $mm "^ libgpmg1 libice6 libkrb53 libnewt0.52 libpng12-0 libpopt0 libsm6 libssl0.9.8$" - in_stdout $mm "^ libwrap0 libx11-6 libx11-data libxau6 libxaw7 libxcursor1 libxdmcp6 libxext6$" - in_stdout $mm "^ libwrap0 libx11-6 libx11-data libxau6 libxaw7 libxcursor1 libxdmcp6 libxext6$" - in_stdout $mm "^ libxfixes3 libxft2 libxi6 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2$" - in_stdout $mm "^ libxrender1 libxss1 libxt6 libxtrap6 libxtst6 libxv1 libxxf86dga1$" - in_stdout $mm "^ libxxf86vm1 openbsd-inetd openssh-client openssh-server tcpd ttf-dejavu ucf$" - in_stdout $mm "^ update-inetd vim-common vim-runtime whiptail x11-common$" # Suggested packages: - in_stdout $mm "^ unicode-data kbd-compat defoma-doc psfontmgr x-ttcidfont-conf dfontmgr$" - in_stdout $mm "^ iproute dhcp3-client dhcp-client ppp libfreetype6-dev gpm krb5-doc krb5-user$" - in_stdout $mm "^ ssh-askpass rssh molly-guard ctags vim-doc vim-scripts mesa-utils$" # Recommended packages: - in_stdout $mm "^ libft-perl libfribidi0 debconf-utils$" # The following NEW packages will be installed: - in_stdout $mm "^ adduser console-common console-data console-tools defoma fontconfig-config$" - in_stdout $mm "^ ifupdown iputils-ping less libconsole libdrm2 libedit2 libexpat1$" - in_stdout $mm "^ libfontconfig1 libfreetype6 libfs6 libgl1-mesa-glx libgpmg1 libice6 libkrb53$" - in_stdout $mm "^ libnewt0.52 libpng12-0 libpopt0 libsm6 libssl0.9.8 libwrap0 libx11-6$" - in_stdout $mm "^ libx11-data libxau6 libxaw7 libxcursor1 libxdmcp6 libxext6 libxfixes3$" - in_stdout $mm "^ libxft2 libxi6 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxrender1$" - in_stdout $mm "^ libxss1 libxt6 libxtrap6 libxtst6 libxv1 libxxf86dga1 libxxf86vm1 net-tools$" - in_stdout $mm "^ netbase openbsd-inetd openssh-client openssh-server psmisc ssh star tcpd$" - in_stdout $mm "^ ttf-dejavu ucf update-inetd vim vim-common vim-runtime whiptail x11-common$" - in_stdout $mm "^ xbase-clients$" + in_stdout $mm "^ \(\<\(\ +adduser\|defoma\|fontconfig-config\|ifupdown\|iputils-ping\|libconsole\|libdrm2\|\ +libedit2\|libexpat1\|libfontconfig1\|libfreetype6\|libfs6\|libgl1-mesa-glx\|\ +libgpmg1\|libice6\|libkrb53\|libnewt0.52\|libpng12-0\|libpopt0\|libsm6\|libssl0.9.8\|\ +libwrap0\|libx11-6\|libx11-data\|libxau6\|libxaw7\|libxcursor1\|libxdmcp6\|libxext6\|\ +libxfixes3\|libxft2\|libxi6\|libxkbfile1\|libxmu6\|libxmuu1\|libxpm4\|libxrandr2\|\ +libxrender1\|libxss1\|libxt6\|libxtrap6\|libxtst6\|libxv1\|libxxf86dga1\|\ +libxxf86vm1\|openbsd-inetd\|openssh-blacklist\|openssh-client\|openssh-server\|tcpd\|\ +ttf-dejavu\|ucf\|unicode-data\|\ +update-inetd\|vim-common\|vim-runtime\|whiptail\|x11-common\|\ +kbd-compat\|defoma-doc\|psfontmgr\|x-ttcidfont-conf\|dfontmgr\|\ +iproute\|dhcp3-client\|dhcp-client\|ppp\|libfreetype6-dev\|gpm\|krb5-doc\|krb5-user\|\ +ssh-askpass\|rssh\|molly-guard\|ctags\|vim-doc\|vim-scripts\|mesa-utils\|\ +libft-perl libfribidi0 debconf-utils\|\ +console-common\|console-data\|console-tools\|fontconfig-config\|\ +ifupdown\|iputils-ping\|less\|libconsole\|libdrm2\|libedit2\|libexpat1\|\ +libfontconfig1\|libfreetype6\|libfs6\|libgl1-mesa-glx\|libgpmg1\|libice6\|libkrb53\|\ +libnewt0.52\|libpng12-0\|libpopt0\|libsm6\|libssl0.9.8\|libwrap0\|libx11-6\|\ +libx11-data\|libxau6\|libxaw7\|libxcursor1\|libxdmcp6\|libxext6\|libxfixes3\|\ +libxft2\|libxi6\|libxkbfile1\|libxmu6\|libxmuu1\|libxpm4\|libxrandr2\|libxrender1\|\ +libxss1\|libxt6\|libxtrap6\|libxtst6\|libxv1\|libxxf86dga1\|libxxf86vm1\|net-tools\|\ +netbase\|openbsd-inetd\|openssh-client\|openssh-server\|psmisc\|ssh\|star\|tcpd\|\ +ttf-dejavu\|ucf\|update-inetd\|vim\|vim-common\|vim-runtime\|whiptail\|x11-common\|\ +xbase-clients\ +\)\>[[:space:]]*\)*$" # special from packages in_stdout $mm "^ifupdown.postinst: .*" in_stdout $mm "^Moving old data out of the way" @@ -399,7 +420,7 @@ TODO="$TODO \"chroot $workdir sh -c \\\"apt-get -y -f install $usepkg\\\"\"" fi - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^--- configuring motd ---$" TODO="$TODO \"config_motd $workdir\"" @@ -419,6 +440,8 @@ for i in $DEBOOTLINKS; do [ -L $i ] && rm -f $i done + + return 0 } @@ -487,35 +510,35 @@ [ ! -f "$DEBOOTSTRAP" ] && err "debootstrap file \"$DEBOOTSTRAP\" not found!" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^[[:space:]]*check for \"[^[:space:]]*\" ...ok$" TODO="$TODO \"check_tools $TOOLS\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "Directory.*" TODO="$TODO \"do_dir $workdir 700\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "Directory.*" TODO="$TODO \"do_dir $TMPDIR 700\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm TODO="$TODO \"get_debootstrapmirror\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^extract debootstrap from debian package$" TODO="$TODO \"extract_debootstrap $TMPDIR $DEBOOTSTRAP\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_stdout $mm "^I: .*" TODO="$TODO \"$TMPDIR/usr/sbin/debootstrap --arch i386 --variant=buildd $DISTRI $workdir \\\$debootstrapmirror\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" in_norun $mm # do not start functions that itself use interactive with run TODO="$TODO \"install_packages $workdir $upack <-i>\"" -let mm=$mm+1; eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" TODO="$TODO \"do_clean $TMPDIR\"" [ "$interact" ] && interact="" || interact="-y" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdmk2diskconf.src /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdmk2diskconf.src --- bootcd-3.10ubuntu1/bootcdmk2diskconf.src 2007-12-27 21:53:49.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdmk2diskconf.src 2008-07-29 14:38:01.000000000 +0530 @@ -148,7 +148,7 @@ j=0 for i in $(echo "$CIPART" | sed "s/p*[123456789][[:digit:]]*//"|uniq); do echo "$i:DISK$j" - let j=j+1 + j=$(($j+1)) done )" } @@ -300,8 +300,8 @@ while :; do # RIPARTITION="/dev/cciss/c0d0p1:101\n/dev/cciss/c0d0p2:34624" # -> n=1, m=2, pn=101, pm=34624 -> n=2, m=3, pn=34624 pm= - let n=n+1 - let m=n+1 + n=$(($n+1)) + m=$(($n+1)) pn="$(echo "$RIPARTITION" | grep "^${x}p*${n}:" | awk -F: '{print $2}')" if [ ! "$pn" ]; then if [ "$n" = "1" ]; then diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdmkinitrd /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdmkinitrd --- bootcd-3.10ubuntu1/bootcdmkinitrd 2006-11-27 21:23:57.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdmkinitrd 1970-01-01 05:30:00.000000000 +0530 @@ -1,226 +0,0 @@ -#!/bin/sh -# -# $Source: /cvsroot/bootcd/bootcd/bootcdmkinitrd,v $ -# $Id: bootcdmkinitrd,v 1.26 2006-11-27 15:53:57 bs Exp $ -# author: Bernd Schumacher -# start: long time ago -# topic: build new initrd -# -# comment: more informations in man page bootcdmkinitrd(1) -# - -KERNEL=/vmlinuz -INITRD=/initrd.img -ETCMKI=/etc/mkinitrd -ERRLOG=/var/log/errlog - -# install the bootloader -INSTBOOTLOAD="yes" - -# the next neutral PATH-Prefix is used to mark entries in /etc/mkinitrd/* -# done by bootcdmkinitrd -MARK="/usr/share/bootcd/../../.." - -# ---------------------- nothing to configure behind this line --------------- -# include lib -. /usr/share/bootcd/bootcd-run.lib - -SCRIPT="" -if [ $# -gt 0 ]; then - [ "$1" = "-s" ] && SCRIPT="$1" -fi - -# Warning -set -u - -if [ ! "$SCRIPT" ]; then - echo "Warning: this script assumes the following:" - echo "- the running kernel is the one that will be used on bootcd" - echo "- initrd is used" - echo "Warning: this script will do the following:" - echo "- /etc/mkinitrd/ will be changed." - echo "- mkinitrd will be called. This will change $INITRD." - echo "- your bootloader will be called." - echo "The debian package bootcd-mkinitrd containing the command" - echo "bootcdmkinitrd is superseeded by bootcd-mkinitramfs." - while :; do - echo -n "OK to continue ? (y|n) " - read A - [ "$A" = "n" ] && exit - [ "$A" = "y" ] && break - done -fi - -# Checks -if [ \( -f /sbin/grub -o -f /usr/sbin/grub \) -a -f /sbin/lilo ]; then - while :; do - echo -n "Grub and lilo is installed. Which do you use ? (g|l) " - read BOOTLOAD - [ "$BOOTLOAD" = "l" ] && break - [ "$BOOTLOAD" = "g" ] && break - done -elif [ -f /sbin/grub -o -f /usr/sbin/grub ]; then - BOOTLOAD="g" - echo "Using grub" -elif [ -f /sbin/lilo ]; then - BOOTLOAD="l" - echo "Using lilo" -else - err "Error: No Bootloader found" -fi - -if [ "$BOOTLOAD" = "l" ]; then - [ ! "$(grep "^[[:blank:]]*initrd=" /etc/lilo.conf)" ] && err "/etc/lilo.conf has no line initrd=. This means that you are not using lilo, or that you are not using initrd. This skript only works with lilo and initrd." - - [ ! "$(grep "^[[:blank:]]*initrd[[:blank:]]*=[[:blank:]]*/initrd.img[[:blank:]]*$" /etc/lilo.conf)" ] && err "Your /etc/lilo.conf has no line with initrd=/initrd.img. Because this script can only support standard configurations, please edit lilo.conf run lilo and reboot to test your configuration. Then run this script again." -fi - -# check for kernel version and initrd-version -k_vers=$(realpath $KERNEL|cut -d"-" -f2-) -[ ! "$k_vers" ] && err "Can't determine the kernel version ... does \"$KERNEL\" exists?" -i_vers=$(realpath $INITRD|cut -d"-" -f2-) -[ ! "$i_vers" ] && err "Can't determine the initrd version ... does \"$INITRD\" exists?" -if [ $(uname -r) != "$k_vers" ]; then - warn "The running kernel ("$(uname -r)") is not the target kernel ($k_vers), works but don't call lilo!" - INSTBOOTLOAD="no" -fi - -[ "$k_vers" != "$i_vers" ] && err "The kernel version ($k_vers) differs from the initrd version ($i_vers)!" - -if [ ! -d $ETCMKI ]; then - echo "ERROR: No mkinitrd config dir $ETCMKI." >&2 - echo " Is initrd-tools.deb installed ?" >&2 - exit 1 -fi - -[ ! -f $INITRD ] && err "$INITRD does not exist." - -if [ "$(discover --version 2>/dev/null | grep "discover 2\..*")" ]; then - DISCOVERV=2 -else - DISCOVERV=1 -fi - -# Start - -[ -f /etc/mkinitrd.tgz ] && mv /etc/mkinitrd.tgz /etc/mkinitrd.tgz.old -(cd /etc; tar czf mkinitrd.tgz mkinitrd) - -# modify mkinitrd.conf -F=/etc/mkinitrd/mkinitrd.conf -touch $F -cp $F $F.tmp -cat $F.tmp | sed "s/^BUSYBOX=.*/BUSYBOX=yes/" >$F -rm $F.tmp - -# modify exe -F=/etc/mkinitrd/exe -touch $F -cp $F $F.tmp -( -cat $F.tmp | grep -v "^$MARK" -[ -f /sbin/discover ] && echo "/sbin/discover" -[ -f /bin/discover ] && echo "/bin/discover" -[ -f /usr/bin/discover ] && echo "/usr/bin/discover" -ls /bin/grep -) | sort -u | sed "s|^|$MARK|" >$F -rm $F.tmp - -# modules -F=/etc/mkinitrd/modules -touch $F -cp $F $F.tmp -awk ' - !/^cdrom$/ && - !/^isofs$/ { - print - } -' < $F.tmp >$F -echo "cdrom" >>$F -echo "isofs" >>$F -rm $F.tmp - -# files -F=/etc/mkinitrd/files -touch $F -cp $F $F.tmp -( -cat $F.tmp | grep -v "^$MARK" -ls /usr/share/discover/*.lst -ls /usr/share/bootcd/bootcdmodprobe # see prerm -ls /usr/share/bootcd/bootcdproberoot # see prerm -ls /lib/modules/$k_vers/kernel/drivers/usb/host/*.*o # match *.o and *.ko -ls /lib/modules/$k_vers/kernel/drivers/usb/core/usbcore.*o # used for 2.6 -ls /lib/modules/$k_vers/kernel/drivers/usb/usbcore.*o # used for 2.4 -ls /lib/modules/$k_vers/kernel/drivers/usb/storage/usb-storage.*o -ls /lib/modules/$k_vers/kernel/drivers/cdrom/cdrom.*o -ls /lib/modules/$k_vers/kernel/drivers/scsi/scsi_mod.*o -ls /lib/modules/$k_vers/kernel/fs/nls/*.*o - -# extra data for discover 2 -for i in libdiscover2 discover-data discover; -do - [ -f /var/lib/dpkg/info/$i.list ] || continue - ( - cat /var/lib/dpkg/info/$i.list | - grep -v "^/usr/share/doc" | # no docu - grep -v "^/usr/share/man" | # no manpages - grep -v "^/lib/" | # libs will be taken by mkinitrd - grep -v "^/usr/lib/" | # libs will be taken by mkinitrd - grep -v "^/bin/" | # goes to exe if needed - grep -v "^/usr/bin/" | # goes to exe if needed - grep -v "^/sbin/" | # goes to exe if needed - grep -v "^/usr/sbin/" # goes to exe if needed - cat /var/lib/dpkg/info/$i.list | - grep "/lib/discover/" # we need discover xml data - ) | - while read f; do - [ -d $f ] && continue # no dirs - echo "$f" - done -done -) | sort -u | sed "s|^|$MARK|" >$F -rm $F.tmp - -# 50bootcddiscover -F1=/etc/mkinitrd/scripts/50bootcddiscover # see prerm -cat <$F1 -#!/bin/sh -F2=\$INITRDDIR/scripts/bootcd -cat <\$F2 -/bin/echo "running /scripts/bootcd" >&2 -mount -nt proc proc proc -/usr/share/bootcd/bootcdmodprobe -umount proc -end2 -chmod 755 \$F2 -end1 -chmod 755 $F1 - -# 60bootcdproberoot -F1=/etc/mkinitrd/scripts/60bootcdproberoot # see prerm -cat <$F1 -#!/bin/sh - -F2=\$INITRDDIR/scripts/getrootdev -cat <\$F2 -mount -nt proc proc proc -mount -nt tmpfs tmpfs dev2 > /dev/null 2>&1 || mount -nt ramfs ramfs dev2 -/usr/share/bootcd/bootcdproberoot -umount dev2 -umount proc -END2 -chmod 755 \$F2 -END1 -chmod 755 $F1 - -# build initrd -mkinitrd -k -o /initrd.img $k_vers -if [ "INSTBOOTLOAD" == "yes" ]; then - [ "$BOOTLOAD" = "l" ] && lilo || update-grub -fi - -echo -e "new initrd for kernel version \"$k_vers\" created.\n" - -# Warning -[ "INSTBOOTLOAD" == "yes" ] && echo "Please reboot now, before using bootcdwrite" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcd-run.lib /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcd-run.lib --- bootcd-3.10ubuntu1/bootcd-run.lib 2007-11-30 13:01:59.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcd-run.lib 2008-07-29 14:38:01.000000000 +0530 @@ -104,7 +104,7 @@ # switch to interactive mode elif [ "$A" = "s" -a "$RUN_INTERACT" = "yes" ]; then echo -e "\nswitching to interactive mode to point ($ntrctv_ANSW) which failed\n" - ntrctv_ANSW=$((ntrctv_ANSW-1)) + ntrctv_ANSW=$(($ntrctv_ANSW-1)) ntrctv_y="" break fi @@ -147,11 +147,11 @@ ## example #mm=0 -#let mm=$mm+1; eval IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" +#mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" #in_ignore $mm "error bla" #in_ignore $mm "^bluber sumsel .*" #in_stdout $mm "no error but but a useful comment" -#let mm=$mm+1; eval IGNORE${mm}=\"\" +#mm=$(($mm+1)); eval IGNORE${mm}=\"\" #in_norun $mm #echo $IGNORE1 -- $IGNORE2 #exit @@ -306,7 +306,7 @@ ntrctv_c=$(echo "$ntrctv_i $(eval echo "\${$ntrctv_i}")" | sed "s/<-i>[[:space:]]*/$ntrctv_t/g") [ "$ntrctv_e" ] && ntrctv_c="$(eval echo "$ntrctv_c")" echo "$ntrctv_c" - let ntrctv_i=ntrctv_i+1 + ntrctv_i=$(($ntrctv_i+1)) done # dbg exists, print flag @@ -341,7 +341,7 @@ [ "$(set | grep "^IGNORE${ntrctv_ANSW}=")" ] && eval IGNORE=\"\$IGNORE${ntrctv_ANSW}\" [ "$(set | grep "^STDOUT${ntrctv_ANSW}=")" ] && eval STDOUT=\"\$STDOUT${ntrctv_ANSW}\" # run is on but run this menu point without run! - if [ "$IGNORE" == "$STDOUT" -a "$STDOUT" == "$norunstring" ]; then + if [ "$IGNORE" = "$STDOUT" -a "$STDOUT" = "$norunstring" ]; then eval "$ntrctv_cmd" else [ "$ntrctv_y" ] && local RUN_INTERACT="yes" || local RUN_INTERACT="no" @@ -378,8 +378,8 @@ #interactive "a <-i> A" "a B" "a <-i> C" #exit 0 # -#f1() { IANAME="$IANAME/f1" interactive -e -h "=== \$IANAME \(opts=-e\) n=\<\$n\> ===" "let n=n+1" f1; } -#n=""; IANAME="main" interactive -e -h "=== \$IANAME \(opts=-e\) n=\<\$n\> ===" "let n=n+1" f1 +#f1() { IANAME="$IANAME/f1" interactive -e -h "=== \$IANAME \(opts=-e\) n=\<\$n\> ===" "n=$((n+1))" f1; } +#n=""; IANAME="main" interactive -e -h "=== \$IANAME \(opts=-e\) n=\<\$n\> ===" "n=$(($n+1)" f1 #exit 0 # #interactive -r "sh -c \"exit 0\"" "echo \"error auf stdout\"" "echo \"error auf stderr\" >&2" "sh -c \"exit 1\"" @@ -397,17 +397,17 @@ ask_user() { local quest=$1 - [ "$2" == "y" -o "$2" == "n" ] && local default=$2 || local default="" + [ "$2" = "y" -o "$2" = "n" ] && local default=$2 || local default="" while [ 1 ]; do - echo -ne "$quest" + echo "$quest" read a - [ "$a" == "" ] && a=$default - if [ "$a" == "Y" -o "$a" == "y" -o "$a" == "J" -o "$a" == "j" ]; then + [ "$a" = "" ] && a=$default + if [ "$a" = "Y" -o "$a" = "y" -o "$a" = "J" -o "$a" = "j" ]; then # echo "yes" return 1; fi - if [ "$a" == "N" -o "$a" == "n" ]; then + if [ "$a" = "N" -o "$a" = "n" ]; then # echo "no" return 0; fi @@ -426,7 +426,7 @@ if [ -d "$dir" ]; then ask_user "Directory \"$dir\" exist's, remove it [Y|n] " "y" - [ $? == 0 ] && err "Can't work without directory \"$dir\"." + [ $? = 0 ] && err "Can't work without directory \"$dir\"." rm -rf $dir fi mkdir -p $dir @@ -442,7 +442,7 @@ { while [ $# -gt 0 ]; do echo -n >&2 " check for \"$1\" ..." - if [ "$(echo $1 |cut -c1-2)" == "./" ]; then + if [ "$(echo $1 |cut -c1-2)" = "./" ]; then [ ! -f "$1" ] && err "Can't find file \"$1\"!" else [ ! "$(which $1)" ] && err "Can't find tool \"$1\" in PATH!" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcd-run.lib.tst1 /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcd-run.lib.tst1 --- bootcd-3.10ubuntu1/bootcd-run.lib.tst1 2007-11-13 13:34:10.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcd-run.lib.tst1 2008-07-26 15:13:04.000000000 +0530 @@ -11,7 +11,7 @@ local a b c a=$1 b=$2 - let c=a+b + c=$(($a+$b)) echo "$c" } diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcd-run.lib.tst2 /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcd-run.lib.tst2 --- bootcd-3.10ubuntu1/bootcd-run.lib.tst2 2007-12-14 12:28:07.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcd-run.lib.tst2 2008-07-26 15:13:04.000000000 +0530 @@ -12,7 +12,7 @@ local a b c a=$1 b=$2 - let c=a+b + c=$(($a+$b)) echo "$c" } @@ -67,14 +67,14 @@ { local TODO="" mm=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "exit=1" in_ignore $mm "^/proc/1/task" in_ignore $mm "find:.*Permission denied" in_stdout $mm "^/proc/.*" TODO="$TODO \"LC_ALL=C find /proc/1 # Show /proc/1 but not /proc/1/task\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm "exit=1" in_ignore $mm "^/proc/[^1].*" in_ignore $mm "^/proc/1$" @@ -98,35 +98,35 @@ local TODO="" mm=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # you can not set global variables with run - TODO="$TODO \"let n=n+1 \# n=\<\\\$n\>\"" + TODO="$TODO \" n=$(($n+1)) \# n=\<\\\$n\>\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # you can not set global variables with run - TODO="$TODO \"let n=n+1\"" + TODO="$TODO \"n=$(($n+1))\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_ignore $mm ".*" TODO="$TODO \"echo \\\\\\\"error on stdout\\\\\\\"\; \# ignore errors\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm ".*" TODO="$TODO \"echo \\\\\\\"error on stdout\\\\\\\"\; \# ignore but display errors\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"echo \\\\\\\"error on stdout\\\\\\\"\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm ".*" TODO="$TODO \"echo \\\\\\\"bckslash:\\\\\\\\ quotedquote:\\\\\\\\\\\\\\\" semikolon:\;\\\\\\\"\; \# bckslash:\\\\\\\\ quote:\\\\\\\" ignore but display errors \(many characters\)\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm ".*" q6="\\\\\\" TODO="$TODO \"echo $q6\"bckslash:$q6\\ quotedquote:$q6$q6\\\" semikolon:\;$q6\"\; \# bckslash:$q6\\ quote:$q6\" ignore but display errors \(many characters\)\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # it is no good idea to run interactive with run TODO="$TODO \"fun\"" @@ -145,8 +145,8 @@ local TODO="" - TODO="$TODO \"let n=n+1 \# n=\<\\\$n\>\"" - TODO="$TODO \"let n=n+1\"" + TODO="$TODO \"n=$(($n+1)) \# n=\<\\\$n\>\"" + TODO="$TODO \"n=$(($n+1))\"" TODO="$TODO \"echo \\\\\\\"print on stdout\\\\\\\"\; \# ignore errors\"" TODO="$TODO \"echo \\\\\\\"bckslash:\\\\\\\\ quotedquote:\\\\\\\\\\\\\\\" semikolon:\;\\\\\\\"\; \# bckslash:\\\\\\\\ quote:\\\\\\\" ignore but display errors \(many characters\)\"" @@ -165,10 +165,10 @@ local TODO="" mm=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"sh -c \\\"exit 0\\\"\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" TODO="$TODO \"sh -c \\\"exit 1\\\"\"" eval "interactive -r -h \"=== \$IAHEAD ===\" $TODO" @@ -179,7 +179,7 @@ local IAHEAD="$IAHEAD/t3" local TODO="" mm=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # it is no good idea to run interactive (t4) with run TODO="$TODO \"t4\"" @@ -191,7 +191,7 @@ local IAHEAD="$IAHEAD/t2" local TODO="" mm=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # it is no good idea to run interactive (t3) with run TODO="$TODO \"t3\"" @@ -224,11 +224,11 @@ local TODO="" mm=0 a=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # you can not set global variables with run TODO="$TODO \"set_a_to_7 \# a=\<\\\$a\>\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO \"print_a\"" @@ -241,15 +241,15 @@ local TODO="" mm=0 a=0 - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_norun $mm # you can not set global variables with run TODO="$TODO \"set_a_to_7\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO \"eval \\\"echo \\\\\\\"--- \\\$a ---\\\\\\\"\\\"\"" - let mm=$mm+1; eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" in_stdout $mm "^--- .* ---$" TODO="$TODO \"print_a\"" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdtest /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdtest --- bootcd-3.10ubuntu1/bootcdtest 1970-01-01 05:30:00.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdtest 2008-07-29 14:38:01.000000000 +0530 @@ -0,0 +1,114 @@ +#!/bin/sh + +TODOY="-y" +[ "$IAHEAD" ] && IAHEAD="$IAHEAD/bootcdtest" || IAHEAD="bootcdtest" +SPACE=/var/spool/bootcdtest +TODO="" mm=0 +ROOT="" +ERRLOG="/var/log/bootcdtest.log" +DEBSDIRSTANDARD="/var/cache/apt/archives" +DEBSDIR="$DEBSDIRSTANDARD" + +# Used Environment variables (has to be set before "set -u" from bootcd-run.lib) +http_proxy="$http_proxy" + +usage() +{ + [ "$1" ] && echo >&2 "ERROR: $1" + + echo >&2 "USAGE: $(basename $0) [-i] [-s ] # test bootcd." + echo >&2 " -i -- interactiv operation" + echo >&2 " -s -- empty directory with space for tests" + echo >&2 " -debs -- directory with needed debs" + echo >&2 "" + exit 1 +} + +while [ "$1" ]; do + case "$1" in + "-i") + TODOY="" + shift + ;; + "-s") + SPACE="$2" + shift 2 + ;; + "-debs") + DEBSDIR="$2" + shift 2 + ;; + *) + usage "ERROR: option \"$1\" unknown!" + ;; + esac +done + +# check if started as root +[ "$(whoami)" = "root" ] || usage "this script must be started as root" + +# read bootcd-run.lib +if [ -f ./bootcd-run.lib ]; then + echo "Using local ./bootcd-run.lib" >&2 + . ./bootcd-run.lib +elif [ -f $ROOT/usr/share/bootcd/bootcd-run.lib ]; then + . $ROOT/usr/share/bootcd/bootcd-run.lib +else + echo "Error: Mandatory lib bootcd-run.lib not found! ABORT!" + exit 1 +fi + +init() +{ + [ "$SPACE" ] || usage "SPACE is not defined" + [ -e $SPACE ] && usage "$SPACE already exists, please remove it first" + mkdir $SPACE +} +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +TODO="$TODO \"init # mkdir $SPACE\"" + +test_bootcddebootstrap_dir() +{ + local IAHEAD="$IAHEAD/test_bootcddebootstrap" + local TODO="" mm=0 + export IAHEAD # to be used by bootcddebootstrap + + if [ "$DEBSDIR" = "$DEBSDIRSTANDARD" ]; then + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + in_norun $mm + TODO="$TODO \"apt-get install --yes --reinstall --download-only debootstrap bootcd bootcd-backup bootcd-i386 bootcd-mkinitramfs\"" + fi + + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + in_norun $mm + TODO="$TODO \"/usr/share/doc/bootcd-backup/examples/bootcddebootstrap <-i> -d $SPACE/space $DEBSDIR\"" + + eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" +} +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +in_norun $mm +TODO="$TODO \"test_bootcddebootstrap_dir # using bootcd and debootstrap packages from $DEBSDIR\"" + +test_bootcddebootstrap_deb() +{ + local IAHEAD="$IAHEAD/test_bootcddebootstrap" + local TODO="" mm=0 + export IAHEAD # to be used by bootcddebootstrap + + if [ "$DEBSDIR" = "$DEBSDIRSTANDARD" ]; then + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + in_norun $mm + TODO="$TODO \"apt-get install --yes --reinstall --download-only debootstrap\"" + fi + + mm=$(($mm+1)); eval local IGNORE${mm}=\"\"; eval local STDOUT${mm}=\"\" + in_norun $mm + TODO="$TODO \"/usr/share/doc/bootcd-backup/examples/bootcddebootstrap <-i> -d $SPACE/space /var/cache/apt/archives/debootstrap_*.deb\"" + + eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" +} +mm=$(($mm+1)); eval IGNORE${mm}=\"\"; eval STDOUT${mm}=\"\" +in_norun $mm +TODO="$TODO \"test_bootcddebootstrap_deb # using debootstrap package from $DEBSDIR\"" + +eval "interactive $TODOY -r -h \"=== \$IAHEAD ===\" $TODO" diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/bootcdwrite /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/bootcdwrite --- bootcd-3.10ubuntu1/bootcdwrite 2007-12-30 16:14:08.000000000 +0530 +++ bootcd-3.11ubuntu1/bootcdwrite 2008-07-30 14:59:03.000000000 +0530 @@ -1,7 +1,7 @@ #!/bin/sh # # $Source: /cvsroot/bootcd/bootcd/bootcdwrite,v $ -# $Id: bootcdwrite,v 1.71 2007-12-30 10:44:08 bs Exp $ +# $Id: bootcdwrite,v 1.74 2008-07-30 09:29:03 bs Exp $ # author: Bernd Schumacher # start: long time ago # topic: build cd image @@ -383,7 +383,7 @@ for i in $(seq 2 9); do [ ! "$(eval echo \$DISPLAY$i 2>/dev/null)" ] && continue - if [ "$(eval echo \$DISPLAY$i)" == "kernelinfo" ]; then + if [ "$(eval echo \$DISPLAY$i)" = "kernelinfo" ]; then echo "F${i} $infofile" >>/$CHANGES/isolinux/isolinux.cfg addhelp="yes" continue @@ -436,11 +436,11 @@ sed -ne "s|.*[[:space:]]\+\([^[:space:]]\+\)[[:space:]]\+\([^[:space:]]\+\)[[:space:]]*\(.*<.*@.*>\).*|\1 \2 \3|p" | sort | while read i; do - if [ "$a" == "" ]; then + if [ "$a" = "" ]; then a=$i continue; fi - if [ "$(echo $i| cut -d" " -f2)" == "$(echo $a| cut -d" " -f2)" ]; then + if [ "$(echo $i| cut -d" " -f2)" = "$(echo $a| cut -d" " -f2)" ]; then count=$(expr $count + 1); else echo "$count $a"; @@ -843,7 +843,7 @@ run cp /usr/share/bootcd/bootcd-run.lib $CHANGES/usr/share/bootcd/ run cp /usr/share/bootcd/bootcd2disk.lib $CHANGES/usr/share/bootcd/ -if [ -d /dev/.static/dev -a -x /etc/init.d/udev ]; then +if [ -d $SRCDI/dev/.static/dev -a -x $SRCDI/etc/init.d/udev ]; then # -- udev -- # The filesystem has static device files in /dev. # But tmpfs is mounted over /dev and hides the static device files. @@ -941,14 +941,14 @@ for i in $CPIODIR; do run "cd $SRCDISK; find $i | $FG | cpio --quiet -pdum $VAR/ram1" - if [ "$i" = "dev" -a -d /dev/.static/dev -a -x /etc/init.d/udev ]; then + if [ "$i" = "dev" -a -d $SRCDI/dev/.static/dev -a -x $SRCDI/etc/init.d/udev ]; then # -- udev -- # The filesystem has static device files in /dev. # But tmpfs is mounted over /dev and hides the static device files. # The static device files are mounted again in /dev/.static/dev/. # This means bootcd has only to copy /dev/.static/dev. mv $VAR/ram1/$i $VAR/ram1/$i.tmp - mv $VAR/ram1/$i.tmp/.static/$i $VAR/ram1/$i + [ -e $VAR/ram1/$i.tmp/.static/$i ] && mv $VAR/ram1/$i.tmp/.static/$i $VAR/ram1/$i mv $VAR/ram1/$i.tmp/.static $VAR/ram1/$i rm -rf $VAR/ram1/$i.tmp fi @@ -1009,7 +1009,7 @@ if [ "$DEVFS" = "yes" ]; then MKISODEVFS="" - elif [ -d /dev/.static/dev -a -x /etc/init.d/udev ]; then + elif [ -d $SRCDI/dev/.static/dev -a -x $SRCDI/etc/init.d/udev ]; then # -- udev -- # The filesystem has static device files in /dev. # But tmpfs is mounted over /dev and hides the static device files. @@ -1055,5 +1055,6 @@ [ -e "/$CHANGES/cdboot.img" ] && cp /$CHANGES/cdboot.img $VAR/floppy.img -echo -e "work is done... find images in \"$VAR\" now!\n" +echo "work is done... find images in \"$VAR\" now!" +echo diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/.cvsignore /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/.cvsignore --- bootcd-3.10ubuntu1/.cvsignore 1970-01-01 05:30:00.000000000 +0530 +++ bootcd-3.11ubuntu1/.cvsignore 2007-11-29 17:59:04.000000000 +0530 @@ -0,0 +1,7 @@ +bootcdbackupwizard +bootcddebootstrap +bootcdmk2diskconf +bootcdbackupwizard_?.??.tar.gz +bootcdbackwiz_extract +build-stamp +bootcdmkbackwiztar diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/bootcd-ia64.install /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/bootcd-ia64.install --- bootcd-3.10ubuntu1/debian/bootcd-ia64.install 1970-01-01 05:30:00.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/bootcd-ia64.install 2008-07-29 14:38:01.000000000 +0530 @@ -0,0 +1 @@ +usr/share/bootcd/bootcd-ia64.lib diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/bootcd-mkinitramfs.postinst /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/bootcd-mkinitramfs.postinst --- bootcd-3.10ubuntu1/debian/bootcd-mkinitramfs.postinst 2007-02-23 15:49:11.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/bootcd-mkinitramfs.postinst 2008-07-26 15:13:04.000000000 +0530 @@ -20,3 +20,5 @@ update-initramfs -u fi + +#DEBHELPER# diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/bootcd-mkinitramfs.postrm /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/bootcd-mkinitramfs.postrm --- bootcd-3.10ubuntu1/debian/bootcd-mkinitramfs.postrm 2007-07-05 13:43:32.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/bootcd-mkinitramfs.postrm 2008-07-26 15:13:04.000000000 +0530 @@ -8,3 +8,5 @@ update-initramfs -u -k all fi fi + +#DEBHELPER# diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/changelog /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/changelog --- bootcd-3.10ubuntu1/debian/changelog 2008-06-24 12:44:44.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/changelog 2008-08-07 11:52:26.000000000 +0530 @@ -1,3 +1,85 @@ +bootcd (3.11ubuntu1) hardy; urgency=low + + * ump standards version to 3.8.0 with no changes. + * Implement quilt patch system: + - Add quilt as a Build-Depends in debian/control + - Add quilt support in debian/rules + * the bootcd-ia64.lib is now in bootcd-ia64. This bug was reported by + Jens Kapitza Closes: #489414 + * Added a description "how to create a liveusbstick from a bootcd-iso" from + Ingo Peter to the FAQ. + * Added some from NMU deleted "-n options" to "echo" command where needed. + * bootcddebootstrap now recognizes environment varialbe http_proxy + * bootcddebootstrap now runs apt with a higher Cache-Limit + * bootcddebootstrap now has a more intelligent way to check output + of "apt-get install" + * added bootcdtest script to make testing of packages before commiting + easier. This script is only available in the bootcd source package. + - The test script can only test bootcddebootstrap until now + * Added "mount --move /dev.ro /dev" to S12bootcdram.sh to correct the + problem "Unable to connect via ssh" with error "stdin: is not a tty" + This was only possible with the bugreports and help of + Alessandro Polverini and "Yifang Dai" . + Closes: #464728 + * Added patch for "MKISODEVFS variable has wrong assignment" from + Jens Kapitza . Closes: #484705 + * Resolved bashism reported by Raphael Geissert + (sourced script with arguments) in bootce2disk. Closes: #489545 + * Resolved bashism reported by Raphael Geissert + Closes: #489548 + * Applied patch by Leonardo Rodrigues de Mello to make package work with + sh=dash. (Closes: #464497) + All remaining bashisms are also understood by dash. + * Added 01bootcdmk2diskconf.src.diff patch + * Added unpatch, build patch to debian/rules + + -- Bhavani Shankar Thu, 07 Aug 2008 11:49:30 +0530 + +bootcd (3.11) unstable; urgency=low + + * the bootcd-ia64.lib is now in bootcd-ia64. This bug was reported by + Jens Kapitza Closes: #489414 + * Added a description "how to create a liveusbstick from a bootcd-iso" from + Ingo Peter to the FAQ. + * Added some from NMU deleted "-n options" to "echo" command where needed. + * bootcddebootstrap now recognizes environment varialbe http_proxy + * bootcddebootstrap now runs apt with a higher Cache-Limit + * bootcddebootstrap now has a more intelligent way to check output + of "apt-get install" + * added bootcdtest script to make testing of packages before commiting + easier. This script is only available in the bootcd source package. + - The test script can only test bootcddebootstrap until now + * Added "mount --move /dev.ro /dev" to S12bootcdram.sh to correct the + problem "Unable to connect via ssh" with error "stdin: is not a tty" + This was only possible with the bugreports and help of + Alessandro Polverini and "Yifang Dai" . + Closes: #464728 + * Added patch for "MKISODEVFS variable has wrong assignment" from + Jens Kapitza . Closes: #484705 + * Resolved bashism reported by Raphael Geissert + (sourced script with arguments) in bootce2disk. Closes: #489545 + * Resolved bashism reported by Raphael Geissert + (let ...). Closes: #489548 + + -- Bernd Schumacher Sat, 26 Jul 2008 11:44:58 +0200 + +bootcd (3.10+nmu1) unstable; urgency=low + + * Non-maintainer upload. + * Applied patch by Leonardo Rodrigues de Mello to make package work with + sh=dash. (Closes: #464497) + All remaining bashisms are also understood by dash. + * Fixed lintian errors: + - Bumped Standards-Version to 3.8.0. + - Depend on genisoimage instead of mkisofs. + - Recommends wodim instead of cdrecord. + - Only build depend on debhelper once. + - Do not ignore errors in clean target. + - Added debhelper token to postinst and postrm. + - Minor typo in description. + + -- Michael Meskes Sat, 21 Jun 2008 19:39:52 +0200 + bootcd (3.10ubuntu1) intrepid; urgency=low * Added 01bootcdmk2diskconf.src.diff patch: diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/control /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/control --- bootcd-3.10ubuntu1/debian/control 2008-06-24 12:42:31.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/control 2008-08-07 11:48:51.000000000 +0530 @@ -5,13 +5,13 @@ XSBC-Original-Maintainer: Bernd Schumacher Build-Depends: debhelper (>= 4), quilt Build-Depends-Indep: debhelper (>= 4) -Standards-Version: 3.6.1 +Standards-Version: 3.8.0 Package: bootcd Architecture: all Suggests: ssh, bootcd-mkinitramfs -Depends: mkisofs, cpio, fdutils, file, dosfstools, realpath, bootcd-i386 | bootcd-hppa | bootcd-ia64 -Recommends: cdrecord +Depends: genisoimage, cpio, fdutils, file, dosfstools, realpath, bootcd-i386 | bootcd-hppa | bootcd-ia64 +Recommends: wodim Description: run your system from cd without need for disks Build an image of your running Debian System with the command bootcdwrite. You can also build a bootcd ISO image via NFS on a remote System. @@ -24,7 +24,7 @@ it and make it bootable automatically. Bootcd also supports lilo, grub, initrd, udev, lvm, transparent-compression ISO 9660 fs and syslinux/isolinux. The included FAQ describes how bootcd can do - online or offline backups of other linux distributions, resulting + online or offline backups of other Linux distributions, resulting in restore-bootcds. The bootcdbackupwizard helps to create online backups. @@ -63,7 +63,7 @@ With bootcd you can copy your system to cd, run it from cd without need for disks and restore your system on disk from bootcd. This Package should be installed on a system you want to copy to cd, if the - kernel uses initrd (as all prebuild debian 2.4 and 2.6 kernels do). + kernel uses initrd (as all prebuild Debian 2.4 and 2.6 kernels do). If you have also installed discover than it can be used to detect the needed modules to boot. @@ -72,10 +72,10 @@ Suggests: bootcd Depends: Conflicts: -Description: tools to backup a debian or alien linux installation - Tools and documentation to backup a debian or alien linux - distribution to a bootable debian bootcd. - If you only want to backup an alien linux distribution just download +Description: tools to backup a Debian or alien Linux installation + Tools and documentation to backup a Debian or alien Linux + distribution to a bootable Debian bootcd. + If you only want to backup an alien Linux distribution just download ftp://bootcd.alioth.debian.org/pub/bootcd/bootcdbackupwizard.tar.gz - on the alien linux distribution, untar it and follow the README. + on the alien Linux distribution, untar it and follow the README. To create bootcdbackupwizard.tar.gz and to learn more, install this package. diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/.cvsignore /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/.cvsignore --- bootcd-3.10ubuntu1/debian/.cvsignore 1970-01-01 05:30:00.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/.cvsignore 2007-11-29 17:59:04.000000000 +0530 @@ -0,0 +1,8 @@ +bootcd +bootcd-hppa +bootcd-i386 +bootcd-ia64 +bootcd-mkinitramfs +bootcd-backup +files +tmp diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/debian/rules /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/debian/rules --- bootcd-3.10ubuntu1/debian/rules 2008-06-24 12:42:31.000000000 +0530 +++ bootcd-3.11ubuntu1/debian/rules 2008-07-31 03:00:45.000000000 +0530 @@ -23,7 +23,7 @@ rm -f build-stamp # Add here commands to clean up after the build process. - -$(MAKE) clean + [ ! -f Makefile ] || $(MAKE) clean #-$(MAKE) distclean dh_clean diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/FAQ.backup /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/FAQ.backup --- bootcd-3.10ubuntu1/FAQ.backup 2007-12-27 21:53:49.000000000 +0530 +++ bootcd-3.11ubuntu1/FAQ.backup 2008-07-29 14:38:01.000000000 +0530 @@ -5,7 +5,8 @@ 2. Create an online backup 3. Create an offline backup 4. Restore a backup -5. Known Bugs +5. How to use ... +6. Known Bugs 1. General Backup Questions @@ -188,9 +189,17 @@ If you restore your backup to another hardware, this may require changes in the files included in the backup (/etc/fstab). -5. Known Bugs - +5. How to use ... 5.1 +Q: How to use bootcddebootstrap +A: # become root + export http_proxy=... # only if needed + apt-get install --reinstall --download-only debootstrap + /usr/share/doc/bootcd-backup/examples/bootcddebootstrap -i /var/cache/apt/archives/debootstrap_*.deb + +6. Known Bugs + +6.1 Q: Does bootcdbackup support selinux A: Yes, but no full support. If selinux is enabled, bootcdbackupwizard uses star instead of cpio, diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/FAQ.bootcd /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/FAQ.bootcd --- bootcd-3.10ubuntu1/FAQ.bootcd 2007-12-18 20:51:24.000000000 +0530 +++ bootcd-3.11ubuntu1/FAQ.bootcd 2008-07-29 14:38:01.000000000 +0530 @@ -2,7 +2,7 @@ 0. Where to get help 1. Before Creating a bootcd 2. Creating a bootcd image -3. Burning the image +3. Burning the image or creating a liveusbstick 4. Booting from bootcd 5. Installing bootcd on Harddisk 6. Other @@ -164,7 +164,7 @@ NOT_TO_CD. -3. Burning the image +3. Burning the image or creating a liveusbstick 3.1 Q: How can I burn the image ? @@ -186,6 +186,33 @@ If you need it only to save changes made in ram you can do this: mke2fs /dev/fd0 +3.3 +Q: How to create a LiveUsbBootStick from a bootcd-iso +A: for example: + the usb-stick -> /dev/sda + the bootcd-iso -> /var/spool/bootcd/cdimage.iso + + fdisk /dev/sda # delete all partions, create one linux (83) partion and activate it (a) + mkfs.ext3 -b 1024 -m 2 /dev/sda1 + tune2fs -c 0 -i 0 /dev/sda1 + mkdir /tmp/stick + mkdir /tmp/iso + mount /dev/sda1 /tmp/stick + mount -o loop /var/spool/bootcd/cdimage.iso /tmp/iso + mkdir /tmp/stick/boot + mkdir /tmp/stick/boot/grub + echo '(hd0) /dev/sda' > /tmp/stick/boot/grub/device.map + grub-install --root-directory=/tmp/stick /dev/sda + cd /tmp/iso cp -a * /tmp/stick/. + vi /tmp/stick/boot/grub/menu.lst + ... + change the entries + /dev/sda1 + ... + rm /tmp/stick/isolinux -r + cd + umount /tmp/stick + umount /tmp/iso 4. Booting from bootcd diff -Nru /tmp/hyA7x1cN2z/bootcd-3.10ubuntu1/S12bootcdram.sh /tmp/R7mIruTaJ4/bootcd-3.11ubuntu1/S12bootcdram.sh --- bootcd-3.10ubuntu1/S12bootcdram.sh 2007-07-16 00:21:10.000000000 +0530 +++ bootcd-3.11ubuntu1/S12bootcdram.sh 2008-07-29 14:38:01.000000000 +0530 @@ -59,12 +59,19 @@ ln -sf ../$i /ram1/$i done -# We may have to create /dev/ram2 for the next step +# if udev is used, make sure udev is mounted on /dev +# Reason is that as /etc/init.d/udev was called /dev pointed to /dev.ro +# Without "mount --move" for example /dev/pts/* will not be created, +# but /dev.ro/pts/* will be managed by udev. +[ "$(mount | grep "^udev\>.*dev.ro\>")" ] && mount --move /dev.ro /dev + +# Next lines are no longer needed, instead the line before does +# the job in the right way. # Recreate udev (needed for kernel >2.6.8) -if [ -x /etc/init.d/udev ]; then - /etc/init.d/udev stop - /etc/init.d/udev start -fi +#if [ -x /etc/init.d/udev ]; then + #/etc/init.d/udev stop + #/etc/init.d/udev start +#fi mke2fs -q $INODES /dev/ram2 # Size is defined by ramdisk_size at boottime mount /dev/ram2 /ram2 -o defaults,rw