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

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口的简陋信息

做UDEV规则文件实现U盘自动挂载_第1张图片

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

做UDEV规则文件实现U盘自动挂载_第2张图片

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

做UDEV规则文件实现U盘自动挂载_第3张图片

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盘

做UDEV规则文件实现U盘自动挂载_第4张图片

 拔下U盘

做UDEV规则文件实现U盘自动挂载_第5张图片

这里用到tree指令

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

你可能感兴趣的:(Linux,香橙派,树莓派,服务器,servlet,linux)