1. 程式人生 > >4、RedHat6 Udev裝置管理

4、RedHat6 Udev裝置管理

RedHat6  Udev裝置管理

實驗目的:

瞭解Udev概念

掌握Udev配置

實驗步驟:

步驟一、Udev概念

dev代表裝置,Udev代表使用者自定義裝置的別名

在linux系統中插入一個裝置,/proc目錄會反應這個裝置的狀態及詳細資訊,相當於windos中的程序。關機之後,/proc目錄裡的內容會被清空,系統啟動之後硬體和系統程式的詳細資訊載入到記憶體中去,/proc目錄內容不能改

/sys和/proc目錄內容一樣,/sys目錄裡的內容是可以修改的

[[email protected] ~]# cd  /sys/block  檢視到所有的裝置

[[email protected]

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卻都可以看到

[[email protected]

~]#hal-device-manager   這個是紅帽5的命令顯示出HAL的圖形化介面

當核心讀到一個裝置的加入,它將這個裝置的資訊傳給/sys目錄,Udev機制就會在它設定的策略中來進行Udev的匹配,然後把所有的結果傳到HAL,最後讓使用者直接的使用。

步驟二、Udev配置

[[email protected] ~]#udevmonitor 紅帽5的udev管理命令

[[email protected] ~]#udevadm   monitor 這是紅帽6的Udev管理命令,你插入一個裝置,會顯示插入這個裝置的所有資訊,裝置有什麼改變,都會在這個命令下顯示

Udev的主配置檔案:

/etc/udev/udev.conf

這個主配置檔案只有一句話,意思是隻會記錄報錯的日誌

[[email protected] ~]#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也是變數

[[email protected] ~]# cd /etc/udev/rules.d/

[[email protected] 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

[[email protected] rules.d]# vim  99-myusb.rules

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

如果電腦中的匯流排判斷出新加入的裝置可能是硬碟,硬體唯一標識碼是1612120003653307,那麼就為這個裝置起個別名叫myusb。

然後什麼都不做,插入U盤  df一下。

[[email protected] ~]#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/<device>這是紅帽5檢視硬體唯一標識碼的命令

[[email protected] ~]#Udevadm  info   -q path  -n  /dev/sdd

[[email protected] ~]#udevadm  info   -a -p  /block/sdd

紅帽6檢視硬體所有引數的命令(包括硬體唯一標識碼)

NAME=“myusb%n”和SYSLINK+=“myusb%n”區別:

NAME=“myusb%n”就是把那個裝置變成了myusb

SYSLINK+=“myusb%n”只是在那個裝置上做個連結,連結名字為myusb,原先的裝置名字還在

我們可以在做一件壞事情:

假設有個間諜到盜取的資訊,你的資訊非常重要,可以做什麼了?

[[email protected] ~]# cd /etc/udev/rules.d/

[[email protected] 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上專門做檢視遠端掛載過來的硬碟唯一標識碼

[[email protected] ~]# Scsi_id  -g  -x  -s  /block/sdX

紅帽6專門檢視遠端掛載過來的硬碟唯一標識碼

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

叢集壞境中的Udev使用:

[[email protected] ~]# cd /etc/udev/rules.d/

[[email protected] 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”