有时候热插拔磁盘会导致磁盘盘符产生变化,这种情况下重新启动系统后磁盘的盘符会自动按照顺序更新为正常盘符,其实可以使用udev工具来为磁盘盘符添加一个原来盘符地址的软连接。
udev是linux上的一个设备管理器,以下百度百科对他的解释:
linux上存放udev规则的目录 有两个,一个是 /usr/lib/udev/rules.d/ 目录,这个目录下面是存放的是系统自动生成的一些规则,一般不要去改这里面的规则:
ls /usr/lib/udev/rules.d/
另外一个是 /etc/udev/rules.d/ 目录,在这个目录下面可以咱们可以自己写一些规则来达到自己的目的:
ls /etc/udev/rules.d/
1、首先查看磁盘总线地址,下面两种方法都可以查看:
lsscsi udevadm info -q path -n /dev/sdb
2、添加自定义udev配置文件:
cd /etc/udev/rules.d/
cat 80-mydisk.rules
ACTION=="add|change" , KERNELS=="2:0:1:0" , DRIVERS=="sd" , SYMLINK="sdb" #sdb是要添加的盘符软连接名称,可以自己定义 , RUN+="/usr/bin/touch /root/test/sdb" #这一行可以不要,是我测试规则是否生效用的
3、让规则生效:
udevadm info -a -p $(udevadm info -q path -n /dev/sdb) ##这条命令是用来查看设备的信息的,可以不执行 udevadm test --action="add" $(udevadm info -q path -n /dev/sdb) ##这是测试规则是否生效的,可以不执行 udevadm control --reload-rules udevadm trigger
4、测试规则,这里我们采取热插拔磁盘的方式来让规则生效:
echo "scsi remove-single-device 2 0 1 0" > /proc/scsi/scsi echo "scsi add-single-device 2 0 1 0" > /proc/scsi/scsi
5、热插拔磁盘后,查看dev目录下面已经为这个磁盘自动生成了一个名称为sdb的软连接:
ll /dev/sdb