参考: [(182 条消息 ) Linux 基础 ] -- udev 和 rules 使用规则 BestW2Y 的博客 -CSDN 博客 linux rules
(182 条消息 ) Ubuntu udev rules_zhang6318 的博客 -CSDN 博客
规则文件是 udev 里最重要的部分,默认是存放在 /etc/udev/rule.d/ 下。所有的规则文件必须以 ".rules"
为后缀名。
下面是一个简单的规则:
cpp
KERNEL=="sda", NAME="my_root_disk", MODE="0660"
KERNEL 是匹配键, NAME 和 MODE 是赋值键。这条规则的意思是:如果有一个设备的内核名称为
sda ,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为 my_root_disk 的设备文件,并把设备文
件的权限设为 0660 。
udevadm info --attribute-walk --name=/dev/ 设备名字
cpp
SUBSYSTEM=="usb", ATTRS{idVendor}=="2a70", ATTRS{idProduct}=="4ee7", MODE="0666"
udev 规则的匹配键
cpp
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盘
在/etc/udev/rule.d/ 下创建 .rules文件
cpp
ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir
/media/%k" ,RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode
/media/%k"
手动挂载u盘
cpp
sudo mount /dev/sda(u盘) /mnt/----------------手动挂载u盘
sudo umount /mnt/--------------------------退出挂载u盘