udev规则
udev 规则
linux中设备名由udev规则定义 默认使用标准设备名,可以自定义。
udevadm monitor #监控LINUX添加和移除设备的事件。
硬件设备绝对路径为/sys/啥啥啥的
用户自定义规则读取 /etc/udev/rules.d/中的规则。
系统自带的规则读取/usr/lib/udev/rules.d/ 中的规则:
命名规则。99-myusb.rules
99:序号 数字越大,越晚被读到。。。。因为后面读到会覆盖前面读到的。。默认也会在前面有udev规则。也会读取到。
myusb: 设备名字
rules :默认结尾
查看wwid:
[root@web2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
360014051385dfc77e7b4083a5a0f891d
[root@web2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36001405962f95f1d15c4467b486a6303
/usr/lib/udev/scsi_id -g -u /dev/sdc
默认配置文件:/etc/udev/udev.conf
查看设备的详细信息,这条命令查询的结果为内核识别的信息。 找出可标示该设备的唯一性即可。写udev 规则。
oracle RAC 集群就有写这个udev 规则。。
[root@web1 rules.d]# udevadm info -a -p /block/sdb
更改udev规则,需触发规则。
udevadm trigger --type=devices --action=change
udevadm control --reload
#获取wwid
[root@web1 rules.d]# /usr/lib/udev/scsi_id -g -u /dev/sdb
360014051385dfc77e7b4083a5a0f891d
#更改udev策略,总线为scsi,内核识别为sd开头的。执行命令为后面相同,则赋值设备名
[root@web1 rules.d]# cat 99-storage.rules
SUBSYSTEMS=="scsi",KERNEL=="sd*",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --device=/dev/$name",RESULT=="360014051385dfc77e7b4083a5a0f891d",SYMLINK+="emporerdisk1%n"
[root@web1 rules.d]#
#重新加载
[root@web1 ~]# udevadm trigger --type=devices --action=change
[root@web1 ~]# udevadm control --reload
#验证udev规则是否生效
[root@web1 ~]# ll /dev/emporerdisk1
lrwxrwxrwx. 1 root root 3 7月 20 17:29 /dev/emporerdisk1 -> sdb
[root@web1 ~]# lsblk -l
[root@web1 ~]# ls /dev/emporerdisk1
/dev/emporerdisk1
[root@web1 ~]# ll /dev/emporerdisk1
lrwxrwxrwx. 1 root root 3 7月 20 17:36 /dev/emporerdisk1 -> sdb
[root@web1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (8192-4194303,默认为 8192):
将使用默认值 8192
Last 扇区, +扇区 or +size{K,M,G} (8192-4194303,默认为 4194303):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 4194304 字节
磁盘标签类型:dos
磁盘标识符:0xbaac9135
设备 Boot Start End Blocks Id System
/dev/sdb1 8192 2105343 1048576 83 Linux
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (2105344-4194303,默认为 2105344):
将使用默认值 2105344
Last 扇区, +扇区 or +size{K,M,G} (2105344-4194303,默认为 4194303):
将使用默认值 4194303
分区 2 已设置为 Linux 类型,大小设为 1020 MiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 4194304 字节
磁盘标签类型:dos
磁盘标识符:0xbaac9135
设备 Boot Start End Blocks Id System
/dev/sdb1 8192 2105343 1048576 83 Linux
/dev/sdb2 2105344 4194303 1044480 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@web1 ~]# partprobe
[root@web1 ~]#
[root@web1 ~]# ll /dev/emporerdisk1*
lrwxrwxrwx. 1 root root 3 7月 20 17:37 /dev/emporerdisk1 -> sdb
lrwxrwxrwx. 1 root root 4 7月 20 17:37 /dev/emporerdisk11 -> sdb1
lrwxrwxrwx. 1 root root 4 7月 20 17:37 /dev/emporerdisk12 -> sdb2
[root@web1 ~]#