复制
收藏
提问
简洁
USB反复插拔,导致生成sda1,sdb1等等这些设备节点,如何写udev脚本来兼容适配这些生成的节点
3周前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
udev脚本编写可以确保对USB设备反复插拔时生成的设备节点进行兼容适配。
设备节点的动态管理
编写udev脚本
- 规则文件位置:udev规则文件通常放在
/etc/udev/rules.d/
目录下。3 - 规则编写示例:编写规则以识别USB设备并为其创建节点,可以使用属性如
ATTRS{idVendor}
和ATTRS{idProduct}
来指定设备。2 - 规则动作:在udev规则中定义动作,如
KERNEL=="sd?1", SYMLINK+="usbdisk%n"
,创建符号链接以简化设备识别。2
脚本示例
# 匹配所有USB存储设备
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="*", ATTRS{idProduct}=="*", \
RUN+="/bin/echo 'USB device added: %k'"
# 创建符号链接
KERNEL=="sd?1", SYMLINK+="usbdisk%n"
- 符号链接作用:通过
SYMLINK
动作,udev可以为每个新设备创建一个易于识别的符号链接,如usbdisk1
,从而简化对设备节点的引用和访问。2
通过上述udev脚本编写,可以确保在USB设备反复插拔时,系统能够自动识别并为这些设备生成兼容的设备节点。
你觉得结果怎么样?