loody schrieb: > hi all: > > 2010/5/23 loody <[email protected]>: >> 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 >> 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 >> if ! rmdir "/media/$dir"; then >> exit 1 >> fi >> exit 1 >> fi >> echo "A/media/$dir" >> /tmp/usbmnt.log >> echo "A/media/$dir" > /tmp/fifo.1 >> fi >> exit 0 >> >> below is my /proc/filesystems >> # cat /proc/filesystems >> nodev sysfs >> nodev rootfs >> nodev bdev >> nodev proc >> nodev sockfs >> nodev pipefs >> nodev anon_inodefs >> nodev tmpfs >> nodev inotifyfs >> nodev devpts >> ext3 >> ext2 >> nodev ramfs >> vfat >> nodev nfs >> nodev cifs >> ntfs >> nodev rpc_pipefs >> >> and below is my dmesg scsi pops out >> sd 11:0:0:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB) >> sd 11:0:0:0: [sda] Write Protect is off >> sd 11:0:0:0: [sda] Mode Sense: 03 00 00 00 >> sd 11:0:0:0: [sda] Assuming drive cache: write through >> sd 11:0:0:0: [sda] Assuming drive cache: write through >> sda: sda1 < sda5 > >> sd 11:0:0:0: [sda] Attached SCSI disk >> > > I find an ungly to fix it. > just put all the different mount in my autorun.sh > like > if ! mount -t vfat -o codepage=437,iocharset=iso8859-1,utf8 "/dev/$1" > "/media/$dir" > if ! mount -t ntfs -o codepage=437,iocharset=iso8859-1,utf8 "/dev/$1" > "/media/$dir" > if ! mount -t ext3 -o codepage=437,iocharset=iso8859-1,utf8 "/dev/$1" > "/media/$dir" > but they are really silly methods. > Did the ubuntu, cenos does the same thing? > appreciate your help, > miloody
mount || mount || mount would do the same and be more readable IMHO Is that an answer to your question ? re, wh _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
