4、RedHat6 Udev设备管理

RedHat6  Udev设备管理

实验目的:

了解Udev概念

掌握Udev配置

 

实验步骤:

步骤一、Udev概念

dev代表设备,Udev代表用户自定义设备的别名

 

在linux系统中插入一个设备,/proc目录会反应这个设备的状态及详细信息,相当于windos中的进程。关机之后,/proc目录里的内容会被清空,系统启动之后硬件和系统程序的详细信息加载到内存中去,/proc目录内容不能改

/sys和/proc目录内容一样,/sys目录里的内容是可以修改的

[root@boy ~]# cd  /sys/block  查看到所有的设备

[root@boy block]# ls

loop0 loop2  loop4  loop6 ram0  ram10  ram12 ram14  ram2  ram4 ram6  ram8  sda

loop1 loop3  loop5  loop7 ram1  ram11  ram13 ram15  ram3  ram5 ram7  ram9  sr0

 

HAL:Hardware  Abstraction  Layes  硬件抽象层

相当于windows的设备管理器,windows设备管理器你只能看到很少的信息,你是看不到cpu型号,网卡型号的核心参数的,而HAL却都可以看到

[root@boy ~]#hal-device-manager   这个是红帽5的命令显示出HAL的图形化界面

 

当内核读到一个设备的加入,它将这个设备的信息传给/sys目录,Udev机制就会在它设置的策略中来进行Udev的匹配,然后把所有的结果传到HAL,最后让用户直接的使用。

 

步骤二、Udev配置

[root@boy ~]#udevmonitor 红帽5的udev管理命令

[root@boy ~]#udevadm   monitor 这是红帽6的Udev管理命令,你插入一个设备,会显示插入这个设备的所有信息,设备有什么改变,都会在这个命令下显示

 

Udev的主配置文件:

/etc/udev/udev.conf

这个主配置文件只有一句话,意思是只会记录报错的日志

[root@boy ~]#vim  /etc/udev/udev.conf

Udev_log=”err”

Udev级别:err、info、debug

Udev_root=“/tmp“  你插入U盘,U盘的设备路径就变成了/tmp/sdd1了

Udev_rules  规定着udev策略文件的存放路径,默认为/etc/udev/rule.d/

 

 

Udev策略文件的存放路径是:

/etc/udev/rule.d/*.rules

存放的策略文件名字必须以数字开头,以.rules结尾,而数字代表优先级,1最小,99最大高优先级会被系统线读到。

=号表示 是 ,==号表示 如果、有可能、可能是 ,  !=号表示  反选、不是它

BUS表示电脑上的总线,总线可以判断设备是否存在

SYSFS{serial}==“20043512321411d3472”表示硬件唯一标识码,硬件唯一标识码只能在linux中查看,windos是查看不到的,因为windos是避源的,硬件唯一标识码是不能改的

%n是变量,$tempnode也是变量

[root@boy ~]# cd /etc/udev/rules.d/

[root@boy rules.d]# ls

60-fprint-autosuspend.rules  60-raw.rules             90-alsa.rules              98-kexec.rules

60-openct.rules              70-persistent-cd.rules   90-hal.rules               99-fuse.rules

60-pcmcia.rules              70-persistent-net.rules  97-bluetooth-serial.rules

[root@boy rules.d]# vim  99-myusb.rules

BUS==“usb”ATTRS{SERIAL}==“1612120003653307”NAME=“myusb%n”

如果电脑中的总线判断出新加入的设备可能是硬盘,硬件唯一标识码是1612120003653307,那么就为这个设备起个别名叫myusb。

然后什么都不做,插入U盘  df一下。

[root@boy ~]#df 

/dev/sda2             50395844   3613892 44221952   8% /

tmpfs                   255464        76   255388   1% /dev/shm

/dev/sda1               198337     27124   160973  15% /boot

/dev/sr0               3080782   3080782         0 100% /media/RHEL_6.4 i386 Disc 1

/dev/myusb            10319364   154100   9641072    /media/disk

 

 

查看硬件唯一标示码:

Udevinfo  -a  -p  $udevinfo  -q path  -n  /dev/这是红帽5查看硬件唯一标识码的命令

[root@boy ~]#Udevadm  info   -q path  -n  /dev/sdd

[root@boy ~]#udevadm  info   -a -p  /block/sdd

红帽6查看硬件所有参数的命令(包括硬件唯一标识码)

 

NAME=“myusb%n”和SYSLINK+=“myusb%n”区别:

NAME=“myusb%n”就是把那个设备变成了myusb

SYSLINK+=“myusb%n”只是在那个设备上做个链接,链接名字为myusb,原先的设备名字还在

 

 

我们可以在做一件坏事情:

假设有个间谍到盗取的信息,你的信息非常重要,可以做什么了?

[root@boy ~]# cd /etc/udev/rules.d/

[root@boy rules.d]# vim 99-example.rules

BUS==“usb” ATTRS{SERIAL}!=“1612120003653307”RUN=“shutdown –r  now”

你插入的U盘一旦不是1612120003653307这个,那么就让服务器立刻关机

或者了你可以更狠一点

RUN=“dd   if=/dev/zero   of=/dev/sdb”

你插入的U盘一旦不是1612120003653307这个,那么U盘就被毁掉。当然你也可以做什么格式话之类的动作。

 

这个命令是在红帽5上专门做查看远程挂载过来的硬盘唯一标识码

[root@boy ~]# Scsi_id  -g  -x  -s  /block/sdX

红帽6专门查看远程挂载过来的硬盘唯一标识码

/lib/udev/scsi_id   --whatelisted  --replace-whitespace  --device=/dev/sda (--device $tempnode)

 

集群坏境中的Udev使用:

[root@boy ~]# cd /etc/udev/rules.d/

[root@boy rules.d]# vim  99-cluster.rules

KERNEL==“sd*”BUS==“scsi”PROGRAM==“/lib/udev/scsi_id   --whatelisted  --replace-whitespace  --device $tempnode” , RESULT==“1IET_00011001”SYMLINK+=“example%n”

 

你可能感兴趣的:(集群)