--- trunk/create-clonezilla-sysresccd/patch-clonezilla-sysresccd.sh 2010/05/26 20:30:21 63 +++ trunk/create-clonezilla-sysresccd/patch-clonezilla-sysresccd.sh 2010/05/28 09:47:17 64 @@ -94,9 +94,7 @@ function cleanUp(){ cd echo -n "Cleanning up... " -[ -z "$inputFileMounted" ] || umount "$mountPoint" 2>/dev/null [ -z "$mountPointCreated" ] || rmdir "$mountPoint" 2>/dev/null -[ -z "$savePartitionMounted" ] || umount "$savePartition" 2>/dev/null [ -z "$newIsoCreated" ] || { [ -z "$keepFiles" ] && rm -rf "$savePartitionMountPoint"/new-iso 2>/dev/null } @@ -104,6 +102,8 @@ rmdir "$savePartitionMountPoint"/new-iso 2>/dev/null rmdir "$savePartitionMountPoint" 2>/dev/null } +[ -z "$inputFileMounted" ] || umount "$mountPoint" 2>/dev/null +[ -z "$savePartitionMounted" ] || umount "$savePartition" 2>/dev/null echo "done" } @@ -143,8 +143,10 @@ # # ############################################################################## if [ -z "$workingFromCD" ];then + genisoimage --version >/dev/null 2>&1 && MKISO=genisoimage || MKISO=mkisofs savePartitionMountPoint=/root/tmp/savePartition.$$ else + MKISO=genisoimage savePartitionMountPoint=/savePartition.$$ fi mkdir -p "$savePartitionMountPoint" 2>/dev/null && savePartitionMountPointCreated='y' || { @@ -174,7 +176,7 @@ fi # is it writeable? rm -rf "$savePartitionMountPoint"/new-iso 2>/dev/null - mkdir "$savePartitionMountPoint"/new-iso 2>/dev/null || { + mkdir "$savePartitionMountPoint"/new-iso 2>/dev/null && newIsoCreated='y' || { echo echo " Error: Partition $savePartition is mounted read-only" exit 1 @@ -201,7 +203,7 @@ ;; i) # input file or cdrom device test "$(whoami)" = "root" || noRoot - [ -s "$OPTARG" ] || { + [ -e "$OPTARG" ] || { echo " Error: The specified file \"$OPTARG\" cannot be found" exit 1 } @@ -244,7 +246,7 @@ exit 1 fi if [ -z "$(fdisk -l "$OPTARG" 2>/dev/null)" ];then - echo " Error: Parameter -c (storage partition) is not a a valid partition" + echo " Error: Parameter -p (storage partition) is not a a valid partition" exit 1 fi savePartition="$OPTARG" @@ -441,6 +443,9 @@ echo -n "Copying files... " + +if [ -z "$workingFromCD" ];then + cp -r "$mountPoint"/* "$savePartitionMountPoint"/new-iso 2>/dev/null && { echo "done" } || { @@ -451,10 +456,24 @@ } +else + +for n in "$mountPoint"/*;do +if [ "$n" != "$savePartitionMountPoint" ] && [ "$n" != "/proc" \ && [ "$n" != "/sys" ];then + cp -r "mountPoint"/"$n" "$savePartitionMountPoint"/new-iso 2>/dev/null || { + echo "failed" + echo + cleanUp + exit 1 + } +fi +done +fi + echo -n "Installing new files... " if [ ! -z "$mainTitle" ];then for n in $(find "$savePartitionMountPoint"/new-iso -iname "*.cfg");do - sed "0,/^MENU TITLE.*/s//MENU TITLE $mainTitle/" "$n" > "$n".$$ + sed "s/^MENU TITLE *Clonezilla-SysRescCD .*$/MENU TITLE $mainTitle/" "$n" > "$n".$$ mv "$n".$$ "$n" done fi @@ -503,7 +522,7 @@ outputFile="$savePartitionMountPoint"/"$outputFile" -mkisofs -r -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat \ +$MKISO -r -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ "$savePartitionMountPoint"/new-iso \ | \ @@ -540,6 +559,16 @@ fi [ -z "$deleteISO" ] && { echo + echo -n "Looking for iohybrid executable... " + chIsoHyb=`type isohybrid 2>/dev/null` + if [ -n "$chIsoHyb" ];then + echo found + echo -n "Isohybriding $outFile... " + isohybrid "$outFile" + echo 'done' + else + echo not found + fi echo "ISO file: \"$outputFile\"" };; esac