做UDEV规则文件实现U盘自动挂载

19 篇文章 6 订阅
7 篇文章 1 订阅

udev

Ubuntu udev rules

规则文件是udev里最重要的部分,默认是存放在/etc/udev/rule.d路劲下。所有的规则文件必须以

.rules”为后缀名下面是一个简单的规则:

KERNEL=="sda", NAME="my_root_disk", MODE=“0666” 

 KERNEL是匹配键,NAME和MODE是赋值键。这条规则的意思是,如果一个设备的内核名称为sda,则条件生效,执行后面的赋值:在/dev下产生一个名为my_root_disk的设备文件,并把设备文件的权限设为0660;

udevadm info --attribute-walk --name=/dev/设备文件

udevadm info --attribute-walk --name=/dev/bus/usb/001/005

udev 规则的匹配键
ACTION:事件(uevent)的行为,例如:add(添加设备)、remove(删除设备);

KERNEL:内核设备名称,例如:sda,cdrom; DEVPATH:设备的 devpath 路径;

SUBSYSTEM:设备的子系统名称,例如:sda 的系统为 block;


BUS:设备在 devpath 里的总线名称,例如:usb;

DRIVER:设备在 devpath 的设备驱动名称,例如:ide-cdrom;

ID:设备在 devpath 里的识别号;

SYSFS{filename}:设备的 devpath 路径下,设备的属性文件 "filename" 里的内容; 

ENV{key}:环境变量。在一条规则中,可以设定最多五条环境变量的匹配键;

PROGRAM:调用外部命令;

RESULT:外部命令 PROGRAM 的返回结果。

插入U盘后,可以使用dmesg指令来查看usb口的简陋信息

 使用udevadm info --attribute-walk --name=/dev/设备文件,可以看设备的详细信息

当不使用udev来自动挂载U盘时,使用指令mount和umount来实现挂载和解除挂载 

upan.rules

ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir /media/%k" ,RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode /media/%k"

ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir /media/%k" ,

RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode /media/%k"

规则文件意思:事件是添加设备,子系统名称是usb,子系统名称是block,执行指令mkdir创建文件夹,执行指令mount挂载U盘到路径下

测试如下

插上U盘

 拔下U盘

这里用到tree指令

使用指令sudo apt-get install tree        安装tree的工具 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值