ubuntu自动挂着u盘和sd卡,嵌入式自动mount u盘和sd卡,嵌入式自动挂载u盘,arm自动挂载,debian自动挂载

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mynameislinduan/article/details/84818154

本文记录使用udev自动挂载SD卡和U盘的方法。方法适用于各种linux带udev的系统。
usb挂载,sd卡挂载,udev使用,debian udev自动挂载,ubuntu自动挂载,嵌入式自动挂载,arm自动挂载,开发板自动挂载

参考链接:

http://blog.chinaunix.net/uid-26119896-id-5211736.html

一、添加udev规则

确认你系统有udev,然后,创建自动挂载的udev规则文件,具体规则参照上面的链接,位置: /etc/udev/rules.d/

cd  /etc/udev/rules.d/

sudo touch 11-add-usb.rules

sudo touch 11-add-remove.rules

上面的规则,一个是自动挂着的规则,里面包含自动挂载usb和自动挂载sd卡的规则。命名方式要注意:

我们只需要创建了rules文件就好了,只要命名规则对了,udev会自动生效。
udev 是按照规则文件的字母顺序来解析各规则文件的,并根据匹配上的规则创建对应的设备文件或链接。所以,解析的顺序很重要,为了使自定义的规则生效,可以把规则写入较前的规则文件中,例如20-names.rules

二、SD卡自动挂载

在上述的规则文件11-add-usb.rules中,加入如下内容,就是如何挂着的方法,有严格的规则,详细 百度/必应/谷歌/ 一下“udev规则”,这里不叙述。

ACTION=="add",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/etc/mount-sd.sh %k", LABEL="farsight"

这个意思是如果发现sd卡插入,那么运行/etc/mount-sd.sh这个脚本!这个脚本后面还带一个参数 %K,这个%k就是linux内核发现的新的设备名字。

三、U盘自动挂载

接着, 还是11-add-usb.rules, 继续在下一行,或者隔一行,加入如下内容:

ACTION=="add",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/mount-usb.sh %k",LABEL="farsight"

这个意思是如果发现USB卡插入,那么运行/etc/mount-usb.sh这个脚本!这个脚本后面还带一个参数 %K,这个%k就是linux内核发现的新的设备名字。

最后,整个/etc/udev/rules/11-add-usb.rules:

ACTION=="add",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/etc/mount-sd.sh %k", LABEL="farsight"

ACTION=="add",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/mount-usb.sh %k",LABEL="farsight"
A

四、卸载SD卡

在上述的规则文件11-add-remove.rules(这个是移除u盘和sd卡的规则,上面是加载的规则,不一样)中,加入如下内容:

ACTION=="remove",GOTO="farsight", SUBSYSTEM=="block",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/etc/umount-sd.sh", LABEL="farsight"

五、卸载U盘

接着上一步,在同一个文件里面,隔行,继续加入如下内容:

ACTION=="remove",GOTO="farsight",SUBSYSTEM=="block",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/umount-usb.sh",LABEL="farsight"

最后,整个/etc/udev/rules/11-add-remove.rules文件如下:

CTION=="remove",GOTO="farsight", SUBSYSTEM=="block",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/etc/umount-sd.sh", LABEL="farsight"

ACTION=="remove",GOTO="farsight",SUBSYSTEM=="block",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/umount-usb.sh",LABEL="farsight"

六、创建挂载的目录

mkdir /mnt/sd -p

mkdir /mnt/usb -p

上面两个目录的路径和命名,要根据你自己的需要求来创建。我这里是随便写的。

七、添加脚本

---->创建脚本 /etc/mount-sd.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于挂载sd卡的脚本,创建后,填入如下内容并保存:

#!/bin/sh
/bin/mount -t vfat /dev/$1 /mnt/sd
sync

保存后,记得添加可执行权限: chmod +x /etc/mount-sd.sh

----> 创建脚本 /etc/umount-sd.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于umount sd卡的脚本,创建后,填入如下内容并保存:

#!/bin/sh
sync
umount /mnt/sd

保存后,记得添加可执行权限: chmod +x /etc/umount-sd.sh

----> 创建脚本 /etc/mount-usb.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于挂载usb的脚本,创建后,填入如下内容并保存:

#!/bin/sh
mount  -t vfat /dev/$1 /mnt/usb
sync

为此文件添加可执行权限,切记。
chmod +x /etc/mount-usb.sh

----> 创建脚本 /etc/umount-usb.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于umount usb的脚本,创建后,填入如下内容并保存:

#!/bin/sh
sync
umount /mnt/usb

为此文件添加可执行权限,切记。
chmod +x /etc/umount-usb.sh

八、完成,重启设备/电脑,插入usb或者sd卡,你会发现,usb和sd卡对应的,自动挂载在/mnt/usb 和 /mnt/sd中了!

猜你喜欢

转载自blog.csdn.net/mynameislinduan/article/details/84818154