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手册页