ID_SERIAL 未应用 Udev 规则

ID_SERIAL 未应用 Udev 规则

我有一个磁盘 /dev/sdr。以下是使用以下命令获取的 sdr 的 UDEV 信息:

sudo udevadm info -q all -n  /dev/sdr  

Result:
    E: ID_SCSI=1
    E: ID_SCSI_SERIAL=6000c292c50a3ebf1f64b0027ecd58b6
    E: ID_SERIAL=36000c292c50a3ebf1f64b0027ecd58b6

我创建了一条规则(20-clonedisks.rules),如下所示

    ENV{ID_SERIAL}=="36000c292c50a3ebf1f64b0027ecd58b6", OWNER:="root", GROUP:="disk"        

    ENV{ID_SERIAL}=="36000c292c50a3ebf1f64b0027ecd58b6", OWNER:="root", GROUP:="disk"

当我执行以下命令时

    sudo udevadm control --reload-rules && udevadm trigger

我希望将上述磁盘/dev/sdr设置为用户 root 和组作为磁盘,但情况并未按预期发生

答案1

这些属性在 中生成/导入60-persistent-storage.rules,因此仅适用于发生的规则该文件。您应该使用类似70-clonedisks.rules或 的命令80-clonedisks.rules来确保排序正确。

(您的自定义规则实际上是多余的,因为所有 SCSI 设备在 50-udev-default.rules 中都分配了“磁盘”组。)

答案2

如果实际功能按预期工作,我们可以按顺序执行,比如说 90-clonedisk.rules

让我们以这个用例为例,它不能是冗余的,假设我们在 60-storage.rules /dev/sdr 中有一个规则,设置为所有者网格和地面 asmlib

然后我需要 90-clonedisks.rules,它将用户设置为所有者,将组设置为磁盘,以将 /dev/sdr 设置为根和磁盘而不是网格 asmlib

答案3

您可以将其指向一个脚本文件RUN+="Enter File Path" 您可以使用类似的 bash 脚本来编写该脚本

#!/bin/bash
chown root sdr
chown disk sdr

确保使用chmod +x script.sh(用你的脚本替换 script.sh)并确保 #!/bin/bash 在你的文件中,否则它将不起作用

相关内容