Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3547689
  • 博文数量: 1805
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 3345
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 20:01
文章分类

全部博文(1805)

文章存档

2017年(19)

2016年(80)

2015年(341)

2014年(438)

2013年(349)

2012年(332)

2011年(248)

分类: LINUX

2014-10-26 09:48:39

原文地址:udev设备节点创建过程 作者:newjiawen

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

udev一般包含两个程序udevdudevadm,这两个包分别是负责创建/dev下面的设备文件各大udev的管理。udevd是一个守护进程,要使用udev则必须启动该进程。Centos的启动是在/etc/rc.sysinit中执行/sbin/start_udev脚本来启动的,

udevd的守护进程

下面简单地模拟一下udev的创建设备节点的过程:

1.首先killudevd进程:pkill udevd,然后用ps -aux |grep udev查看是否已经kill成功。

2.挂载udev的根目录:mount -t tmpfs none /dev,挂载后该目录为空。

3.启动udevd进程,运行udevd命令。

4.通过udevadm trigger --action=add触发内核的设备添加事件。这样可以将内核的文件设备节点信息读取出来。

5.现在可以通过ls 查看dev目录,现在目录里面就有相应的文件设备:

现在模拟一下在sda设备文件改为juvi设备文件:

首先在etc/udev/rules.d目录下创建一个测试规则文件:33-juvi.rules,然后用vim打开,加入下面的规则:ACTION=="add", KERNEL=="sda",NAME="juvi" , SYMLINK+="juvi-test"

上面ACTION表示内核事件,KERNEL中表示dev的设备文件名,NAME表示你自己要创建的名字,SYMLINK表示要建立的一个快捷方式。设置好规则后运行udevadm trigger --action=add命令,便可以发现在/dev下面的sda不存在了,而变为了juvi文件。

设置这些规则是要根据设备的信息来设置,因此可以通过udevadm info --export-db命令显示所有的文件设备节点信息。下面是sda的设备节点信息:

P: /devices/pci0000:00/0000:00:10.0/host2/target2:0:1/2:0:1:0/block/sda

N: juvi

W: 538

S: juvi-test

S: block/8:0

S: disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0

E: UDEV_LOG=3

E: DEVPATH=/devices/pci0000:00/0000:00:10.0/host2/target2:0:1/2:0:1:0/block/sda

E: MAJOR=8

E: MINOR=0

E: DEVNAME=/dev/juvi

E: DEVTYPE=disk

E: SUBSYSTEM=block

E: ID_SCSI=1

E: ID_VENDOR=VMware_

E: ID_VENDOR_ENC=VMware\x2c\x20

E: ID_MODEL=VMware_Virtual_S

E: ID_MODEL_ENC=VMware\x20Virtual\x20S

E: ID_REVISION=1.0

E: ID_TYPE=disk

E: ID_BUS=scsi

E: ID_PATH=pci-0000:00:10.0-scsi-0:0:1:0

E: ID_PART_TABLE_TYPE=dos

E: DEVLINKS=/dev/juvi-test /dev/block/8:0 /dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0


阅读(1340) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~