如何在 udev 规则中发送内核名称?

如何在 udev 规则中发送内核名称?

我想要做的是将每个 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",..
    

相关内容