linux 7.x udev生成规则

linux 7.x udev生成规则

1. 生成规则文件

 # touch /etc/udev/rules.d/99-oracle-asmdevices.rules
 或者
 # touch /usr/lib/udev/rules.d/99-oracle-asmdevices.rules
 


2. 生成规则
没有对sdb进行分区,执行如下shell脚本,

for i in b ;
do
 echo "KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`", SYMLINK+="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660""      
done
 


对sdb 进行了分区,执行如下shell脚本,
 

for i in b1 b2
do
 echo "KERNEL=="sd$i", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd${i:0:1}`", SYMLINK+="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660""      
done;
 


注意未分区用 $name
分区用       $parent


3. 将结果复制到 99-oracle-asmdevices.rules 

将第二步的输出粘贴入 99-oracle-asmdevices.rules 这个文件
 

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
 

手动加载分区

# /sbin/partprobe /dev/sdb


备注:
获取RESULT
在 Linux 7下,可以使用如下命令:

# /usr/lib/udev/scsi_id -g -u /dev/sdb


在 Linux 6下,可以使用如下命令:

# /sbin/scsi_id -g -u /dev/sdb


在 Linux 5下,可以使用如下命令:

# /sbin/scsi_id -g -u -s /block/sdb/sdb

4. 用udevadm进行测试,注意udevadm命令不接受/dev/sdc这样的挂载设备名,必须是使用/sys/block/sdb这样的原始设备名。
 

# udevadm test /sys/block/sdb
# udevadm info --query=all --path=/sys/block/sdb
# udevadm info --query=all --name=asm-diskb
 

5. 启动udev

 # /usr/sbin/udevadm control --reload-rules
 # systemctl status systemd-udevd.service
 # systemctl enable systemd-udevd.service


6. 检查设备是否正确绑定
 

# ls -l /dev/asm* /dev/sdb
lrwxrwxrwx 1 root root         3 Nov 29 18:17 /dev/asm-diskb -> sdb
brw-rw---- 1 grid asmadmin 8, 16 Nov 29 18:17 /dev/sdb

原文地址:https://www.cnblogs.com/yaoyangding/p/14879475.html