我有一个磁盘 /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 在你的文件中,否则它将不起作用