udevadm monitor: что происходит с устройством между kernel и /dev… — Admin Guides | Сисадмин — TG.ME

udevadm monitor: что происходит с устройством между kernel и /dev

Когда подключается диск, сетевой адаптер или USB-устройство, файл в /dev не появляется сам по себе.

Сначала kernel обнаруживает устройство и генерирует событие, затем udev обрабатывает его и создаёт нужные device nodes и symlink.

Посмотреть эти события в реальном времени:

udevadm monitor


Подключаем USB-накопитель и можем увидеть события от kernel и udev

KERNEL[...] add /devices/.../usb1/1-2
UDEV [...] add /devices/.../usb1/1-2


Это позволяет увидеть разницу между двумя этапами.

KERNEL - устройство обнаружено ядром
UDEV - событие обработал userspace udev

Отфильтровать только устройства

udevadm monitor --kernel --udev --subsystem-match=block


Теперь интересуют только block devices

При подключении диска можно увидеть цепочку событий для самого устройства и его разделов

add → nvme0n1
add → nvme0n1p1
add → nvme0n1p2


Узнать, почему устройство получило именно такое имя

После обнаружения:

udevadm info --query=all --name=/dev/sda


Можно посмотреть свойства, по которым udev идентифицирует устройство

Например:

ID_SERIAL=...
ID_WWN=...
ID_FS_UUID=...
ID_PATH=...


Именно на основе таких атрибутов создаются стабильные ссылки вроде:

/dev/disk/by-id/
/dev/disk/by-path/
/dev/disk/by-uuid/


Полезный кейс

Допустим, после перезагрузки диск иногда становится /dev/sdb, а иногда /dev/sdc

Ориентироваться на имя sdX в такой ситуации ненадёжно

Можно посмотреть стабильный идентификатор:

udevadm info --query=property --name=/dev/sdb


А затем использовать /dev/disk/by-id/...

Так можно понять не только что система обнаружила, но и почему конкретное устройство получило конкретные свойства и имена
❤2
September 4, 2026 366 17