Chinaunix

标题: mdev的u盘自动挂载卸载脚本? [打印本页]

作者: jwwzhh    时间: 2011-12-09 22:14
标题: mdev的u盘自动挂载卸载脚本?
很多人介绍了一下一种方法:
[#] cat /etc/mdev.conf
sd[a-z][0-9]      0:0 666        @/etc/mdev/udisk_insert
sd[a-z]              0:0 666        $/etc/mdev/udisk_remove

[#] cat /etc/mdev/udisk_insert
#!/bin/sh

if [ -d /sys/block/*/$MDEV ];
then
          mkdir -p /media/$MDEV
          mount /dev/$MDEV /media/$MDEV -t vfat -o utf8=1
fi

[#] cat /etc/mdev/udisk_remove
#!/bin/sh

umount /media/$MDEV
rm -rf /media/$MDEV
上面这种方法是有问题的。
u盘插入,这时在/dev目录下自动会创建/sda或者是创建sda的同时会创建sda1。
对于前者的u盘,脚本/etc/mdev.conf就由问题了,因为它没法和sd[a-z][0-9]匹配,因此不会调用/etc/mdev/udisk_insert这个脚本。
对于后者的u盘,脚本/etc/mdev/udisk_remove出问题了,因为插入u盘时执行脚本/etc/mdev/udisk_insert创建的u盘文件夹是$MDEV是sd[a-z][0-9],而现在移除的文件夹是$MDEV是sd[a-z],两者对不上。
也就是说u盘时没法卸载的。

请问一下为什么有得u盘插入时,在/dev下会创建/dev/sda和/dev/sda1,有的在/dev下只会创建/dev/sda。
大致我是明白的,是因为,前者是进行过分区处理了,后者是没有进行过分区处理。进行过分区处理后,必须使用分区符号挂载u盘,即mount /dev/sda1 /media/sda1,不能使用mount /dev/sda/ /media/sda
未进行分区的,那么可以进行这样的处理。

因此很纠结,这个u盘的自动挂载脚本究竟是应该怎么写呢?
作者: amarant    时间: 2011-12-09 22:49
回复 1# jwwzhh


    有一个很挫的建议,用file -s sda看看是不是分区,如果不是就别挂了
作者: jwwzhh    时间: 2011-12-09 23:45
自动挂载是mdev调用程序执行的。
作者: jwwzhh    时间: 2011-12-09 23:51
可以通过fdisk -l命令来查看分区,但是这样处理起来会比较麻烦,特别是当u盘拔出时,就需要知道是哪个u盘拔除了。
作者: jwwzhh    时间: 2011-12-09 23:52
有么有简单一点的?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2