До Ubuntu 12.04 база данных udev была доступна и обновлялась по адресу /dev/.udev/db, но в 12.04 и выше каталог /dev/.udev/ существует, а база данных - нет. Кто-нибудь знает, куда он пошел?
После запуска команды 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.