我想要做的是将每个 USB 驱动器自动挂载到静态路径。但是当我将内核名称与 %k 一起发送到 shell 脚本时,它返回的是 1-3、2-4 ... 而不是 sdc1、sdd1... s[bz][1-9]
这是我的 udev 规则 10-local.rules
SUBSYSTEM=="usb",ACTION=="add",SYMLINK+="usb_%k",RUN+="/home/etc/udev-mount.sh %k "
ACTION=="remove",SUBSYSTEM=="usb",RUN+="/home/etc/udev-umount.sh %k"
~
~
和 shell 脚本
#!/bin/sh
DEVICE=$1
mkdir -p /app/$DEVICE
mount /dev/$DEVICE /app/$DEVICE
我正在使用 UBUNTU 16.04
请帮我..
答案1
实际上,您正在使用正确的内核名称
%k
并将其传递给脚本。但是,您的规则条件是盲目的
SUBSYSTEM=="usb"
,它会过滤掉您想要的设备节点(分区设备)之外的其他设备节点。查看 UDEV 手册页,了解差异
SUBSYSTEM=..
与SUBSYSTEMS=..
使用udevadm info -a ..
以获取有关条件的更多信息。你可以使用这个简单的
..,KERNEL="sd[a-z][0-9]*",SUBSYSTEMS=="usb",..