2.2. udev 设备命名规则
用户空间设备管理器(udev
)子系统允许您为设备分配持久名称定义规则。这些规则存储在 /etc/udev/rules.d/
目录中带有 .rules
扩展名的文件中。这些规则的目的是确保存储设备的识别一致且可预测,即使系统重启和配置发生了改变也是如此。
udev
规则使用键-值对以人类可读的格式编写。当设备被检测或初始化时,udev
会根据它们的定义顺序来顺序评估这些规则。第一个匹配规则被应用到设备,确定其名称以及其如何在系统中被识别。
对于存储设备,udev
规则在 /dev/disk/
目录中创建符号链接。这些符号链接为存储设备提供用户友好的别名,从而使引用和管理这些设备更为方便。
您可以创建自定义 udev
规则,以指定如何根据序列号、WWN (World Wide Name)标识符或其他特定于设备的特征等各种属性来命名设备。通过定义特定的命名规则,您可以精确控制设备如何在系统中被识别。
udev
规则有两个主要位置:
-
/lib/udev/rules.d/
目录包含udev
软件包附带的默认规则。 -
/etc/udev/rules.d
目录用于自定义udev
规则。
虽然 udev
规则非常灵活,但了解 udev
限制很重要:
-
可访问性计时:在
udev
查询时可能无法访问一些存储设备。 -
基于事件的处理:内核可以随时发送
udev
事件,如果设备无法访问,可能会触发规则处理和链接删除。 - 处理延迟:事件生成和处理之间可能会有延迟,特别是有多个设备时,从而导致内核检测和链路可用性之间的滞后。
-
设备可访问性:
udev
规则调用的外部程序(如blkid
)可能会短暂打开该设备,使其他任务暂时无法访问它。 -
链接更新:由
/dev/disk/
中的udev
管理的设备名称可能会在主版本间有所变化,需要链接更新。
其它资源
-
系统上的
udev
手册页