我对这个话题有点挣扎。
我有一个带有一个 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
为了重读规则
该解决方案肯定可以改进,因为规则具有更多功能,但目前对我来说这是一个很好的解决方案。我会及时调整。