diff -rupN original-genkernel/defaults/initrd.scripts genkernel/defaults/initrd.scripts --- original-genkernel/defaults/initrd.scripts 2009-11-23 19:46:15.000000000 +0100 +++ genkernel/defaults/initrd.scripts 2009-11-23 19:49:02.000000000 +0100 @@ -72,8 +72,15 @@ findmediamount() { if [ "$#" -gt "0" ] then - [ ! -d "${mntdir}" ] && mkdir -p ${mntdir} 2>/dev/null >/dev/null + if [ ! -z ${ISOBOOT} ]; then + mntcddir="${mntdir%${media}}iso" + if [ ! -f ${mntcddir} ]; then + mkdir ${mntcddir} + fi + else + mntcddir=${mntdir} + fi for x in $* do @@ -104,9 +113,18 @@ findmediamount() { # else # mount -r -t auto ${x} ${mntdir} &>/dev/null # fi - mount -r -t ${CDROOT_TYPE} ${x} ${mntdir} >/dev/null 2>&1 + mount -r -t ${CDROOT_TYPE} ${x} ${mntcddir} >/dev/null 2>&1 if [ "$?" = '0' ] then + if [ ! -z ${ISOBOOT} ]; then + if [ -f ${mntcddir}/${ISOBOOT} ]; then + mount -o loop ${mntcddir}/${ISOBOOT} ${mntdir} + if [ "$?" = "0" ]; then + good_msg "iso mounted on ${mntdir}" + fi + fi + fi + # Check for the media if [ -f "${mntdir}/${recon}" ] then @@ -115,7 +133,7 @@ findmediamount() { good_msg "Media found on ${x}" ${CRYPT_SILENT} break else - umount ${mntdir} + umount ${mntcddir} fi fi fi diff -rupN original-genkernel/defaults/linuxrc genkernel/defaults/linuxrc --- original-genkernel/defaults/linuxrc 2009-11-23 19:46:15.000000000 +0100 +++ genkernel/defaults/linuxrc 2009-11-23 19:49:14.000000000 +0100 @@ -80,6 +80,9 @@ do looptype\=*) LOOPTYPE=`parse_opt "${x}"` ;; + isoboot\=*) + ISOBOOT=`parse_opt "${x}"` + ;; # Start Volume manager options dolvm) USE_LVM_NORMAL=1