Code:
";;
4c4
< # (C) 2011 by Klaus Knopper <knoppix@knopper.net>
---
> # (C) 2010 by Klaus Knopper <knoppix@knopper.net>
140,141d139
< local rc="1"
< # Try to be quick, and probe the "most likely" file systems first
146,161c144,146
< mount -t ext4 -o "$RW" "$1" "$2" || \
< mount -t ext3 -o "$RW" "$1" "$2" || \
< mount -t ext2 -o "$RW" "$1" "$2"
< rc="$?"
< # Still no luck? Try everything else that the (static) kernel supports
< if [ "$rc" != 0 ]; then
< local fs
< for fs in `awk '!/^nodev/{print $1}' /proc/filesystems 2>&1`; do
< case "$fs" in
< ext[234]|reiserfs|ntfs|fuse*|*fat|iso9660) ;; # Already did that
< *) mount -t "$fs" -o "$RW" "$1" "$2"; rc="$?";;
< esac
< [ "$rc" = "0" ] && break
< done
< fi
< return "$rc"
---
> mount -t ext3 -o "$RW" "$1" "$2" || \
> mount -t ext2 -o "$RW" "$1" "$2"
> return "$?"
303c288
< [ -r "$mod" -a ! -d /sys/module/"${mod%.ko}" ] && insmod "$mod" >/dev/null 2>&1
---
> [ -r "$mod" -a ! -d /sys/module/"${mod%.ko}" ] && insmod "$mod"
338c323
< *\ vga=[0-9]*|*debug*|*\ splash*) true;; *) echo -n "[0;0H[J";;
---
> *\ vga=[0-9]*|*debug*|*\ splash*) true;; *) echo -n "[6;0H[J";;
341,347d325
< message \
< ' _ __ __ __ _____ _____ _____ __ _ __ ___ _______
< / / / / / | / / / ___ \ / __ \ / __ \ / / | |/ / / ___/ \___ /
< / /__/ / / | / / / / / / / /__/ / / /__/ / / / \ / / /_ __/ /
< / / _ - / /| |/ / / / / / / _____/ / _____/ / / / | / __ \ /_ _\
< / / \ \ / / | / / /__/ / / / / / / / / /\ \ / /_/ / _ / /
< /_/ |_|/_/ |__/ \_____/ /_/ /_/ /_/ /_/ |_| \____/ /_/ /_/'
447,455c425
< #@@@GvR
< # Try using other (SMB) mounts
< [ -z "$MOUNTED" ] && [ -x /static/mount.cifs ] && { if [ -n "$NFSDIR" ]; then
< message -n "${CRE}${BLUE}Trying to SMB mount CD on ${MAGENTA}$NFSDIR${BLUE}...${NORMAL}"
< message /static/mount.cifs "${NFSDIR}" /mnt-system -r -o guest,noserverino,nounix
< /static/mount.cifs "${NFSDIR}" /mnt-system -r -o guest,noserverino,nounix > /dev/null 2>&1 && MOUNTED="yes"
< [ -z "$MOUNTED" ] && umount /mnt-system > /dev/null 2>&1
< fi; }
< #@@GvR
---
>
482c452
< checkbootparam "bootfrom" || debugshell
---
> debugshell
488,580d457
< # Return existing device names listed as regular expressions
< listpartitions(){
< local pattern file
< for pattern in "$@"; do
< for file in $(find /sys/class/block -maxdepth 2 -name "$pattern"); do
< file="${file##*/}"
< [ -b "/dev/$file" ] && echo "/dev/$file"
< done
< done
< # awk 'BEGIN{old="__start"}/'"$1"'/{if($0==old){exit}else{old=$0;if($4&&$4!="name"){print "/dev/"$4}}}' /proc/partitions # Insufficient, does not find CD-Roms
< }
<
< #@@@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
<
<
582c459
< amount=$(awk -F: '/^MemTotal/{printf "%d",int($2); exit 0}' /proc/meminfo 2>/dev/null); #'
---
> amount=$(awk -F: '/^MemTotal/{printf "%d",int($2); exit 0}' /proc/meminfo 2>/dev/null)
594,607c471,481
< #@@@GvR add "ramdisk" parameter to allow specifying ramdisk size, otherwise just use max(ram*4/5,2000)M
< for i in $CMDLINE; do case "$i" in [Rr][Aa][Mm][Dd][Ii][Ss][Kk]=*) eval $i;; esac; done
< case "$ramdisk" in
< [0-9]*[KMG]) RAMDISK="$ramdisk" ;;
< esac
< if [ -z "$RAMDISK" ]; then
< if [ "$TOTALMEM" -ge 2000 ] >/dev/null 2>&1; then
< RAMDISK="$(expr $TOTALMEM / 5)"; RAMDISK="$(expr $RAMDISK \* 4)M"
< else
< # Too large, but we can still use swapspace
< RAMDISK="2G"
< fi
< fi
< #@@@GvR
---
> # Return existing device names listed as regular expressions
> listpartitions(){
> local pattern file
> for pattern in "$@"; do
> for file in $(find /sys/class/block -maxdepth 2 -name "$pattern"); do
> file="${file##*/}"
> [ -b "/dev/$file" ] && echo "/dev/$file"
> done
> done
> # awk 'BEGIN{old="__start"}/'"$1"'/{if($0==old){exit}else{old=$0;if($4&&$4!="name"){print "/dev/"$4}}}' /proc/partitions # Insufficient, does not find CD-Roms
> }
609c483
< if [ -z "$FOUND_KNOPPIX" -a -z "$TSCLIENT" ]; then
---
> if [ -z "$TSCLIENT" ]; then
650c524
< mount -t tmpfs -o size="$RAMDISK",dev,suid,exec tmpfs /ramdisk
---
> mount -t tmpfs -o size=2G,dev,suid,exec tmpfs /ramdisk
671c545
< [ -r /KNOPPIX/lib/ld-linux.so.2 -a -x /KNOPPIX/"$cmd" ] && /KNOPPIX/lib/ld-linux.so.2 --library-path "/KNOPPIX/lib:/KNOPPPIX/usr/lib:/KNOPPIX/lib/i386-linux-gnu" /KNOPPIX/"$cmd" "$@"
---
> [ -r /KNOPPIX/lib/ld-linux.so.2 -a -x /KNOPPIX/"$cmd" ] && /KNOPPIX/lib/ld-linux.so.2 --library-path "/KNOPPIX/lib:/KNOPPPIX/usr/lib" /KNOPPIX/"$cmd" "$@"
739c613
< for base in $home /mnt-system/"$knoppix_dir"/knoppix-data /mnt-system/knoppix; do
---
> for base in /mnt-system/"$knoppix_dir"/knoppix-data /mnt-system/knoppix; do