不要将 /dev/sd* 用于可移动设备

不要将 /dev/sd* 用于可移动设备

今天我差点用 抹掉我的系统,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"

很好的描述那里

相关内容