![不要将 /dev/sd* 用于可移动设备](https://linux22.com/image/729272/%E4%B8%8D%E8%A6%81%E5%B0%86%20%2Fdev%2Fsd*%20%E7%94%A8%E4%BA%8E%E5%8F%AF%E7%A7%BB%E5%8A%A8%E8%AE%BE%E5%A4%87.png)
今天我差点用 抹掉我的系统,dd
因为我打算在内置硬盘(/dev/sdb*
)上写入,而不是在可移动 USB(/dev/sdc*
)上写入。我想制定一个 udev 规则,将任何块 USB 设置为完全不同的名称,例如/dev/remX*
其中X是设备号和*
分区号当然正常的/dev/sd*
不应该创建。
我试图添加一条新规则,但它会创建旧规则/dev/sd*
,所以也许我需要一种方法来“覆盖”旧规则?
最干净的处理方式是什么?
答案1
正如评论中所说,最好通过 id 使用设备。
但是您可以定义自己的 udev 规则,例如,您可以根据使用设备的驱动程序设置前缀:
到目前为止介绍的四个主要匹配键(KERNEL/SUBSYSTEM/DRIVER/ATTR)仅与对应于所讨论设备的值匹配,而不与来自父设备的值匹配。udev 提供了将在树中向上搜索的匹配键的变体:
KERNELS - match against the kernel name for the device, or the kernel name for any of the parent devices
SUBSYSTEMS - match against the subsystem of the device, or the subsystem of any of the parent devices
DRIVERS - match against the name of the driver backing the device, or the name of the driver backing any of the parent devices
ATTRS - match a sysfs attribute of the device, or a sysfs attribute of any of the parent devices
所以你可以做下一步
使用此命令:udevadm info -a -p /sys/block/sdX
你可以看到可移动磁盘使用的驱动程序
并创建如下规则:
DRIVERS=="sata_nv", NAME="my_hard_disk"
很好的描述那里