![udev 规则使某些端口始终与某些设备相对应](https://linux22.com/image/1399135/udev%20%E8%A7%84%E5%88%99%E4%BD%BF%E6%9F%90%E4%BA%9B%E7%AB%AF%E5%8F%A3%E5%A7%8B%E7%BB%88%E4%B8%8E%E6%9F%90%E4%BA%9B%E8%AE%BE%E5%A4%87%E7%9B%B8%E5%AF%B9%E5%BA%94.png)
基本上,我的问题是,我所在的服务器不断切换硬盘。我想要实现的是将设备绑定到硬件上的物理端口。
例如/dev/sda
,端口 0/dev/sdb
就是端口 0 等等。
我一直在阅读有关 udev 规则的内容,它总是回到使用串行等。但是由于我的硬件不断变化,我无法使用它。我需要将端口分配给设备文件。
这种事可能吗?
答案1
我已经对外部硬盘执行了此操作。我使用 获取信息lsscsi
,它将打印类似以下内容:
[0:0:0:0] disk <descriptor> /dev/sda
[1:0:0:0] disk <descriptor> /dev/sdb
[2:0:0:0] cd/dvd <descriptor> /dev/sr0
其中 0、1、2 对应于端口 ID。然后,类似于以下规则的内容应该可以满足您的要求:
SUBSYSTEM=="block", KERNEL=="sd*1", KERNELS=="1:0:0:0", SYMLINK+="<label_1>"
(请注意,我还没有检查这是否适用于内部驱动器 - 我的外部驱动器需要“usb”而不是“block”作为子系统类型)