温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

UDEV规则的匹配键及RAW是什么

发布时间:2021-11-05 10:39:29 来源:亿速云 阅读:248 作者:柒染 栏目:建站服务器

UDEV规则的匹配键及RAW是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

udevadm命令可以看到具体信息udevadm info --attribute-walk --name=/dev/sda

UDEV涉及的一些常见目录信息
ll /sys/class/block/
ll /dev/raw
ll /dev/mapper
ll /dev/block
ll /dev/disk/by-path
ll /dev/disk/by-id
ll /dev/disk/by-uuid


UDEV规则的匹配字段属性
ACTION        匹配事件的动作名,例如:add( 添加设备 )、remove( 删除设备 )。
DEVPATH       匹配事件的设备相对路径。例如:sda的devpath是/dev/sda,sda2的devpath是/dev/sda2。
KERNEL        匹配事件的设备名字,比如sdb,比如sd*表示任意SCSI磁盘设备
NAME          匹配网络接口或者设备节点的名字。NAME只有在前面的规则赋值之后才可以使用。
SYMLINK       匹配设备节点符号链的名字。SYMLINK 只有在前面的规则赋值之后才可以使用。可以有多个 symlinks,只需要匹配一个。
SUBSYSTEM     匹配设备子系统
DRIVER        匹配设备在devpath里的设备驱动名称,例如:ide-cdrom。
BUS           设备在devpath 里的总线名称,例如:usb。
ID            设备在 devpath 里的识别号
ENV{key}      环境变量。ENV{MAJOR}=="8"和ENV{MINOR}=="1"表示sda1
PROGRAM       执行一个程序。如果程序成功返回, key 为 true。设备的属性被放在被执行进程的环境变量中,该程序的输出为 stdout, 可以从 RESULT 这个 key 读取。
RESULT        匹配最近一次 PROGRAM 调用的返回字符串。它应该在 PROGRAM 之后使用。
OWNER         匹配设备文件的属组
GROUP         匹配设备文件所在的组。
MODE          匹配设备文件的权限,采用8进制
MAJOR         表示磁盘号
MINOR         表示磁盘下面的分区号


UDEV规则匹配字段属性和可调用的替换操作符 
$kernel, %k:设备的内核设备名称,例如:sda、cdrom。
$number, %n:设备的内核号码,例如:sda3 的内核号码是 3。
$devpath, %p:设备的 devpath路径。
$id, %b:设备在 devpath里的 ID 号。
$sysfs{file}, %s{file}:设备的 sysfs里 file 的内容。其实就是设备的属性值。
$env{key}, %E{key}:一个环境变量的值。
$major, %M:设备的 major 号。
$minor %m:设备的 minor 号。
$result, %c:PROGRAM 返回的结果。
$parent, %P:父设备的设备文件名。
$root, %r:udev_root的值,默认是/dev/。
$tempnode, %N:临时设备名。
%%:符号 % 本身。
$$:符号 $ 本身。




ENV{key}的特别说明
linux内核中表示不同的设备是通过major 和minor number实现的,通过major和minor Number来加载相应的驱动程序。
sda和sdb的major number都是8,sda的minor number是0开始, sdb的minor number 是16开始。
ENV{major}     major表示不同的设备类型
ENV{minor}     minor表示同一个设备的的不同分区
ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"




raw命令(以前RHEL4版本用的多,现在RHEL6用的少,不过RHEL6也是可以使用这样的方式)
可以直接通过raw命令绑定裸设备,不过重启后就丢失了,需要写在/etc/sysconfig/rawdevices文件中如/dev/raw/raw1 /dev/sdb1
[root@localhost ~]# ll /dev/raw
总用量 0
crw-rw----. 1 root disk 162, 0 6月  23 16:58 rawctl

[root@localhost ~]# raw
Usage:
  raw /dev/raw/rawN  
  raw /dev/raw/rawN /dev/
  raw -q /dev/raw/rawN
  raw -qa

[root@localhost ~]# raw /dev/raw/raw1 /dev/sdb1
/dev/raw/raw1:  bound to major 8, minor 17

[root@localhost ~]# ll /dev/|grep sdb
brw-rw----.  1 root disk      8,  16 6月  23 16:59 sdb
brw-rw----.  1 root disk      8,  17 6月  23 16:59 sdb1

[root@localhost ~]# raw -qa
/dev/raw/raw1:  bound to major 8, minor 17

[root@localhost ~]# raw -q /dev/raw/raw1
/dev/raw/raw1:  bound to major 8, minor 17

[root@localhost ~]# ll /dev/raw
总用量 0
crw-rw----. 1 root disk 162, 1 6月  23 17:25 raw1
crw-rw----. 1 root disk 162, 0 6月  23 16:58 rawctl

[root@localhost ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m

关于UDEV规则的匹配键及RAW是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI