3.3. udev 系统

对于 Linux 内核 2.6 版和更新版本,udev 系统 提供了自动硬件发现和初始化机制。(参见 udev(7)).在内核发现每个设备的基础上,udev 系统使用从 sysfs 文件系统 (参见 第 1.2.12 节 “procfs 和 sysfs”)的信息启动一个用户进程,使用 modprobe(8) 程序 (参见 第 3.3.1 节 “内核模块初始化”)加载支持它所要求的内核模块, 创建相应的设备节点。

[提示]提示

如果由于某些理由,”/lib/modules/<kernel-version>/modules.dep“没有被 depmod(8) 正常生成,模块可能不会被 udev 系统按期望的方式加载。执行”depmod -a“ 来修复它。

设备节点的名字,可以通过”/etc/udev/rules.d/“里的 udev 文件来配置.当前默认的规则倾向创建动态生成的名字,除了光驱和网络设备外,会生成非静态的设备名。通过添加和光驱、网络设备类似的个性化规则,你也可以为 USB 盘之类的其它设备,生成静态设备名。 参见 “Writing udev rules“ 或 “/usr/share/doc/udev/writing_udev_rules/index.html“.

由于 udev 系统是一个正在变化的事物,我在其它文档进行了详细描述,在这里只提供了最少的信息。

[提示]提示

/etc/fstab“里面的挂载规则,设备节点不必需是静态的。你能够使用 UUID 来挂载设备,来代替”/dev/sda“之类的设备名. 参见 第 9.5.3 节 “使用 UUID 访问分区”.