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 ~]#

文章作者: emporer
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Emporer-Linux
linux linux-服务
喜欢就支持一下吧