在 Ubuntu 12.04 之前,udev 数据库在 /dev/.udev/db 可用并更新,但在 12.04 及更高版本中,目录 /dev/.udev/ 存在,但数据库不存在。有人知道它去哪儿了吗?
答案1
strace
在命令上运行后udevadm info
,我发现它现在出现在 中/run/udev/data
。但是,设备不是按内核名称(例如/dev/sda
或/dev/sdb
)列出的,而是按其主编号和次编号以及设备类型列出的。
于是我跑过去strace -f -e open udevadm info -q all -n /dev/sda
,看到:
open("/run/udev/data/b8:0", O_RDONLY|O_CLOEXEC) = 3
它打开是b8:0
因为/dev/sda
是一个块特殊文件,其主编号为 8,次编号为 0。您还将看到其他数据文件,如c10:1
和input:input1
。我不知道输入的用途,但我知道 是c
字符特殊文件, 是10:1
主编号为 10,次编号为 1。
我通过查看找到了有关块特殊文件和字符特殊文件的信息man mknod
。
值得注意的是:我正在运行 Ubuntu 13.04 和 udevadm 版本 175。