The applicable part of /boot/isolinux/minirt.gzminirtinit:
#@@@GvR Bootfrom Section start
BOOTSYS="/mnt-system"
if [ ! -r "$BOOTSYS/$knoppix_dir/KNOPPIX" ]; then
# find BOOTFROM variable (/dev/sda1/boot/k620/*.iso)
BOOTFROM=""; bootfrom="";
for i in $CMDLINE; do case "$i" in [Bb][Oo][Oo][Tt][Ff][Rr][Oo][Mm]=*) eval $i;; esac; done
[ -n "$bootfrom" ] && BOOTFROM="$bootfrom"
if [ -n "$BOOTFROM" ]; then
# we may have an ISO file, try mounting it
BOOTISO="/mnt-iso"; BOOTDEV=""; BOOTFILE=""
mkdir -p $BOOTISO $BOOTSYS
[ -b /dev/loop1 ] || mknod -m 755 /dev/loop1 b 7 1
if [ -n "$NFSDIR" ]; then
umount $BOOTSYS; MOUNTED=""
message nfs remount "${NFSDIR}" "${BOOTISO}" -o ro,rsize=8192,wsize=8192,hard,nolock,intr$SECUREOPTIONS
mount "${NFSDIR}" "${BOOTISO}" -o ro,rsize=8192,wsize=8192,hard,nolock,intr$SECUREOPTIONS > /dev/null 2>&1 && MOUNTED="yes"
if [ -z "$MOUNTED" ]; then
umount $BOOTISO >/dev/null 2>&1
if [ -x /static/mount.cifs ]; then
message cifs remount "${NFSDIR}" "${BOOTISO}" -r -o guest,noserverino,nounix
/static/mount.cifs "${NFSDIR}" "${BOOTISO}" -r -o guest,noserverino,nounix > /dev/null 2>&1 && MOUNTED="yes"
[ -z "$MOUNTED" ] && umount $BOOTISO > /dev/null 2>&1
fi
fi
BOOTFILE=$BOOTFROM
else
BOOTDEV=$(echo "$BOOTFROM" | awk -F/ '{print $1"/"$2"/"$3}')
BOOTFILE="${BOOTFROM#*/}"; BOOTFILE="${BOOTFILE#*/}"; BOOTFILE="${BOOTFILE#*/}"
message -n "${CRE}${BLUE}Trying to mount the ISO partition ${MAGENTA}$BOOTDEV${BLUE}...${NORMAL}"
trymount "$BOOTDEV" "$BOOTISO" >/dev/null 2>&1
fi
if [ ! -r "$BOOTISO/$BOOTFILE" ]; then umount $BOOTISO >/dev/null 2>&1
message "${CRE}${RED}Cannot mount the partition ${MAGENTA}$BOOTDEV${NORMAL} (cannot find: ${RED}${BOOTISO}/${BOOTFILE}${NORMAL})"
ls -al "$BOOTISO"
else
message -n "${CRE}${BLUE}Trying to mount CD image on ${MAGENTA}${BOOTFILE}${BLUE}...${NORMAL}"
losetup /dev/loop1 "$BOOTISO/$BOOTFILE" && mount -r /dev/loop1 $BOOTSYS >/dev/null 2>&1
if [ ! -r "$BOOTSYS/$knoppix_dir/KNOPPIX" ]; then umount $BOOTSYS >/dev/null 2>&1
message -n "${CRE}${RED}Cannot mount CD image on ${MAGENTA}${BOOTFILE}${NORMAL}"
umount "$BOOTSYS" >/dev/null 2>&1
losetup -d /dev/loop1 >/dev/null 2>&1
else
message -e "r${CRE}${GREEN}$DISTRO ${FOUNDAT}: ${MAGENTA}${BOOTDEV}/$(cd $BOOTISO; ls -a $BOOTFILE)${NORMAL} "
fi
fi
# try to find ISO in an alternate locations using the same path
if [ ! -r "$BOOTSYS/$knoppix_dir/KNOPPIX" ]; then
message -n "${CRE}${MAGENTA}Trying to find the ISO image in an other partition...${NORMAL}"
# If USB storage device, wait for USB...
if [ -d /sys/bus/usb/drivers/usb-storage ]; then WUSB="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"; else WUSB="1"; fi
for i in $WUSB ; do
for BOOTDEV in $(listpartitions 'hd[a-z]' 'hd[a-z][0-9]*' 'scd[0-9]*' 'sr[0-9]*' 'sd[a-z]' 'sd[a-z][0-9]*'); do
if [ -b "$BOOTDEV" ]; then
message -n -e "r${CRE}${BLUE}Searching for ISO in: ${MAGENTA}${BOOTDEV}${NORMAL} "
trymount "$BOOTDEV" "$BOOTISO" > /dev/null 2>&1
if [ ! -r "$BOOTISO/$BOOTFILE" ]; then umount $BOOTISO >/dev/null 2>&1; else
message -n "${CRE}${BLUE}Trying to mount CD image on ${MAGENTA}${BOOTFILE}${BLUE}...${NORMAL}"
losetup /dev/loop1 "$BOOTISO/$BOOTFILE" && mount -r /dev/loop1 $BOOTSYS >/dev/null 2>&1
if [ ! -r "$BOOTSYS/$knoppix_dir/KNOPPIX" ]; then
umount $BOOTSYS >/dev/null 2>&1
losetup -d /dev/loop1 >/dev/null 2>&1
else
message -e "r${CRE}${GREEN}$DISTRO ${FOUNDAT}: ${MAGENTA}${BOOTDEV}/$(cd $BOOTISO; ls -a $BOOTFILE)${NORMAL} "
fi
fi
fi
done
if [ -r "$BOOTSYS/$knoppix_dir/KNOPPIX" ]; then
break
else
message -n -e "r${CRE}${BLUE}${WAITFORUSB}${NORMAL} $i ";
sleep 1
fi
done
fi
fi
fi
if [ -r "$BOOTSYS/$knoppix_dir/KNOPPIX" ]; then MOUNTED="yes"; FOUND_KNOPPIX="true"; fi
#@@@GvR Bootfrom Section end
Use ././ as a device name. It's not supported, but seems to work by chance.
Please note:
BOOTDEV=$(echo "$BOOTFROM" | awk -F/ '{print $1"/"$2"/"$3}')
BOOTFILE="${BOOTFROM#*/}"; BOOTFILE="${BOOTFILE#*/}"; BOOTFILE="${BOOTFILE#*/}"