如何为特定类型的硬件保留驱动器号/名称

如何为特定类型的硬件保留驱动器号/名称

我对这个话题有点挣扎。

我有一个带有一个 SSD 驱动器的服务器盒。/dev/sda

此外,它还有一个偶尔被卡占用的 CFast 插槽。该卡被识别为硬盘驱动器,并且默认情况下具有/dev/sdb分配为驱动器号。

为了完成设置,需要使用 USB 记忆棒。根据 CFast 卡是否存在,该棒会被分配给/dev/sdb 或 /dev/sdc

它必须有 /dev/sdc 才能有一些正常工作的脚本。 USB 记忆棒可能有所不同。

那么如何为硬盘保留 sdb (CFast) 或将 USB 记忆棒分配给 /dev/sdc 及以上版本?

我确实相信 fstab 中的 UUID 不起作用,因为棒可能会不时发生变化。用 udev 编写的脚本吗?

干杯简

答案1

好吧,在一定程度上弄清楚了。

解决方案是udev。您可以致电

udevadm info --name=/dev/sdb1 --attribute-walk

类别使用的从端点到根的所有属性的列表。

然后我在 /etc/udev/rules.d/10-local.rules 中创建了一条本地规则

该规则包含

SUBSYSTEMS=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/bin/usb_load.sh"
SUBSYSTEMS=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/bin/usb_unload.sh"

它比较事件,如果 SUBSYSTEMS、ACTION 和 ENV{DEVTYPE} 匹配,则 RUN+= 执行我放在 bin 中的 2 个 shell 脚本。它以 root 身份运行,因此不会出现权限问题。

别忘了

udevadm control --reload

为了重读规则

该解决方案肯定可以改进,因为规则具有更多功能,但目前对我来说这是一个很好的解决方案。我会及时调整。

相关内容