ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux»ù´¡ÆªÖ®udev£ºÉ豸¹ÜÀíÆ÷

·¢²¼Ê±¼ä:2014-06-05 21:40:02À´Ô´:ºìÁª×÷Õß:velcbo
1 udev¼ò½é
--------------------------------------------------------------------------------
udev ÊÇLinux2.6 ÄÚºËÀïµÄÒ»¸ö¹¦ÄÜ£¬ËüÌæ´úÁËÔ­À´µÄdevfs£¬³ÉΪµ±Ç°Linux ĬÈϵÄÉ豸¹ÜÀí¹¤¾ß¡£udevÒÔÊØ»¤½ø³ÌµÄÐÎʽÔËÐУ¬Í¨¹ýÕìÌýÄں˷¢³öÀ´µÄuevent À´¹ÜÀí/devĿ¼ÏµÄÉ豸Îļþ¡£²»Ïñ֮ǰµÄÉ豸¹ÜÀí¹¤¾ß£¬udevÔÚÓû§¿Õ¼ä(user space) ÔËÐУ¬¶ø²»ÔÚÄں˿ռä(kernel space) ÔËÐС£

2 udevµÄÓÅÊÆ
--------------------------------------------------------------------------------

2.1 ¶¯Ì¬¹ÜÀí
--------------------------------------------------------------------------------
µ±É豸Ìí¼Ó/ ɾ³ýʱ£¬udevµÄÊØ»¤½ø³ÌÕìÌýÀ´×ÔÄں˵Äuevent£¬ÒÔ´ËÌí¼Ó»òÕßɾ³ý/devϵÄÉ豸Îļþ£¬ËùÒÔudev ֻΪÒѾ­Á¬½ÓµÄÉ豸²úÉúÉ豸Îļþ£¬¶ø²»»áÔÚ/devϲúÉú´óÁ¿ÐéÎÞµÄÉ豸Îļþ¡£

2.2 ×Ô¶¨ÒåÃüÃû¹æÔò
--------------------------------------------------------------------------------
ͨ¹ýLinux ĬÈϵĹæÔòÎļþ£¬udevÔÚ/dev/ ÀïΪËùÓеÄÉ豸¶¨ÒåÁËÄÚºËÉ豸Ãû³Æ£¬±ÈÈç/dev/sda¡¢/dev/hda¡¢/dev/fdµÈµÈ¡£ÓÉÓÚudev ÊÇÔÚÓû§¿Õ¼ä(user space) ÔËÐУ¬LinuxÓû§¿ÉÒÔͨ¹ý×Ô¶¨ÒåµÄ¹æÔòÎļþ£¬Áé»îµØ²úÉú±êʶÐÔÇ¿µÄÉ豸ÎļþÃû£¬±ÈÈç/dev/boot_disk¡¢/dev/root_disk¡¢/dev/color_printerµÈµÈ¡£

2.3 É趨É豸µÄȨÏÞºÍËùÓÐÕß/ ×é
--------------------------------------------------------------------------------
udev¿ÉÒÔ°´Ò»¶¨µÄÌõ¼þÀ´ÉèÖÃÉ豸ÎļþµÄȨÏÞºÍÉ豸ÎļþËùÓÐÕß/ ×é¡£ÔÚ²»Í¬µÄudev °æ±¾ÖУ¬ÊµÏֵķ½·¨²»Í¬¡£


2.4 ÏÂÃæµÄÁ÷³ÌÏÔʾudev Ìí¼Ó/ ɾ³ýÉ豸ÎļþµÄ¹ý³Ì¡£
--------------------------------------------------------------------------------
Linux»ù´¡ÆªÖ®udev£ºÉ豸¹ÜÀíÆ÷


ps£º
1.É豸Îļþ£ºÓÉÓÚ±¾ÎÄÒÔ½ÏͨË׵ķ½Ê½½²½âudev£¬ËùÒÔÉ豸ÎļþÊÇ·ºÖ¸ÔÚ/dev/Ï£¬¿É±»Ó¦ÓóÌÐòÓÃÀ´ºÍÉ豸Çý¶¯½»»¥µÄÎļþ¡£¶ø²»»áÌØ±ðµØÇø·ÖÉ豸Îļþ¡¢É豸½Úµã»òÕßÉè±¸ÌØÊâÎļþ¡£


2.sysfs£ºsysfsÊÇLinux 2.6 ÄÚºËÀïµÄÒ»¸öÐéÄâÎļþϵͳ(/sys)¡£Ëü°ÑÉ豸ºÍÇý¶¯µÄÐÅÏ¢´ÓÄں˵ÄÉ豸ģ¿éµ¼³öµ½Óû§¿Õ¼ä(userspace)¡£´Ó¸ÃÎļþϵͳÖУ¬LinuxÓû§¿ÉÒÔ»ñÈ¡ºÜ¶àÉ豸µÄÊôÐÔ¡£


3.devpath£º±¾ÎĵÄdevpathÊÇÖ¸Ò»¸öÉ豸ÔÚsysfsÎļþϵͳ(/sys)ϵÄÏà¶Ô·¾¶£¬¸Ã·¾¶°üº¬Á˸ÃÉ豸µÄÊôÐÔÎļþ¡£udevÀïµÄ¶àÊýÃüÁî¶¼ÊÇÕë¶Ôdevpath²Ù×÷µÄ¡£ÀýÈ磺sdaµÄdevpathÊÇ/block/sda£¬sda2µÄdevpathÊÇ/block/sda/sda2¡£


4.ÄÚºËÉ豸Ãû³Æ£ºÉ豸ÔÚsysfsÀïµÄÃû³Æ£¬ÊÇudev ĬÈÏʹÓõÄÉ豸ÎļþÃû¡£

3 ÅäÖúÍʹÓÃudev£¨CentOS6.5£©


--------------------------------------------------------------------------------
3.1 ¼ì²éudevÔÚCentOS6.5Öеİ汾ºÍÔËÐÐÇé¿ö



--------------------------------------------------------------------------------
[root@rango~]# rpm -qa | grep -i udev

udev-147-2.51.el6.i686
libudev-147-2.51.el6.i686
libgudev1-147-2.51.el6.i686
system-config-printer-udev-1.1.16-23.el6.i686



[root@rango~]# ps -ef | grep -i udev
root 500 1 0 09:28 ? 00:00:00 /sbin/udevd -d
root 3658 500 0 09:28 ? 00:00:00 /sbin/udevd -d
root 3869 500 0 09:28 ? 00:00:00 /sbin/udevd -d


3.2 udevµÄÅäÖÃÎļþ

--------------------------------------------------------------------------------
[root@rango~]# cat /etc/udev/udev.conf
#The initial syslog(3) priority: "err", "info","debug" or its
#numerical equivalent. For runtime debugging, the daemons internal
#state can be changed with: "udevadm control--log-priority=".
udev_log="err"
udev_log£ºsyslog¼Ç¼ÈÕÖ¾µÄ¼¶±ð£¬Ä¬ÈÏÖµÊÇerr¡£Èç¹û¸ÄΪinfo»òÕßdebugµÄ»°£¬»áÓÐÈß³¤µÄudevÈÕÖ¾±»¼Ç¼ÏÂÀ´¡£
ʵ¼ÊÉÏÔÚCentOS À³ýÁËÅäÖÃÎļþÀïÁгöµÄ²ÎÊýudev_logÍ⣬LinuxÓû§»¹¿ÉÒÔÐ޸IJÎÊýudev_rootºÍudev_rules£¬Ö»²»¹ýÕâ2 ¸ö²ÎÊýÊDz»½¨ÒéÐ޸ĵģ¬ËùÒÔûÏÔʾÔÚudev.conf Àï¡£syslogĬÈÏ»á¼Ç¼udev µÄÈÕÖ¾£¬LinuxÓû§Ö»ÄÜÐÞ¸ÄÈÕÖ¾µÄ¼¶±ð(err¡¢info¡¢degubµÈ)£»É豸µÄȨÏÞ²»ÄÜÔÚudev.conf ÀïÉ趨£¬¶øÊÇÒªÔÚ¹æÔòÎļþ(*.rules) ÀïÉ趨¡£


3.3 ͨ¹ýudevÉ趨É豸ÎļþµÄȨÏÞ


--------------------------------------------------------------------------------
ÔÚCentOS 6.5 µÄudev£¬ÒѾ­Ã»ÓÐȨÏÞÎļþ£¬ËùÓеÄȨÏÞ¶¼ÊÇͨ¹ý¹æÔòÎļþ(*.rules)À´ÉèÖã¬ÔÚÏÂÃæµÄ¹æÔòÎļþÅäÖùý³Ì»á½éÉܵ½¡£


3.4 udevµÄ¹æÔòºÍ¹æÔòÎļþ

--------------------------------------------------------------------------------
¹æÔòÎļþÊÇudevÀï×îÖØÒªµÄ²¿·Ö£¬Ä¬ÈÏÊÇ´æ·ÅÔÚ/etc/udev/rules.d/Ï¡£ËùÓеĹæÔòÎļþ±ØÐëÒÔ¡°.rules¡±Îªºó׺Ãû¡£CentOSÓÐĬÈϵĹæÔòÎļþ£¬ÕâЩĬÈϹæÔòÎļþ²»½öΪÉ豸²úÉúÄÚºËÉ豸Ãû³Æ£¬»¹»á²úÉú±êʶÐÔÇ¿µÄ·ûºÅÁ´½Ó¡£ÀýÈ磺
[root@rango~]# ls /dev/disk/by-uuid/
0E29-04AB 624d6d56-8613-4a27-ad6a-50eab26868a9
0F15181B0F15181B 9017-7DE0
1C58125758122FCE f139256a-b396-48e5-ba9c-6c13f4f8923b
281892191891E5DA
µ«ÕâЩÁ´½ÓÃû½Ï³¤£¬²»Ò×µ÷Óã¬ËùÒÔͨ³£ÐèÒª×Ô¶¨Ò广ÔòÎļþ£¬ÒԴ˲úÉúÒ×ÓÃÇÒ±êʶÐÔÇ¿µÄÉ豸Îļþ»ò·ûºÅÁ´½Ó¡£
udev°´ÕÕ¹æÔòÎļþÃûµÄ×Öĸ˳ÐòÀ´²éѯȫ²¿¹æÔòÎļþ£¬È»ºóΪƥÅ乿ÔòµÄÉ豸¹ÜÀíÆäÉ豸Îļþ»òÎļþÁ´½Ó¡£ËäÈ»udev²»»áÒòΪһ¸öÉ豸ƥÅäÁËÒ»Ìõ¹æÔò¶øÍ£Ö¹½âÎöºóÃæµÄ¹æÔòÎļþ£¬µ«ÊǽâÎöµÄ˳ÐòÈÔÈ»ºÜÖØÒª¡£Í¨³£Çé¿öÏ£¬½¨ÒéÈÃ×Ô¼ºÏëÒªµÄ¹æÔòÎļþ×îÏȱ»½âÎö¡£±ÈÈ磬´´½¨Ò»¸öÃûΪ /etc/udev/rules.d/10-myrule.rulesµÄÎļþ£¬²¢°ÑÄãµÄ¹æÔòдÈë¸ÃÎļþ£¬ÕâÑùudev¾Í»áÔÚ½âÎöϵͳĬÈϵĹæÔòÎļþ֮ǰ½âÎöµ½ÄãµÄÎļþ¡£
ÔÚ¹æÔòÎļþÀ³ýÁËÒÔ¡°#¡±¿ªÍ·µÄÐУ¨×¢ÊÍ£©£¬ËùÓеķǿÕÐж¼±»ÊÓΪһÌõ¹æÔò£¬µ«ÊÇÒ»Ìõ¹æÔò²»ÄÜÀ©Õ¹µ½¶àÐС£¹æÔò¶¼ÊÇÓɶà¸ö¼üÖµ¶Ô£¨key-valuepairs£©×é³É£¬²¢ÓɶººÅ¸ô¿ª£¬¼üÖµ¶Ô¿ÉÒÔ·ÖΪÌõ¼þÆ¥Åä¼üÖµ¶Ô(ÒÔϼò³Æ¡°Æ¥Åä¼ü¡±)ºÍ¸³Öµ¼üÖµ¶Ô(ÒÔϼò³Æ¡°¸³Öµ¼ü¡±)£¬Ò»Ìõ¹æÔò¿ÉÒÔÓжàÌõÆ¥Åä¼üºÍ¶àÌõ¸³Öµ¼ü¡£Æ¥Åä¼üÊÇÆ¥ÅäÒ»¸öÉ豸ÊôÐÔµÄËùÓÐÌõ¼þ£¬µ±Ò»¸öÉ豸µÄÊôÐÔÆ¥ÅäÁ˸ùæÔòÀïËùÓÐµÄÆ¥Åä¼ü£¬¾ÍÈÏΪÕâÌõ¹æÔòÉúЧ£¬È»ºó°´ÕÕ¸³Öµ¼üµÄÄÚÈÝ£¬Ö´ÐиùæÔòµÄ¸³Öµ¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄ¹æÔò£º
KERNEL=="sda",NAME="my_root_disk", MODE="0660"
KERNELÊÇÆ¥Åä¼ü£¬NAMEºÍMODEÊǸ³Öµ¼ü¡£ÕâÌõ¹æÔòµÄÒâ˼ÊÇ£ºÈç¹ûÓÐÒ»¸öÉ豸µÄÄÚºËÉ豸Ãû³ÆÎªsda£¬Ôò¸ÃÌõ¼þÉúЧ£¬Ö´ÐкóÃæµÄ¸³Öµ£ºÔÚ/devϲúÉúÒ»¸öÃûΪmy_root_diskµÄÉ豸Îļþ£¬²¢°ÑÉ豸ÎļþµÄȨÏÞÉèΪ0660¡£
½öµ±²Ù×÷·ûÊÇ¡°==¡±»òÕß¡°!=¡±Ê±£¬ÆäΪƥÅä¼ü£»ÈôΪÆäËû²Ù×÷·ûʱ£¬¶¼ÊǸ³Öµ¼ü¡£


udev¹æÔòµÄËùÓвÙ×÷·û

--------------------------------------------------------------------------------
¡°==¡±£º±È½Ï¼ü¡¢Öµ£¬ÈôµÈÓÚ£¬Ôò¸ÃÌõ¼þÂú×㣻
¡°!=¡±£º±È½Ï¼ü¡¢Öµ£¬Èô²»µÈÓÚ£¬Ôò¸ÃÌõ¼þÂú×㣻
¡°=¡±£º¶ÔÒ»¸ö¼ü¸³Öµ£»
¡°+=¡±£ºÎªÒ»¸ö±íʾ¶à¸öÌõÄ¿µÄ¼ü¸³Öµ¡£
¡°:=¡±£º¶ÔÒ»¸ö¼ü¸³Öµ£¬²¢¾Ü¾øÖ®ºóËùÓжԸüüµÄ¸Ä¶¯¡£Ä¿µÄÊÇ·ÀÖ¹ºóÃæµÄ¹æÔòÎļþ¶Ô¸Ã¼ü¸³Öµ¡£


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¡±ÀïµÄÄÚÈÝ¡£
ÀýÈ磺SYSFS{model}==¡°ST936701SS¡±±íʾ£ºÈç¹ûÉ豸µÄÐͺÅΪST936701SS£¬Ôò¸ÃÉ豸ƥÅä¸ÃÆ¥Åä¼ü¡£
ÔÚÒ»Ìõ¹æÔòÖУ¬¿ÉÒÔÉ趨×î¶àÎåÌõSYSFS µÄÆ¥Åä¼ü¡£
ENV{key}£º»·¾³±äÁ¿¡£ÔÚÒ»Ìõ¹æÔòÖУ¬¿ÉÒÔÉ趨×î¶àÎåÌõ»·¾³±äÁ¿µÄÆ¥Åä¼ü¡£
PROGRAM£ºµ÷ÓÃÍⲿÃüÁî¡£
RESULT£ºÍⲿÃüÁî PROGRAM µÄ·µ»Ø½á¹û¡£ÀýÈ磺
PROGRAM=="/lib/udev/scsi_id -g -s $devpath", RESULT=="35000c50000a7ef67"µ÷ÓÃÍⲿÃüÁî/lib/udev/scsi_id²éѯÉ豸µÄSCSI ID£¬Èç¹û·µ»Ø½á¹ûΪ35000c50000a7ef67£¬Ôò¸ÃÉ豸ƥÅä¸ÃÆ¥Åä¼ü¡£


udev µÄÖØÒª¸³Öµ¼ü

--------------------------------------------------------------------------------
NAME£ºÔÚ/devϲúÉúµÄÉ豸ÎļþÃû¡£Ö»ÓеÚÒ»´Î¶Ôij¸öÉ豸µÄNAME µÄ¸³ÖµÐÐΪÉúЧ£¬Ö®ºóÆ¥ÅäµÄ¹æÔòÔÙ¶Ô¸ÃÉ豸µÄNAME ¸³ÖµÐÐΪ½«±»ºöÂÔ¡£Èç¹ûûÓÐÈκιæÔò¶ÔÉ豸µÄNAME ¸³Öµ£¬udev½«Ê¹ÓÃÄÚºËÉ豸Ãû³ÆÀ´²úÉúÉ豸Îļþ¡£
SYMLINK£ºÎª/dev/ϵÄÉ豸Îļþ²úÉú·ûºÅÁ´½Ó¡£ÓÉÓÚudev Ö»ÄÜΪij¸öÉ豸²úÉúÒ»¸öÉ豸Îļþ£¬ËùÒÔΪÁ˲»¸²¸ÇϵͳĬÈϵÄudev ¹æÔòËù²úÉúµÄÎļþ£¬ÍƼöʹÓ÷ûºÅÁ´½Ó¡£
OWNER, GROUP, MODE£ºÎªÉ豸É趨ȨÏÞ¡£
ENV{key}£ºµ¼ÈëÒ»¸ö»·¾³±äÁ¿¡£
udev µÄÖµºÍ¿Éµ÷ÓõÄÌæ»»²Ù×÷·û£º
ÔÚ¼üÖµ¶ÔÖеļüºÍ²Ù×÷·û¶¼½éÉÜÍêÁË£¬×îºóÊÇÖµ(value)¡£LinuxÓû§¿ÉÒÔËæÒâµØ¶¨ÖÆudev ¹æÔòÎļþµÄÖµ¡£ÀýÈ磺my_root_disk,my_printer¡£Í¬Ê±Ò²¿ÉÒÔÒýÓÃÏÂÃæµÄÌæ»»²Ù×÷·û£º
$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£ºÁÙʱÉ豸Ãû¡£
%%£º·ûºÅ% ±¾Éí¡£
$$£º·ûºÅ$ ±¾Éí¡£
KERNEL=="sd*", PROGRAM="/lib/udev/scsi_id -g -s %p", \ RESULT=="35000c50000a7ef67", SYMLINK="%k_%c"¸Ã¹æÔòµÄÖ´ÐУºÈç¹ûÓÐÒ»¸öÄÚºËÉ豸Ãû³ÆÒÔsd ¿ªÍ·£¬ÇÒSCSI ID Ϊ35000c50000a7ef67£¬ÔòΪÉ豸Îļþ²úÉúÒ»¸ö·ûºÅÁ´½Ó¡°sda_35000c50000a7ef67¡±.

4 ÖÆ¶¨udev ¹æÔòºÍ²éѯÉ豸ÐÅÏ¢µÄʵÀý

--------------------------------------------------------------------------------
4.1 ²éÕÒÉ豸µÄÐÅÏ¢£¨ÊôÐÔ£©À´Öƶ¨udev¹æÔò

--------------------------------------------------------------------------------
µ±ÎÒÃÇΪָ¶¨µÄÉ豸É趨¹æÔòʱ£¬Ê×ÏÈÐèÒªÖªµÀ¸ÃÉ豸µÄÊôÐÔ£¬±ÈÈçÉ豸µÄÐòÁкš¢´ÅÅÌ´óС¡¢³§ÉÌID¡¢É豸·¾¶µÈµÈ¡£Í¨³£ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏµķ½·¨»ñµÃ£º
²éѯsysfsÎļþϵͳ£º
Ç°Ãæ½éÉܹý£¬sysfsÀï°üº¬Á˺ܶàÉ豸ºÍÇý¶¯µÄÐÅÏ¢¡£
ÀýÈ磺É豸sda µÄSYSFS{size} ¿ÉÒÔͨ¹ýcat/sys/block/sda/sizeµÃµ½£»SYSFS{model}ÐÅÏ¢¿ÉÒÔͨ¹ýcat/sys/block/sda/device/modelµÃµ½¡£
udevadm infoÃüÁ£¨CentOS5.3ΪudevinfoÃüÁ
udevadm info ¿ÉÒÔ²éѯudev Êý¾Ý¿âÀïµÄÉ豸ÐÅÏ¢¡£ÀýÈ磺ÓÃudevadm info ²éѯÉ豸sda µÄmodel ºÍsize ÐÅÏ¢£º
[root@rango ~]# udevadm info -a -p /sys/block/sda | egrep"model|size"
ATTR{size}=="976773168"
ATTRS{model}=="ST500DM002-1BD14


4.2 udevµÄ¼òµ¥¹æÔò

--------------------------------------------------------------------------------

²úÉúÍø¿¨É豸ÎļþµÄ¹æÔò

--------------------------------------------------------------------------------
SUBSYSTEM=="net", SYSFS{address}=="AA:BB:CC:DD:EE:FF", NAME="public_NIC"¸Ã¹æÔò±íʾ£ºÈç¹û´æÔÚÉ豸µÄ×ÓϵͳΪnet£¬²¢ÇÒµØÖ·(MAC address) Ϊ¡°AA:BB:CC:DD:EE:FF¡±£¬Îª¸ÃÉ豸²úÉúÒ»¸öÃûΪpublic_NIC µÄÉ豸Îļþ¡£
Ϊָ¶¨´óСµÄ´ÅÅ̲úÉú·ûºÅÁ´½ÓµÄ¹æÔò

--------------------------------------------------------------------------------
SUBSYSTEM=="block", SYSFS{size}=="71096640", SYMLINK ="my_disk"¸Ã¹æÔò±íʾ£ºÈç¹û´æÔÚÉ豸µÄ×ÓϵͳΪblock£¬²¢ÇÒ´óСΪ71096640(block)£¬ÔòΪ¸ÃÉ豸µÄÉ豸ÎļþÃû²úÉúÒ»¸öÃûΪmy_disk µÄ·ûºÅÁ´½Ó¡£
ͨ¹ýÍⲿÃüÁîΪָ¶¨ÐòÁкŵĴÅÅ̲úÉúÉ豸ÎļþµÄ¹æÔò

--------------------------------------------------------------------------------
KERNEL=="sd*[0-9]", PROGRAM=="/lib/udev/scsi_id -g -s %p", \ RESULT=="35000c50000a7ef67", NAME +="root_disk%n"¸Ã¹æÔò±íʾ£ºÈç¹û´æÔÚÉ豸µÄÄÚºËÉ豸Ãû³ÆÊÇÒÔ sd ¿ªÍ·( ´ÅÅÌÉ豸)£¬ÒÔÊý×Ö½áβ( ´ÅÅÌ·ÖÇø)£¬²¢ÇÒͨ¹ýÍⲿÃüÁî²éѯ¸ÃÉ豸µÄSCSI_ID ºÅΪ¡°35000c50000a7ef67¡±£¬Ôò²úÉúÒ»¸öÒÔroot_disk¿ªÍ·£¬Äں˺ÅÂë½áβµÄÉ豸Îļþ£¬²¢Ìæ»»Ô­À´µÄÉ豸Îļþ£¨Èç¹û´æÔڵϰ£©¡£ÀýÈ磺²úÉúÉ豸Ãû/dev/root_disk2£¬Ìæ»»Ô­À´µÄÉ豸Ãû/dev/sda2¡£
ÔËÓÃÕâÌõ¹æÔò£¬¿ÉÒÔÔÚ/etc/fstabÀï±£³Öϵͳ·ÖÇøÃû³ÆµÄÒ»ÖÂÐÔ£¬¶ø²»»áÊÜÇý¶¯¼ÓÔØË³Ðò»òÕß´ÅÅ̱êÇ©±»ÆÆ»µµÄÓ°Ï죬µ¼Ö²Ù×÷ϵͳÆô¶¯Ê±ÕÒ²»µ½ÏµÍ³·ÖÇø¡£


4.3 ÆäËû³£ÓõÄudevÃüÁî

--------------------------------------------------------------------------------
udevadm test£¨udevadmµÄ×ÓÃüÁ£ºÕë¶ÔÒ»¸öÉ豸£¬ÔÚ²»ÐèÒªuevent ´¥·¢µÄÇé¿öÏÂÄ£ÄâÒ»´ÎudevµÄÔËÐУ¬²¢Êä³ö²éѯ¹æÔòÎļþµÄ¹ý³Ì¡¢ËùÖ´ÐеÄÐÐΪ¡¢¹æÔòÎļþµÄÖ´Ðнá¹û¡£
Simulate a udev event run for the given device, and print debugoutput


start_udev:start_devÃüÁîÖØÆôudevÊØ»¤½ø³Ì£¬²¢¶ÔËùÓеÄÉè±¸ÖØÐ²éѯ¹æÔòĿ¼ÏÂËùÓеĹæÔòÎļþ£¬È»ºóÖ´ÐÐËùÆ¥ÅäµÄ¹æÔòÀïµÄÐÐΪ¡£Í¨³£Ê¹ÓøÃÃüÁîÈÃÐµĹæÔòÎļþÁ¢¼´ÉúЧ£º
[root@rango ~]# start_udev
Starting udev: [ OK ]
start_udevÒ»°ãûÓбê×¼Êä³ö£¬ËùÓеÄudev Ïà¹ØÐÅÏ¢¶¼°´ÕÕÅäÖÃÎļþ(udev.conf)µÄ²ÎÊýÉèÖã¬ÓÉsyslog¼Ç¼¡£

×÷Õߣºrangochen
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ