香蕉派W2(4)---硬盘支持热插拔

1、捕捉U盘事件

进入/etc/udev/rules.d目录下,创建一个usb自动挂载的规则文件10-usb.rules写入以下内容

vim 10-usb.rules
###########---USB---################
#----------------------------------#
KERNEL=="sd[a-z]*", SUBSYSTEM=="block", ACTION=="add", RUN+="/etc/udev/rules.d/usb_udev.sh usb %k"
KERNEL=="sd[a-z]*", SUBSYSTEM=="block", ACTION=="remove", RUN+="/etc/udev/rules.d/usb_udev.sh usb %k", OPTIONS="last_rule"
##########---CF card---#############
#----------------------------------#
KERNEL=="hd[a-z]*", SUBSYSTEM=="block", ACTION=="add", RUN+="/etc/udev/rules.d/usb_udev.sh cf %k"
KERNEL=="hd[a-z]*", SUBSYSTEM=="block", ACTION=="remove", RUN+="/etc/udev/rules.d/usb_udev.sh cf %k", OPTIONS="last_rule"
###########---SSD---################
#----------------------------------#
KERNEL=="sata[a-z]*", SUBSYSTEM=="block", ACTION=="add", RUN+="/etc/udev/rules.d/usb_udev.sh ssd %k"
KERNEL=="sata[a-z]*", SUBSYSTEM=="block", ACTION=="remove", RUN+="/etc/udev/rules.d/usb_udev.sh ssd %k", OPTIONS="last_rule"

挂载SD卡,也可以一起写到上面文件中,但是在系统在内存卡中运行时,一直会把EMMC挂上去

#########-----SD------##############
#----------------------------------#
KERNEL=="mmcblk[0-9]*", SUBSYSTEM=="block", ACTION=="add", RUN+="/etc/udev/rules.d/usb_udev.sh sd %k" 
KERNEL=="mmcblk[0-9]*", SUBSYSTEM=="block", ACTION=="remove", RUN+="/etc/udev/rules.d/usb_udev.sh sd %k", OPTIONS="last_rule"

2、编写脚本执行文件

规则文件写好后,在/etc/udev/rules.d下编写脚本文件usb_udev.sh

vim usb_udev.sh
#!/bin/bash
MNT_PATH=/mnt/        #挂载移动设备的目录
DEV_PRE=$1              #参数1:挂载点的前缀
DEV_NAME=$2             #参数2:设备在/dev下的名字
if [ $ACTION == "add" ]; then
    /bin/mkdir -p $MNT_PATH$DEV_PRE-$DEV_NAME
    /bin/mount /dev/$DEV_NAME $MNT_PATH$DEV_PRE-$DEV_NAME   #这里可根据 which mount 来产看自己的mount在什么位置,这里一定要注意
    if [[ $? -ne 0 ]]; then
        /bin/rmdir $MNT_PATH$DEV_PRE-$DEV_NAME
    fi
if [ $ACTION == "remove" ]; then 
    if [[ -e  $MNT_PATH$DEV_PRE-$DEV_NAME ]] ; then 
        /bin/umount $MNT_PATH$DEV_PRE-$DEV_NAME
        /bin/rmdir  $MNT_PATH$DEV_PRE-$DEV_NAME
    fi
fi
exit 0

给予可执行权限

chmod +x usb_udev.sh

重启系统

reboot

3、调试

如果发现挂载没有成功,需要获取相应的信息

udevadm test -a add /sys/class/block/sataa1

sataa1 根据自己设备的实际情况填写

4、 参考博客

调试挂载问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值