udev 不在启动时运行规则?

udev 不在启动时运行规则?

我有一个非常简单的 udev 规则/etc/udev/rules.d/sdcard.rules

KERNEL=="mmcblk1", SUBSYSTEM=="block", SYMLINK+="sdCARD"

问题是符号链接不是在启动时自动为我创建的。我有许多其他规则,并且所有规则在启动时都工作得很好(我的符号链接已创建)。

但是,如果我运行此命令,则会创建符号链接:

udevadm test /block/mmcblk1

这里可能发生了什么?为什么它不在启动时创建?该设备还无法使用吗?我怎样才能发现这一点?


更新一


udevadm 的输出:

 looking at device '/block/mmcblk1':
    KERNEL=="mmcblk1"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{ro}=="0"
    ATTR{size}=="3862528"
    ATTR{stat}=="       9        0       74        0        1        0        8        0        0        0        0"
    ATTR{range}=="8"
    ATTR{discard_alignment}=="0"
    ATTR{force_ro}=="0"
    ATTR{ext_range}=="8"
    ATTR{alignment_offset}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{removable}=="0"
    ATTR{capability}=="10"

答案1

将规则文件重命名为:/etc/udev/rules.d/99-sdcard.rules,可能需要在其之前运行一些规则。

答案2

检查一下

  1. 引导环境已启用 udev
  2. 新创建的 udev 规则包含在 Linux 引导环境中。

例如,Arch Linux 的 (#2) 需要$ mkinitpio -P更新引导 initramfs 映像。

相关内容