udev 规则:IMPORT{cmdline}="nodmraid" - 这是做什么的?

udev 规则:IMPORT{cmdline}="nodmraid" - 这是做什么的?

从手册上看不太清楚:

IMPORT{cmdline}="nodmraid"实际上吗?

它将“nodmraid”命令行参数引入名为 nodmraid 的环境变量中,还是只是将环境变量“nodmraid”设置为“1”或“”,还是只返回“1”(但没有赋值)在这种情况下)?

谢谢

答案1

IMPORT{cmdline}="nodmraid"解析内核命令行并将nodmraid设备的属性设置为(1如果该属性nodmraid出现在引导命令行上并且没有参数)。如果它有一个参数(这对于 来说实际上没有意义nodmraid,但您可以给它一个),它会将属性值设置为该参数。

检查具体IMPORT{cmdline}工作原理的简单规则如下所示:

IMPORT{cmdline}="ro"
IMPORT{cmdline}="modprobe.blacklist"
IMPORT{cmdline}="nodmraid"

(只需在启动命令行上选择一些随机选项)并导致udevadm info

$ udevadm info /dev/sda --query property --property nodmraid,ro,modprobe.blacklist
ro=1
modprobe.blacklist=nouveau

ro没有参数,因此其值设置为1modprobe.blacklist有参数 ( nouveau),因此其值设置为nouveau,但未nodmraid设置,因为我的启动参数中没有它。

如果你实际上nodmraid在内核命令行上,你实际上可以看到它为所有设备设置,即使1没有上面的“测试”规则:

$ udevadm info /dev/vda1 --query property --property nodmraid
nodmraid=1

相关内容