The original /sbin/usb-storage script didn't work on my NSLU2. The below patch should be backwards compatible with the original script.
I've tested it thoroughly, and it even works with hotplug, although I currently have to edit /etc/fstab prior to the hotplug, if the volume is a different file system then the previous volume that was mounted. Signed-off-by: Ross Smith <openwrtspam at netebb.com> --- Index: usb-storage =================================================================== --- usb-storage (revision 11495) +++ usb-storage (working copy) @@ -8,19 +8,34 @@ logger "waiting on usb drive $i ..." i=$(($i+1)) cd /sys${DEVPATH} - for blk in `find host* -type d 2>/dev/null`; do + for blk in `find host* -maxdepth 0 -type d 2>/dev/null`; do cd /sys/${DEVPATH}/${blk} - BLK=$(find block* -type l 2>/dev/null) + BLK=$(find . -name 'block*' \( -type l -o -type d \) 2>/dev/null) [ -n "${BLK}" ] && { cd /sys${DEVPATH}/${blk}/${BLK} ls /dev/ > /tmp/d sleep 2 for node in `find sd* -type d 2>/dev/null| grep -v "/"`; do - echo "mounting /dev/${node} on /mnt/usbdrive" - mkdir -p /mnt/usbdrive - mount /dev/${node} /mnt/usbdrive - exit 0 + cd /sys${DEVPATH}/${blk}/${BLK}/${node} + PARTS=`find ${node}* -type d 2>/dev/null | grep -v "/"` + if [ -z "${PARTS}" ] + then + echo "mounting /dev/${node} on /mnt/usbdrive" + mkdir -p /mnt/usbdrive + mount /dev/${node} /mnt/usbdrive + exit 0 + fi + for part in ${PARTS} + do + DEV=/dev/${part} + MNT=/mnt/${part} + logger "mounting ${DEV} on ${MNT}" + test -d ${MNT} || mkdir -p ${MNT} + mount | grep ${MNT} && umount ${DEV} + mount ${DEV} ${MNT} + done done + exit 0 } done sleep 1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel