diff options
-rw-r--r-- | init | 1 | ||||
-rw-r--r-- | install/autodetect | 13 |
2 files changed, 12 insertions, 2 deletions
@@ -20,6 +20,7 @@ for cmd in $CMDLINE; do case "$cmd" in [0123456Ss]) export runlevel="$cmd" ;; single) export runlevel="S" ;; #some people use 'single' + *.*) ;; #do nothing if it contains a dot *=*) export "${cmd}" ;; *) export "${cmd}=y" ;; esac diff --git a/install/autodetect b/install/autodetect index 8bcae91..a338d3b 100644 --- a/install/autodetect +++ b/install/autodetect @@ -6,8 +6,17 @@ install () #blegh, we'll let /tmp clean itself up AUTODETECT="$(auto_modules -e '/scsi/' -e '/block' -e '/fusion/' \ -e '/usb/' -e '/ide/' -e '/ieee1394/' -e '/cdrom' \ - -e '/net/' -e '/pcmcia') - $(cat /proc/filesystems | grep -v nodev) " + -e '/net/' -e '/pcmcia')" + + #Filesystem detection, use sysfs instead of /proc + for blk in $(ls /sys/block/*/*/dev | cut -d/ -f5); do + eval $(/usr/lib/klibc/bin/fstype < /dev/${blk}) + for mod in $(find "${MODULEDIR}" -type f -name "${FSTYPE}.ko"); do + if [ "x${mod}" != "x" ]; then + AUTODETECT="${AUTODETECT} ${mod}" + fi + done + done if [ -e /sbin/mdadm ]; then if [ $UID -eq 0 -o "$(groups | grep disk)" != "" ]; then |