On Sunday 23 May 2010 10:23, loody wrote: > hi Denys: > > 2010/5/23 Denys Vlasenko <[email protected]>: > > On Saturday 22 May 2010 14:33, loody wrote: > >> Dear all: > >> I use mdev to handle hotplug event under linux. > >> it runs fine when I plug/unplug usb flash. > >> But it has some problem when I plug/unplug usb HD. > >> Below are my partions I get when I plug my USB HD. > >> > >> # cat /proc/partitions > >> major minor #blocks name > >> > >> 8 0 1972224 sda > >> 8 1 1970546 sda1 > >> 8 16 156290904 sdb > >> 8 17 1 sdb1 > >> 8 21 156280288 sdb5 > >> # > >> > >> and below is my mdev.conf > >> sd[a-zA-Z][0-9]+ 0:0 0660 * /usr/bin/autoscript.sh $MDEV $LABEL > >> > >> As you can see, mdev will pass sdb1 to /usr/bin/autoscript.sh for mounting. > >> But the partion cannot be mount.( from the information in > >> /proc/partitions, it seems some place for data saving.) > > > > Please show autoscript.sh, exact mount command parameters and its error > > message. > > Also, what "cat /proc/filesystems" says? What is your busybox version? > > > > -- > > vda > > > > I guess my problem comes from 2 parts: > 1. Mdev will pass every partition to autorun.sh for mounting. > But in my case, there is a super block partition. ( like the extension > partition) > 2. when mdev pass different format partitions to autorun.sh, > autorun.sh should use different mount parameters for mounting. But it > doesn't. > > my questions are: > 1. how could I stop mdev to pass the superblock partition to autorun.sh > 2. is there additional paramter that mdev can pass to shell such that > they can know the format is different? > BR, > miloody > > below is my autorun.sh > > #! /bin/sh > if [ "$1" == "" ]; then > echo "parameter is none" > /tmp/error.txt > exit 1 > fi > mounted=`mount | grep $1 | cut -d ' ' -f 3` > > if [ ! -z $mounted ]; then > echo "R$mounted" >> /tmp/usbmnt.log > echo "R$mounted" > /tmp/fifo.1 > if ! umount "$mounted"; then > exit 1 > fi
umount "$mounted" || exit 1 is a much less verbose method to do the same... > if ! rmdir "$mounted"; then > exit 1 > fi > else > if [ -z "$2" ];then > dir=$1 > else > dir=$2 > fi > if ! mkdir -p "/media/$dir"; then > exit 1 > fi > if ! mount -o codepage=437,iocharset=iso8859-1,utf8 "/dev/$1" > "/media/$dir"; then Befire doing this, you might want to check that the device actually contains some filesystem. For example, using blkid: 3 blkid /dev/sda; echo $? 2 # blkid /dev/sda1; echo $? /dev/sda1: UUID="E051-DF71" TYPE="vfat" 0 As you see, you can parse blkid output and then use filesystem-specific mount options. -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
