首先摆出参考文档出处:http://www.360doc.com/content/12/1122/17/6828497_249574471.shtml
节取如下部分,线内为我复制过来的:
/***************************************************************************************************************************************************************************************/在ARM嵌入式Linux下,要让U盘自动挂载,可以用到mdev方式实现(mdev是busybox中的一个udev管理程序的一个精简版,它可以实现设备节点的自动创建和设备的自动挂载),下面是实现的步骤:
[*] mdev
[*] Support /etc/mdev.conf
[*] Support command execution at device addition/removal
/***************************************************************************************************************************************************************************************/
首先,我测试的结果是这个卸载过程有问题,经过验证:
在插入和拔出时的脚本中,MEDV值是不一样的,如插入U盘(sda设备时),udisk_insert脚本内的MDEV为sda1,然在udisk_remove脚本内的MDEV值为sda.所以要字符转化下。
关于拔掉U盘自动删除相应目录,也可以成功,但不能在sda*目录,也就是不能在U盘目录被占用时(打开),拔掉U盘。
这时容易出错(原因是U盘正在使用中),这样的结果是下次插入U盘时,又创建了新的sda*目录。这样显示得解决
于是,查找了很多资料(由于我是用了双USB口),后来也只是用了一种方法:
即:找到与U盘相关的所有进程,将其全部杀死!
后来,整理成如下:希望可以与别人交流共享(加载格式等未变化,主要是修改了udisk_remove)
cat mdev/udisk_remove
#!/bin/sh
YANG="${MDEV:0:3}1" //为了实现两个脚本中MDEV值不一样
CHAO=`fuser -m /mnt/udisk/$YANG` //获取与要拔出的设备所有相关的进程号
kill -9 `fuser -m /mnt/udisk/$YANG` //将与其相关的全部进程删除
echo "KILL $CHAO " > /dev/ttyS0 //调试输出
/bin/umount /mnt/udisk/$YANG || true //然后再卸载
/bin/rmdir /mnt/udisk/$YANG //删除相应文件夹
str3=`pwd` //调试用
echo $str3 > /dev/ttyS0 //调试输出
echo "usb removde $str2 $YANG $MDEV $ACTION" > /dev/ttyS0 //调试输出