联系:手机/微信(+86 17813235971) QQ(107644445)
标题:linux 7(redhat,oracle linux,centos)中使用udev
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
慢慢的linux 7的使用人越来越多了,但是linux 7相对于5和6的版本,变动确实比较大,本文主要描写在linux 7中如何实现udev,实现设备持久化,权限和所属组的修改
linux版本
Oracle Linux Server release 7.1 [root@www.xifenfei.com ~]# uname -a Linux www.xifenfei.com 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 04:05:24 PST 2015 x86_64 x86_64 x86_64 GNU/Linux
VMware Workstation中显示uuid需要在vmx文件中增加
disk.enableUUID = "TRUE"
查看磁盘分区
[root@www.xifenfei.com ~]# fdisk -l Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xf60fe217 Device Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000bce7c Device Boot Start End Blocks Id System /dev/sda1 2048 4204543 2101248 8e Linux LVM /dev/sda2 * 4204544 79702015 37748736 83 Linux Disk /dev/sdc: 32.2 GB, 32212254720 bytes, 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/ol-swap: 2147 MB, 2147483648 bytes, 4194304 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
查看磁盘uuid
[root@www.xifenfei.com ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb1 36000c29e91831cedbe69afe6cc08daf7 [root@www.xifenfei.com ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc 36000c292495e9d9de6f21640cc7b53b9
udev绑定
[root@www.xifenfei.com ~]# more /etc/udev/rules.d/99-my-asmdevices.rules KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c292495e9d9de6f21640cc7b53b9", RUN+="/bin/sh -c 'mknod /dev/xifenfei-sdc b $major $minor; chown oracle:dba /dev/xifenfei-sdc; chmod 0660 /dev/xifenfei-sdc'" KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29e91831cedbe69afe6cc08daf7", SYMLINK+="xifenfei-sdb1", OWNER="oracle", GROUP="dba", MODE="0660"
绑定结果
[root@www.xifenfei.com ~]# ls -l /dev/xifenfei-* lrwxrwxrwx. 1 root root 4 Aug 7 22:49 /dev/xifenfei-sdb1 -> sdb1 brw-rw----. 1 oracle dba 8, 32 Aug 7 22:36 /dev/xifenfei-sdc [root@www.xifenfei.com ~]# ls -l /dev/sdb1 brw-rw----. 1 oracle dba 8, 17 Aug 7 22:49 /dev/sdb1
udev只修改磁盘权限
[root@www.xifenfei.com ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): First sector (2099200-41943039, default 2099200): Using default value 2099200 Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +1G Partition 2 of type Linux and of size 1 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@www.xifenfei.com ~]# more /etc/udev/rules.d/99-my-asmdevices.rules KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29e91831cedbe69afe6cc08daf7", OWNER="oracle", GROUP="dba", MODE="0660" [root@www.xifenfei.com ~]# /sbin/udevadm trigger --type=devices --action=change [root@www.xifenfei.com ~]# ls -l /dev/sdb2 brw-rw----. 1 oracle dba 8, 18 Aug 7 23:14 /dev/sdb2
这里可以发现在linux 7中使用了两种方法绑定udev,一种是真实生成udev设备,另外一种是通过软连接实现.感谢lunar(Lunar的oracle实验室)在linux 7学习中的帮助
udevadm trigger 加载udev
如果多路径,可以类似这样配置
KERNEL==”sdg”, ENV{DEVTYPE}==”disk”, SUBSYSTEM==”block”RUN+=”/bin/sh -c ‘mknod /dev/xifenfei-sdh b $major $minor; chown grid:dba /dev/xifenfei-sdg; chmod 0660 /dev/xifenfei-sdg'”
KERNEL==”sdh”, ENV{DEVTYPE}==”disk”, SUBSYSTEM==”block”RUN+=”/bin/sh -c ‘mknod /dev/xifenfei-sdh b $major $minor; chown grid:dba /dev/xifenfei-sdh; chmod 0660 /dev/xifenfei-sdh'”