打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
mdev规则实现可移动设备的自动挂载
这是一个通过mdev规则实现可移动设备(U盘,SD卡)自动挂载的例子,它的功能和mini2440文件系统中/sbin/hotplug类似,只是用shell脚本实现。这个脚本来自互联网,借此希望给各位一些设备挂载和hotplug的概念,欢迎各位加入讨论这个话题。
要使用automount.sh脚本,你需要
1. 在/etc/mdev.conf的最后加入下面两行。注意,因为mdev在匹配规则时总是用第一个匹配到的规则,因此新加入的规则不会影响原来对于SD卡和U盘的处理,只是增加了对于原来不支持的情况,比如没有分区表或超过一个分区时候的处理
  1. #automount
  2. mmcblk[0-9]*    0:0    0600    */sbin/automount.sh $MDEV
  3. sd[a-z][0-9]*    0:0    0600    */sbin/automount.sh $MDEV

可以看到,当SD卡或U盘插入/拔出时,mdev都会自动调用/sbin/automount.sh脚本。传入脚本的参数是环境变量MDEV的值,根据busybox源代码目录下docs/mdev.txt中的描述,这个环境变量的值是当前发生变化的设备名称,也就是像"mmcblk0"或者"sda2"这样的设备名称。

2. 在/sbin目录下添加automount.sh脚本,内容如下:

  1. #from http://clc168.blogspot.com/2008/04/arm-embedded-linuxautomount.html
  2. #! /bin/sh
  3. if [ "$1" == "" ]; then
  4.     echo "parameter is none" > /tmp/error.txt
  5.     exit 1
  6. fi
  7. mounted=`mount | grep $1 | wc -l`

  8. # mounted, assume we umount
  9. if [ $mounted -ge 1 ]; then
  10.     echo "R/media/$1" >> /tmp/usbmnt.log
  11.     echo "R/media/$1" > /tmp/fifo.1

  12.     if ! umount "/media/$1"; then
  13.         exit 1
  14.     fi

  15.     if ! rmdir "/media/$1"; then
  16.         exit 1
  17.     fi
  18. # not mounted, lets mount under /media
  19. else
  20.     if ! mkdir -p "/media/$1"; then
  21.         exit 1
  22.     fi

  23.     if ! mount "/dev/$1" "/media/$1" 2>> /tmp/error.txt ; then
  24.     # failed to mount, clean up mountpoint
  25.         if ! rmdir "/media/$1"; then
  26.             exit 1
  27.         fi
  28.         exit 1
  29.     fi

  30.     echo "A/media/$1" >> /tmp/usbmnt.log
  31.     echo "A/media/$1" > /tmp/fifo.1

  32. fi

  33. exit 0

这个脚本非常简单,基本上可以是self explanation的了。

这样,插入不包含分区表或者多于一个分区的U盘或者SD卡后,就可以在/media/目录下找到相应的挂载点.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
rpm依赖包查找文件
在liunx双机下自己动手实现浮动IP技术
DevStack剖析(五)stack.sh(1)
Shell脚本
100天shell脚本计划-9/20-渐入佳境
Linux常用Shell脚本珍藏
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服