linuxÖÐudev¿ØÖÆ´ÅÅÌÒýµ¼Ë³ÐòÅäÖÃ
2019/10/10/17:45:48 ÔĶÁ£º1598 À´Ô´£º¹È¸èSEOËã·¨ ±êÇ©£º
SEO½Ì³Ì
´ÅÅÌÒýµ¼¶ÔÓÚÎÒÃÇʹÓÃwindowsµÄÅóÓÑÀ´½²ÊǷdz£µÄ¼òµ¥ÁË,µ«ÔÚlinuxÖÐÓÐЩ¸´ÔÓÁË,ÏÂÎÄС±à¾ÍΪ¸÷λ½éÉÜudev¿ØÖÆ´ÅÅÌÒýµ¼Ë³ÐòÅäÖÃ.
vmware EXSi ÐéÄ⻯×éµÄÐÖµÜÔÚ¶Ôһ̨ÐéÄâ»úÖ÷ÐÂÔöÁËN¿é´ÅÅ̺ó,ÖØÆôºó·¢ÏÖÖ÷»úÒýµ¼ºó·ÖÇøµÄ˳Ðò·¢ÉúÁ˱仯,µ¼Ö¸÷¸ö¹ÒÔصãϹÒÔصÄÎļþºÍ֮ǰ²»Ò»ÖÂÁË,µ±Ê±¸ø³öµÄ½â¾ö·½·¨ÊÇÔÚ/etc/fstabÎļþÖÐʹÓÃuuid,ÒòΪUUID²»»á±ä»¯.
Ò»¡¢uuid Óë¹ÒÔصã
1¡¢Ê¹ÓÃblkidÃüÁî»ñÈ¡UUID,´úÂëÈçÏÂ:[root@361way~]#blkid
/dev/sda1:SEC_TYPE="msdos"UUID="F159-EA55"TYPE="vfat"PARTLABEL="EFISystemPartition"PARTUUID="ed7d2e13-8197-4226-8fdc-47d4aa64aebb"
/dev/sda2:LABEL="boot"UUID="f7755604-99f2-4d94-ab1a-47b14def7e26"TYPE="xfs"PARTUUID="627c028f-bf10-4705-b465-d5118d8ee67d"
/dev/sda3:UUID="Bs0vJv-cena-E9eO-2WcM-iJNQ-26Mr-fGG1pr"TYPE="LVM2_member"PARTUUID="18c50ff9-0e0d-40ac-8e2a-4f7f768347ed"
/dev/mapper/cl-root:UUID="b2f57437-ba99-4a2d-9c82-a41037aa0e38"TYPE="xfs"
/dev/mapper/cl-swap:UUID="2930b30d-3039-442d-a210-da1d7775652e"TYPE="swap"
/dev/mapper/cl-data:LABEL="data"UUID="cfc65b4e-0ca4-4b48-934e-5f668a4fb3b5"TYPE="xfs"
2¡¢²é¿´/devĿ¼»ñÈ¡UUID,´úÂëÈçÏÂ:[root@361way~]#ll/dev/disk/by-uuid/
×ÜÓÃÁ¿0
lrwxrwxrwx1rootroot1011ÔÂ2519:562930b30d-3039-442d-a210-da1d7775652e->../../dm-1
lrwxrwxrwx1rootroot1011ÔÂ2519:56b2f57437-ba99-4a2d-9c82-a41037aa0e38->../../dm-0
lrwxrwxrwx1rootroot1011ÔÂ2519:56cfc65b4e-0ca4-4b48-934e-5f668a4fb3b5->../../dm-2
lrwxrwxrwx1rootroot1011ÔÂ2519:56F159-EA55->../../sda1
lrwxrwxrwx1rootroot1011ÔÂ2519:56f7755604-99f2-4d94-ab1a-47b14def7e26->../../sda2
3¡¢ÐÞ¸Ä/etc/fstabÎļþ,ʹÓÃuuid,´úÂëÈçÏÂ:[root@361way~]#cat/etc/fstab
#
#/etc/fstab
#CreatedbyanacondaonMonSep816:38:292014
#
#Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk'
#Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo
#
/dev/mapper/cl-root/xfsdefaults11
UUID=f7755604-99f2-4d94-ab1a-47b14def7e26/bootxfsdefaults12//phpfensi.com
UUID=F159-EA55/boot/efivfatumask=0077,shortname=winnt00
/dev/mapper/cl-data/dataxfsdefaults,noatime,nobarrier12
/dev/mapper/cl-swapswapswapdefaults00
°´ÉÏÃæµÄ·½·¨Ð޸ĺó,ÖØÆôÖ÷»ú,·¢ÏÖËùÓеĹÒÔص㶼Õý³£ÁË.
¶þ¡¢Ê¹ÓÃudevµ÷Õû´ÅÅÌ˳Ðò
Ò»ÌìÊý¾Ý¿â²àµÄÐÖµÜÓÖÎÊÆðsdb¡¢sdc¡¢sde¶à¸ö´ÅÅÌÃûÔö¼Óºó»áÂÒµÄÎÊÌâ,ºóÀ´ÔÚ×Ô¼ºµÄÐéÄâ»úÉÏÓÖ³¢ÊÔʹÓÃudev½â¾ö¸ÃÎÊÌâ,²Î¿¼snipplrÍøÕ¾,´úÂëÈçÏÂ:(makesurebothdevicesareunmounted)
#cat/proc/partitions
#cd/dev
#rmsda,sdb
#mknod/dev/sdab#fillwithmajorandminordevicesobtainedfrom/proc/partitionsforsdb
#mknod/dev/sdbb80#verifythesemajor,minorvaluesforsdain/proc/partitions
#partprobe/dev/sda
#hdparm-z/dev/sda
#sfdisk-R/dev/sda
#blockdev--rereadpt/dev/sda
(repeatthelast4commandsforsdb)
Alternativelyandtomakeitpermanent:
createthefile/etc/udev/rules.d/10-local.ruleswiththefollowingcontent:
KERNEL=="sda",NAME="sdb"
KERNEL=="sdb",NAME="sda"
(endoffile)
andthen:
#serviceudevrestart
#udevadmcontrol--reload-rules
#udevadmtrigger
1¡¢²é¿´±¾»úµÄ´ÅÅÌ,´úÂëÈçÏÂ:[root@localhostrules.d]#fdisk-l
Disk/dev/vda:21.5GB,21474836480bytes
16heads,63sectors/track,41610cylinders
Units=cylindersof1008*512=516096bytes
Sectorsize(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Diskidentifier:0x0001bcdb
DeviceBootStartEndBlocksIdSystem
/dev/vda1*3101851200083Linux
Partition1doesnotendoncylinderboundary.
/dev/vda2101841611204584968eLinuxLVM
Partition2doesnotendoncylinderboundary.
Disk/dev/vdb:1073MB,1073741824bytes
16heads,63sectors/track,2080cylinders
Units=cylindersof1008*512=516096bytes
Sectorsize(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Diskidentifier:0x00000000
Disk/dev/vdc:2147MB,2147483648bytes
16heads,63sectors/track,4161cylinders
Units=cylindersof1008*512=516096bytes
Sectorsize(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Diskidentifier:0x00000000
¿ÉÒÔ¿´µ½Ò»¸ö´óСΪ1GµÄvdb´ÅÅ̺ÍÒ»¸ö´óСΪ2GµÄvdc´ÅÅÌ.
2¡¢´´½¨ruleÎļþ,ÔÚ/etc/udev/rules.d/´´½¨Ò»¸öruleÎļþ,¾ßÌåÄÚÈÝÈçÏÂ:#cat10-local.rules
KERNEL=="vdb",NAME="vdc"
KERNEL=="vdc",NAME="vdb"
3¡¢Ê¹ÓÃudevadmÃüÁîÖØÔØruleÎļþ,´úÂëÈçÏÂ:#udevadmcontrol--reload-rules
#udevadmtrigger
4¡¢Ôٲ鿴±¾µØ´ÅÅÌ,´úÂëÈçÏÂ:[root@localhost~]#fdisk-l
Disk/dev/vda:21.5GB,21474836480bytes
16heads,63sectors/track,41610cylinders
Units=cylindersof1008*512=516096bytes
Sectorsize(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Diskidentifier:0x0001bcdb
DeviceBootStartEndBlocksIdSystem
/dev/vda1*3101851200083Linux
Partition1doesnotendoncylinderboundary.
/dev/vda2101841611204584968eLinuxLVM
Partition2doesnotendoncylinderboundary.
Disk/dev/vdb:2147MB,2147483648bytes
16heads,63sectors/track,4161cylinders
Units=cylindersof1008*512=516096bytes
Sectorsize(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Diskidentifier:0x00000000
Disk/dev/vdc:1073MB,1073741824bytes
16heads,63sectors/track,2080cylinders
Units=cylindersof1008*512=516096bytes
Sectorsize(logical/physical):512bytes/512bytes
I/Osize(minimum/optimal):512bytes/512bytes
Diskidentifier:0x00000000
Ôٲ鿴·¢ÏÖvdb±ä³ÉÁË2G,vdc±ä³ÉÁË1G´óС.
Èý¡¢udev¹æÔòÏà¹Ø
1¡¢udev¹æÔò²Ù×÷·û
“==”:±È½Ï¼ü¡¢Öµ,ÈôµÈÓÚ,Ôò¸ÃÌõ¼þÂú×ã.
“!=”:±È½Ï¼ü¡¢Öµ,Èô²»µÈÓÚ,Ôò¸ÃÌõ¼þÂú×ã.
“=”:¶ÔÒ»¸ö¼ü¸³Öµ.
“+=”:Ϊһ¸ö±íʾ¶à¸öÌõÄ¿µÄ¼ü¸³Öµ.
“:=”:¶ÔÒ»¸ö¼ü¸³Öµ,²¢¾Ü¾øÖ®ºóËùÓжԸüüµÄ¸Ä¶¯,Ä¿µÄÊÇ·ÀÖ¹ºóÃæµÄ¹æÔòÎļþ¶Ô¸Ã¼ü¸³Öµ.
2¡¢udev¹æÔòµÄÆ¥Åä¼ü
ACTION:ʼþ(uevent)µÄÐÐΪ,ÀýÈç:add(Ìí¼ÓÉ豸)¡¢remove(ɾ³ýÉ豸).
KERNEL:ÄÚºËÉ豸Ãû³Æ,ÀýÈç:sda,cdrom.
DEVPATH:É豸µÄ devpath ·¾¶.
SUBSYSTEM:É豸µÄ×ÓϵͳÃû³Æ,ÀýÈç:sda µÄ×ÓϵͳΪ block.
BUS:É豸ÔÚ devpath ÀïµÄ×ÜÏßÃû³Æ,ÀýÈç:usb.
DRIVER:É豸ÔÚ devpath ÀïµÄÉ豸Çý¶¯Ãû³Æ,ÀýÈç:ide-cdrom¡£
ID:É豸ÔÚ devpath ÀïµÄʶ±ðºÅ¡£
SYSFS{filename}:É豸µÄ devpath ·¾¶Ï£¬É豸µÄÊôÐÔÎļþ“filename”ÀïµÄÄÚÈÝ.
ENV{key}:»·¾³±äÁ¿,ÔÚÒ»Ìõ¹æÔòÖÐ,¿ÉÒÔÉ趨×î¶àÎåÌõ»·¾³±äÁ¿µÄ Æ¥Åä¼ü.
PROGRAM:µ÷ÓÃÍⲿÃüÁî.
RESULT:ÍⲿÃüÁî PROGRAM µÄ·µ»Ø½á¹û.
3¡¢udevÖØÒªµÄ¸³Öµ¼ü
NAME:ÔÚ /devϲúÉúµÄÉ豸ÎļþÃû¡£Ö»ÓеÚÒ»´Î¶Ôij¸öÉ豸µÄ NAME µÄ¸³ÖµÐÐΪÉúЧ£¬Ö®ºóÆ¥ÅäµÄ¹æÔòÔÙ¶Ô¸ÃÉ豸µÄ NAME ¸³ÖµÐÐΪ½«±»ºöÂÔ¡£Èç¹ûûÓÐÈκιæÔò¶ÔÉ豸µÄ NAME ¸³Öµ£¬udev ½«Ê¹ÓÃÄÚºËÉ豸Ãû³ÆÀ´²úÉúÉ豸Îļþ¡£
SYMLINK:Ϊ /dev/ϵÄÉ豸Îļþ²úÉú·ûºÅÁ´½Ó,ÓÉÓÚ udev Ö»ÄÜΪij¸öÉ豸²úÉúÒ»¸öÉ豸Îļþ,ËùÒÔΪÁ˲»¸²¸ÇϵͳĬÈ쵀 udev ¹æÔòËù²úÉúµÄÎļþ,ÍƼöʹÓ÷ûºÅÁ´½Ó.
OWNER,GROUP,MODE:ΪÉ豸É趨ȨÏÞ.
ENV{key}:µ¼ÈëÒ»¸ö»·¾³±äÁ¿
4¡¢udev µÄÖµºÍ¿Éµ÷ÓõÄÌæ»»²Ù×÷·û.
$kernel,%k:É豸µÄÄÚºËÉ豸Ãû³Æ,ÀýÈ磺sda¡¢cdrom.
$number,%n:É豸µÄÄں˺ÅÂë,ÀýÈ磺sda3 µÄÄں˺ÅÂëÊÇ 3.
$devpath,%p:É豸µÄ devpath·¾¶.
$id,%b:É豸ÔÚ devpathÀïµÄ ID ºÅ.
$sysfs{file},%s{file}:É豸µÄ sysfsÀï file µÄÄÚÈÝ,Æäʵ¾ÍÊÇÉ豸µÄÊôÐÔÖµ.
ÀýÈç:$sysfs{size} ±íʾ¸ÃÉ豸(´ÅÅÌ)µÄ´óС.$env{key},%E{key}£ºÒ»¸ö»·¾³±äÁ¿µÄÖµ¡£
$major,%M£ºÉ豸µÄmajorºÅ¡£
$minor%m£ºÉ豸µÄminorºÅ¡£
$result,%c£ºPROGRAM·µ»ØµÄ½á¹û¡£
$parent,%P£º¸¸É豸µÄÉ豸ÎļþÃû¡£
$root,%r£ºudev_rootµÄÖµ£¬Ä¬ÈÏÊÇ/dev/¡£
$tempnode,%N£ºÁÙʱÉ豸Ãû¡£
%%£º·ûºÅ%±¾Éí¡£
$$£º·ûºÅ$±¾Éí¡£
ËÄ¡¢udevadmÓërule
ͨ¹ýudevadm²é¿´´ÅÅÌ»ò·ÖÇøÐÅÏ¢,´úÂëÈçÏÂ:[root@localhostrules.d]#udevadminfo-a-p/sys/block/vdb
Udevadminfostartswiththedevicespecifiedbythedevpathandthen
walksupthechainofparentdevices.Itprintsforeverydevice
found,allpossibleattributesintheudevruleskeyformat.
Aruletomatch,canbecomposedbytheattributesofthedevice
andtheattributesfromonesingleparentdevice.
lookingatdevice'/devices/pci0000:00/0000:00:06.0/virtio3/block/vdb':
KERNEL=="vdb"
SUBSYSTEM=="block"
DRIVER==""
ATTR{range}=="16"
ATTR{ext_range}=="16"
ATTR{removable}=="0"
ATTR{ro}=="0"
ATTR{size}=="2097152"
ATTR{alignment_offset}=="0"
ATTR{discard_alignment}=="0"
ATTR{capability}=="10"
ATTR{stat}=="27613231280000088"
ATTR{inflight}=="00"
ATTR{serial}==""
lookingatparentdevice'/devices/pci0000:00/0000:00:06.0/virtio3':
KERNELS=="virtio3"
SUBSYSTEMS=="virtio"
DRIVERS=="virtio_blk"
ATTRS{device}=="2"
ATTRS{vendor}=="6900"
ATTRS{status}=="0x00000007"
ATTRS{modalias}=="virtio:d00000002v00001AF4"
ATTRS{features}=="0010101101100000000000000000110000000000000000000000000000000000"
lookingatparentdevice'/devices/pci0000:00/0000:00:06.0':
KERNELS=="0000:00:06.0"
SUBSYSTEMS=="pci"
DRIVERS=="virtio-pci"
ATTRS{vendor}=="0x1af4"
ATTRS{device}=="0x1001"
ATTRS{subsystem_vendor}=="0x1af4"
ATTRS{subsystem_device}=="0x0002"
ATTRS{class}=="0x010000"
ATTRS{irq}=="11"
ATTRS{local_cpus}=="1"
ATTRS{local_cpulist}=="0"
ATTRS{modalias}=="pci:v00001AF4d00001001sv00001AF4sd00000002bc01sc00i00"
ATTRS{numa_node}=="-1"
ATTRS{enable}=="1"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
lookingatparentdevice'/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
ÈçÓжà¿é´ÅÅÌ,ÆäÖÐÓÖÓдóСÏàͬµÄ,¿ÉÒÔͨ¹ýÆäËûÌõ¼þ½øÐÐÇø·Ö,ÈçrulesÀï¿ÉÒÔÕâÑùд:SUBSYSTEM=="block",ATTR{size}=="234441648",NAME="my_hard_disk"
SUBSYSTEM=="block",SUBSYSTEMS=="scsi",ATTRS{model}=="ST3120827AS",NAME="my_hard_disk"
KERNEL=="sda1"ATTR{size}=="2096753"NAME="asm_ocr"
×¢:һЩÀÏ°æ±¾µÄudevÀï°üÀïûÓÐudevadm,ʹÓõÄÊÇudevinfoÃüÁî.
Îå¡¢uedvÓëasm ´ÅÅÌrule
1¡¢scsi_id »ñÈ¡´ÅÅÌUUID,´úÂëÈçÏÂ:[root@localhost~]#/sbin/scsi_id-g-u/dev/sdb
3690b11c0002be80e00000ce3514380db
[root@localhost~]#/sbin/scsi_id-g-u/dev/sdc
3690b11c0002be80e00000ce5514380f8
[root@localhost~]#/sbin/scsi_id-g-u/dev/sdd
3690b11c0002be80e00000ce75143810c
//phpfensi.com
а汾ÖеÄscsi_idÃüÁîλÓÚ/usr/lib/udev/scsi_id.
2¡¢asm rule¹æÔò,´úÂëÈçÏÂ:#cat/etc/udev/rules.d/99-Oracle-asmdevices.rules
KERNEL=="sd?1",BUS="scsi",PROGRAM=="/sbin/scsi_id-g-u-d/dev/$parent",
RESULT=="3690b11c0002be80e00000ce3514380db",
NAME="asm-crs01",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd?1",BUS="scsi",PROGRAM=="/sbin/scsi_id-g-u-d/dev/$parent",
RESULT=="3690b11c0002be80e00000ce5514380f8",
NAME="asm-data01",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd?1",BUS="scsi",PROGRAM=="/sbin/scsi_id-g-u-d/dev/$parent",
RESULT=="3690b11c0002be80e00000ce75143810c",
NAME="asm-data02",OWNER="grid",GROUP="asmadmin",MODE="0660"
3¡¢ÖØÆôudev·þÎñ,´úÂëÈçÏÂ:[root@localhostrules.d]#/sbin/partprobe/dev/sdb1
[root@localhostrules.d]#/sbin/partprobe/dev/sdc1
[root@localhostrules.d]#/sbin/partprobe/dev/sdd1
[root@localhostrules.d]#/sbin/start_udev
4¡¢²é¿´asmÉ豸,´úÂëÈçÏÂ:[root@localhostrules.d]#ll/dev/asm*
brw-rw----.1rootroot8,173ÔÂ2711:30/dev/asm-crs01
brw-rw----.1rootroot8,333ÔÂ2711:30/dev/asm-data01
brw-rw----.1rootroot8,493ÔÂ2711:30/dev/asm-data02
ÔÚcentos7/redhat7 °æ±¾ÖеÄudevÒѲ»ÔÙµ¥¶ÀÊÇÒ»¸ö°ü,¶øÊÇÔÚsystemd°üÖаüº¬ÁËudev¹¤¾ß,rule¹æÔò³ýÁË/etc/udev/rules.dĿ¼,»¹ÓÐ/usr/lib/udev/rules.d/ Ŀ¼.