我有一个 Ubuntu 8.04 LTS(服务器版),我需要编写一个 udev 规则让它在插入 USB 拇指驱动器时起作用。但是,根据驱动器的文件系统,我需要不同的操作。我知道我可以使用 ID_FS_TYPE 环境变量来检查驱动器上的文件系统。
按照此处找到的说明,我尝试使用一个虚拟的 udev 规则:
KERNEL!="sd[a-z][0-9]", GOTO="my_udev_rule_end"
ACTION=="add", RUN+="/usr/bin/touch /tmp/test_udev_%E{ID_FS_TYPE}"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/bin/touch /tmp/test_udev_it_works"
LABEL="my_udev_rule_end"
Run Code Online (Sandbox Code Playgroud)
但是,当我插入带有 vfat 文件系统(应该触发两个规则)的拇指驱动器时,我最终得到一个名为 的文件/tmp/test_udev_vfat,这意味着第一个规则已成功触发,并且ID_FS_TYPE 环境变量是“vfat”,但是我没有其他文件,这意味着虽然我知道 ID_FS_TYPE env 变量是“vfat”,但我似乎无法检查它是否匹配。
我试着用谷歌搜索这个东西,但几乎每个结果似乎都假设ENV{ID_FS_TYPE}=="vfat"有效。我还在 Ubuntu 10.04 LTS 服务器上测试了完全相同的 udev 规则,结果相同。
我可能遗漏了一些非常简单的东西,但我就是不明白。有没有人看到我的 udev 规则有什么问题会阻止它在 ENV{ID_FS_TYPE} 上匹配?
谢谢。
| 归档时间: |
|
| 查看次数: |
2294 次 |
| 最近记录: |