udevadm - инструмент управления udev
udevadm [--debug] [--version] [--help]
udevadm info [параметры] [путь_к_файлу_устройства]
udevadm trigger [параметры] [путь_к_файлу_устройства]
udevadm settle [параметры]
udevadm control параметр
udevadm monitor [параметры]
udevadm test [параметры] путь_к_файлу_устройства
udevadm test-builtin [параметры] команда путь_к_файлу_устройства
udevadm wait [параметры] устройство|системный_путь
udevadm lock [параметры] команда
Инструмент udevadm ожидает команду и специфические для команды параметры. Инструмент udevadm контролирует поведение systemd-udevd во время выполнения, запрашивает события ядра, управляет очередью событий и предоставляет простые механизмы отладки.
-d, --debug
Выводить отладочные сообщения в стандартный вывод ошибок stderr. Данный параметр подразумевается в командах udevadm test и udevadm test-builtin.
-h, --help
Вывести краткую справку.
Запросить информацию об устройстве в базе данных udev.
Позиционные аргументы следует использовать для указания одного или нескольких файлов устройств. Каждый из таких файлов может находиться в /dev/), либо в /sys/ (системный путь), либо быть файлом конфигурации устройства systemd (в этом случае файл имеет расширение ".device", см. systemd.device(5)).
-q, --query=ТИП
Запросить в базе данных данные об устройстве указанного типа. Допустимые типы: name, symlink, path, property, all.
--property=ИМЯ
При отображении свойств устройства с использованием параметра --query=property ограничить отображение свойствами, указанными в аргументе. Аргументом должен быть список имен свойств, разделенных запятыми. Если параметр не указан, отображаются все известные свойства.
--value
При отображении свойств устройства с помощью параметра --query=property вывести только их значения, а имена свойств и "=" пропустить.
Не может использоваться совместно с -x/--export или -P/--export-prefix.
-p, --path=ПУТЬ_К_ФАЙЛУ_УСТРОЙСТВА
Путь /sys/ к запрашиваемому устройству, например, [/sys/]/class/block/sda. Этот параметр является альтернативой позиционному аргументу с префиксом /sys/. Команда udevadm info --path=/class/block/sda эквивалентна udevadm info /sys/class/block/sda.
-n, --name=ФАЙЛ
Имя ноды устройства или символическая ссылка для запроса, например [/dev/]/sda. Этот параметр является альтернативой позиционному аргументу с префиксом /dev/. Команда udevadm info --name=sda эквивалентна udevadm info /dev/sda.
-r, --root
Вывести абсолютные пути в запросах имени или символической ссылки.
-a, --attribute-walk
Вывести все свойства sysfs указанного устройства, которые могут быть использованы в правилах udev, чтобы они соответствовали указанному устройству. Данный параметр выводит последовательно все устройства, вплоть до корневого каталога sysfs, который может быть использован в правилах udev.
-t, --tree
Отобразить дерево sysfs. Параметр рекурсивно перебирает иерархию sysfs и отображает ее в виде древовидной структуры. Если указан путь, то отображается только поддерево, расположенное ниже, и его родительские каталоги. При этом будут показаны как элементы устройства, так и элементы подсистемы.
-x, --export
Отобразить вывод в виде пар ключ/значение. Значения заключаются в одинарные кавычки. Это вступает в силу только в том случае, если указано значение --query=свойство или --device-id-of-file=ФАЙЛ.
-P, --export-prefix=ИМЯ
Добавить префикс к имени ключа экспортируемых значений. Это подразумевает --export.
-d, --device-id-of-file=ФАЙЛ
Вывести основные/второстепенные (major/minor) номера базового устройства, на котором хранится файл. Если это указано, то все позиционные аргументы игнорируются.
-e, --export-db
Экспортировать содержимое базы данных udev.
-c, --cleanup-db
Очистить базу данных udev.
-w[ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ], --wait-for-initialization[=ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ]
Ждать, пока устройство будет инициализировано. Если аргумент ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ не указан, то по умолчанию используется ожидание вечно.
-h, --help
Вывести краткую справку.
--no-pager
Не перенаправлять вывод в пейджер (инструмент постраничного вывода).
В сгенерированном выводе отображается в сжатом формате текущая запись из базы данных устройств. Каждая отображаемая строка имеет префикс в виде одного из следующих символов:
Таблица 1. Выходные префиксы udevadm info
| Префикс | Назначение |
| "P:" | Путь к устройству в /sys/ |
| "M:" | Имя устройства в /sys/ (т.е. последний компонент "P:") |
| "R:" | Номер устройства в /sys/ (т.е. числовой суффикс последнего компонента "P:") |
| "U:" | Подсистема ядра |
| "T:" | Тип устройства ядра в подсистеме |
| "D:" | Главная/второстепенная (major/minor) нода устройства ядра |
| "I:" | Индекс сетевого интерфейса |
| "N:" | Имя ноды устройства ядра |
| "L:" | Приоритет символической ссылки на ноду устройства |
| "S:" | Символическая ссылка на ноду устройства |
| "Q:" | Порядковый номер блочного устройства (DISKSEQ) |
| "V:" | Подключенный драйвер |
| "E:" | Свойство устройства |
Запросить события устройства из ядра. В основном используется для воспроизведения событий во время холодного подключения системы.
Принимает спецификации устройства в качестве позиционных аргументов. См. описание info выше.
-v, --verbose
Вывести список устройств, которые будут запущены.
-n, --dry-run
Не запускать событие.
-q, --quiet
Подавить регистрацию ошибок при запуске событий.
-t, --type=ТИП
Запустить определенный тип устройств. Допустимыми типами являются "all", "devices" и "subsystems". Значение по умолчанию - "devices".
-c, --action=ACTION
Задать тип запускаемого события. Возможны следующие действия: "add", "remove", "change", "move", "online", "offline", "bind" и "unbind". Кроме того, для составления списка возможных действий можно использовать специальное значение "help". Значение по умолчанию - "change".
--prioritized-subsystem=ПОДСИСТЕМА[,ПОДСИСТЕМА...]
Получить список подсистем, разделенных запятыми. При запуске событий для устройств первыми запускаются устройства из указанных подсистем и их родительские элементы. Например, при --prioritized-subsystem=block,net сначала запускаются все блочные устройства и их родители, затем все сетевые устройства и их родители и, наконец, запускаются другие устройства. Данный параметр может быть указан несколько раз, и в этом случае списки подсистем будут объединены. То есть, --prioritized-subsystem=block --prioritized-subsystem=net эквивалентно --prioritized-subsystem=block,net.
-s, --subsystem-match=ПОДСИСТЕМА
Запустить события для устройств, принадлежащих к соответствующей подсистеме. Этот параметр поддерживает сопоставление с шаблоном в стиле оболочки. Если этот параметр указан более одного раза, то запускаются все устройства в каждой подсистеме (каждый соответствующий результат ORed).
-S, --subsystem-nomatch=ПОДСИСТЕМА
Не запускать события для устройств, принадлежащих к соответствующей подсистеме. Этот параметр поддерживает сопоставление с шаблоном в стиле оболочки. Если этот параметр указан более одного раза, то запускаются устройства, не соответствующие всем указанным подсистемам (каждый соответствующий результат ANDed).
-a, --attr-match=АТРИБУТ=ЗНАЧЕНИЕ
Запустить события для устройств с соответствующим атрибутом sysfs. Если вместе с именем атрибута указано значение, то содержимое атрибута сопоставляется с заданным значением с помощью сопоставления с шаблоном в стиле оболочки. Если значение не указано, то проверяется наличие атрибута sysfs. Если этот параметр указан несколько раз, то запускаются только те устройства, которые имеют все указанные атрибуты (каждый соответствующий результат ANDed).
-A, --attr-nomatch=АТРИБУТ=ЗНАЧЕНИЕ
Не запускать события для устройств с соответствующим атрибутом sysfs. Если вместе с именем атрибута указано значение, то содержимое атрибута сопоставляется с заданным значением с помощью сопоставления с шаблоном в стиле оболочки. Если значение не указано, то проверяется наличие атрибута sysfs. Если этот параметр указан несколько раз, то запускаются только устройства, у которых нет ни одного из указанных атрибутов (каждый соответствующий результат ANDed).
-p, --property-match=СВОЙСТВО=ЗНАЧЕНИЕ
Запустить события для устройств с соответствующим значением свойства. Этот параметр поддерживает сопоставление с шаблоном в стиле оболочки. Если этот параметр указан более одного раза, то запускаются устройства, обладающие одним из указанных свойств (каждый соответствующий результат ORed).
-g, --tag-match=ТЕГ
Запустить события для устройств с соответствующим тегом. Если этот параметр задан несколько раз, то запускаются устройства, у которых есть все указанные теги (каждый соответствующий результат ANDed.
-y, --sysname-match=ИМЯ
Запустить события для устройств, для которых последний компонент пути /sys/ (т.е. имя файла) совпадает с указанным ПУТЬ. Этот параметр поддерживает сопоставление с шаблоном в стиле оболочки. Если этот параметр указан более одного раза, то запускаются все устройства, которые имеют любое из указанных значений ИМЯ (каждый соответствующий результат ORed).
--name-match=ИМЯ
Запустить события для устройств с совпадающим путем к устройству. Если этот параметр указан более одного раза, то запускаются все указанные устройства (каждый соответствующий результат ORed).
-b, --parent-match=СИСТЕМНЫЙ_ПУТЬ
Запустить события для всех дочерних устройств данного устройства. Если этот параметр указан более одного раза, то запускаются все дочерние устройства каждого указанного устройства (каждый соответствующий результат ORed).
--initialized-match, --initialized-nomatch
Когда указан --initialized-match, то запускаются события для устройств, которые уже инициализированы с помощью systemd-udevd, и пропускаются устройства, которые еще не инициализированы.
Когда указан --initialized-no match, запускаются события для устройств, которые еще не инициализированы с помощью systemd-udevd, и пропускаются устройства, которые уже инициализированы.
Как правило, важно, чтобы приложения, предназначенные для использования такого соответствия, установили подходящее правило udev, которое устанавливает по крайней мере одно свойство для устройств, которые должны быть сопоставлены. Более подробную информацию см. в разделе "ИНИЦИАЛИЗИРОВАНННЫЕ УСТРОЙСТВА" ниже.
ПРЕДУПРЕЖДЕНИЕ: --initialized-nomatch потенциально может сэкономить значительное количество времени по сравнению с повторным запуском всех устройств в системе, и т.о может использоваться для оптимизации времени загрузки. Однако это небезопасно для использования в последовательности загрузки в целом. В частности, когда правила udev для устройства зависят от его родительских устройств (например, ключи "ATTRS" или "IMPORT{parent}", см. udev(7) для получения более подробной информации), конечное состояние устройства легко становится нестабильным при использовании --initialized-nomatch.
-w, --settle
Помимо запуска событий, также ожидает завершения этих событий . Обратите внимание, что это отличается от вызова udevadm settle. udevadm settle ожидает завершения всех событий. Этот параметр ожидает завершения только событий, вызванных той же командой.
--uuid
Запустить синтетические события устройства и ассоциировать рандомизированный UUID с каждым из них. Эти UUID выводятся на стандартный вывод, по одной строке для каждого события. Эти UUID включены в блок окружения событий (в свойстве "SYNTH_UUID=") и могут использоваться для отслеживания доставки сгенерированных событий.
--wait-daemon[=ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ]
Прежде чем запускать uevents, дождаться инициализации демона systemd-udevd. При необходимости задается значение задержки. Задержка по умолчанию 5 секунд. Это эквивалентно вызову вызова udevadm control --ping перед udevadm trigger.
-h, --help
Вывести краткую справку.
Кроме того, необязательные позиционные аргументы могут использоваться для указания имен устройств или системных путей. Они должны начинаться с /dev/ или /sys/ соответственно.
Отследить очередь событий udev и завершить работу, если все текущие события обработаны.
-t, --timeout=ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ
Максимальное количество секунд, в течение которых очередь событий должна опустеть. Значение по умолчанию — 120 секунд. Значение 0 позволяет проверить, пуста ли очередь, и всегда возвращает значение немедленно. Ненулевое значение вернет код выхода 0, если очередь опустела до истечения времени ожидания, ненулевое значение в противном случае.
-E, --exit-if-exists=ФАЙЛ
Прекратить ожидание, если файл существует.
-h, --help
Вывести краткую справку.
Для получения дополнительной информации см. systemd-udev-settle.service(8).
Изменить внутреннее состояние запущенного демона udev.
-e, --exit
Сигнализировать и дождаться выхода systemd-udevd. После этого параметра нельзя указывать никакой параметр, кроме --timeout. Обратите внимание, что systemd-udevd.service содержит Restart=always, и в результате этот параметр перезапускает systemd-udevd. Если вы хотите остановить systemd-udevd.service, пожалуйста, используйте следующее:
systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service
-l, --log-level=значение
Установить уровень внутреннего журнала systemd-udevd. Допустимыми значениями являются числовые приоритеты системного журнала или их текстовые представления: emerg, alert, crit, err, warning, notice, info и debug.
-s, --stop-exec-queue
Сигнализировать systemd-udevd о прекращении выполнения новых событий. Входящие события будут помещены в очередь.
-S, --start-exec-queue
Сигнализировать systemd-udevd для включения выполнения событий.
-R, --reload
Сигнализировать systemd-udevd, чтобы перезагрузить файлы правил и другие базы данных, такие как индекс модуля ядра. При перезагрузке правил и баз данных не применяются никакие изменения к уже существующим устройствам; новая конфигурация будет применяться только к новым событиям.
-p, --property=КЛЮЧ=значение
Установить глобальное свойство для всех событий.
-m, --children-max=значение
Установить максимальное количество событий, которые systemd-udevd будет обрабатывать одновременно.
--ping
Отправить ping-сообщение в systemd-udevd и дождаться ответа. Это может быть полезно, чтобы проверить, запущен ли демон systemd-udevd.
-t, --timeout=длительность_в_секундах
Задать максимальное время ожидания ответа от systemd-udevd в секундах.
-h, --help
Вывести краткую справку.
Прослушать uevents ядра и события, отправленные по правилу udev, и вывести devpath события на консоль. Это можно использовать для анализа времени события, сравнивая временные метки uevent ядра и события udev.
-k, --kernel
Выведите события ядра (uevents).
-u, --udev
Вывести событие udev после обработки правила.
-p, --property
Вывести свойства события.
-s, --subsystem-match=строка[/строка]
Фильтровать uevents-события ядра и события udev по подсистеме subsystem[/devtype]. Будут проходить только события с соответствующим значением подсистемы. Если эта опция указана более одного раза, то выводится каждый результат сопоставления, то есть отслеживаются все устройства в указанных подсистемах.
-t, --tag-match=строка
Фильтровать события udev по тегу. Будут проходить только события udev с заданным тегом. Если этот параметр указан более одного раза, то будут отслеживаться устройства, имеющие один из указанных тегов (каждый соответствующий результат ORed).
-h, --help
Вывести краткую справку.
Симулировать запуск события udev для данного устройства и вывести отладочную информацию.
-a, --action=ДЕЙСТВИЕ
Задать тип моделируемого события. Возможны следующие действия: "add" (добавить), "remove" (удалить), "change" (изменить), "move" (переместить), "online" (онлайн), "offline" (оффлайн), "bind" (привязать), and "unbind" (отменить привязку). Кроме того, специальное значение "help" можно использовать для составления списка возможных действий. Значение по умолчанию - "add".
-N, --resolve-names=early|late|never
Указать, когда udevadm должен разрешать имена пользователей и групп. Если установлено значение early (значение по умолчанию), то имена будут разрешены при парсинге правил. Если установлено значение late, то имена будут разрешены для каждого события. Если установлено значение never, то имена никогда не будут разрешены, и все устройства будут принадлежать root.
-h, --help
Вывести краткую справку.
Запустить встроенную КОМАНДУ для устройства с указанным ПУТЕМ и вывести отладочную информацию.
-a, --action=ДЕЙСТВИЕ
Задать тип моделируемого события. Возможны следующие действия: "add" (добавить), "remove" (удалить), "change" (изменить), "move" (переместить), "online" (онлайн), "offline" (оффлайн), "bind" (привязать), and "unbind" (отменить привязку). Кроме того, специальное значение "help" можно использовать для составления списка возможных действий. Значение по умолчанию - "add".
-h, --help
Вывести краткую справку.
Ждать, пока устройства или символические ссылки на устройства будут созданы и инициализированы с помощью systemd-udevd. Путь к каждому устройству должен начинаться с "/dev/" или "/sys/", например, "/dev/sda", "/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1", "/sys/devices/pci0000:00/0000:00:1f.6/net/eth0" или "/sys/class/net/eth0". Для этого может потребоваться несколько устройств. Это может быть полезно для ожидания обработки устройств с помощью systemd-udevd после разбиения на разделы или форматирования устройств.
-t, --timeout=ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ
Максимальное время (в секундах), в течение которых можно ожидать создания, инициализации или удаления указанных устройств или символических ссылок на устройства. Значение по умолчанию — "infinity".
--initialized=BOOL
Проверить, есть ли в systemd-udevd инициализированные устройства. По умолчанию установлено значение true. При значении false команда проверяет только наличие указанных устройств. Если для указанных устройств нет правил udev, установить значение false для этого параметра, так как в этом случае устройства никогда не будут считаться инициализированными. Более подробную информацию смотрите в разделе Инициализированные устройства ниже.
--removed
Если указан, то команда ожидает удаления устройств, а не создания или инициализации. Если параметр --removed указан, то параметр --initialized= будет проигнорирован.
--settle
Если указано, то также отслеживать очередь событий udev и ожидает обработки всех событий в очереди с помощью systemd-udevd.
-h, --help
Вывести краткую справку.
udevadm lock устанавливает (рекомендательную) эксклюзивную блокировку на блочном устройстве (или на всех указанных устройствах) в соответствии с Locking Block Device Access[1] и вызывает программу со снятыми блокировками. Когда вызываемая программа завершает работу, блокировки автоматически снимаются, и возвращаемое значение передается как код выхода из udevadm lock.
Этот инструмент, в частности, полезен для обеспечения того, чтобы systemd-udevd.service(8) не проверял блочное устройство при внесении в него изменений, например, при создании разделов или форматировании файловых систем. Обратите внимание, что многие инструменты, взаимодействующие с блочными устройствами, изначально поддерживают установку соответствующих блокировок, см., например, sfdisk(8)s --lock switch.
Команда ожидает, что по крайней мере одно блочное устройство, указанное через --device= или --backing=, и командная строка будут выполнены в качестве аргументов.
--device=УСТРОЙСТВО, -d УСТРОЙСТВО
Задать путь к ноде устройства для блокировки. Этот параметр может использоваться несколько раз (и в сочетании с --backing=) для блокировки нескольких устройств. Если указана нода блочного устройства раздела, автоматически определяется содержащее его "целое" блочное устройство и используется для блокировки в соответствии со спецификацией. Если указано несколько устройств, они дедуплицируются, сортируются по основным/второстепенным узлам своих устройств и затем блокируются в порядке .
Этот параметр необходимо использовать хотя бы один раз, чтобы указать хотя бы одно устройство для блокировки. (В качестве альтернативы, используйте --backing=, см. ниже.)
--backing=ПУТЬ, -b ПУТЬ
Если указан путь к узлу устройства, идентичный --device=. Однако этот параметр в качестве альтернативы принимает путь к обычному файлу или каталогу, и в этом случае автоматически определяется и используется блочное устройство файловой системы, в которой находится файл/каталог, как если бы оно было указано с помощью --device=.
--timeout=ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ, -t ДЛИТЕЛЬНОСТЬ_В_СЕКУНДАХ
Указать максимальное время ожидания пока взятия всех блокировок. Принимает значение в секундах, или в обычных поддерживаемых единицах времени, см. systemd.time(7). Если указано ноль, то попытка блокировки производится, и если она неуспешна, вызов немедленно завершится неудачей. Если передано "infinity" (по умолчанию), вызов будет ждать неопределенно долго, пока блокировка не будет получена. Если блокировка не может быть взята за указанное время, указанная команда не будет выполнена, и вызов завершится неудачей.
--print, -p
Вместо блокировки указанных устройств и выполнения команды, просто выводит пути к устройствам, которые были бы заблокированы, и не выполняет никакой команды. Эта команда полезна для определения "целого" блочного устройства в случае, если указано блочное устройство раздела. Устройства будут отсортированы по основному номеру узла устройства как основному ключу сортировки и вторичному номеру как вторичному ключу сортировки (т.е. они показаны в том порядке, в котором они были бы заблокированы). Обратите внимание, что число строк, выводимых здесь, может быть меньше, чем число указанных переключателей --device= и --backing= в случае, если они разрешаются до одинаковых "целых" устройств.
-h, --help
Вывести краткую справку.
Инициализированные устройства - это те, для которых по крайней мере одно правило udev уже завершило выполнение для любого действия, кроме удаления ("remove"), которое устанавливает свойство или другую настройку устройства (и, следовательно, имеет запись в базе данных устройств udev). Устройства больше не считаются инициализированными, если для них выполняется действие "remove" (которое удаляет их запись в базе данных устройств udev). Обратите внимание, что устройства, для которых нет правил udev, никогда не считаются инициализированными, но все равно могут быть объявлены через sd-device API (или аналогичный инструмент).
Пример 1. Форматирование файловой системы
Заблокировать базовое блочное устройство при создании файловой системы, чтобы гарантировать, что systemd-udevd не проверит и не объявит о новом суперблоке до того, как он будет полностью записан:
# udevadm lock --device=/dev/sda1 mkfs.ext4 /dev/sda1
Пример 2. Форматирование файловой системы RAID
Аналогично, но одновременно блокируются несколько устройств:
# udevadm lock --device=/dev/sda1 --device=/dev/sdb1 mkfs.btrfs /dev/sda1 /dev/sdb1
Пример 3. Копирование в файловую систему
Заблокировать основное блочное устройство при копировании в подготовленный образ файловой системы, чтобы гарантировать, что systemd-udevd не проверит или не объявит о новом суперблоке до того, как он будет полностью записан:
# udevadm lock -d /dev/sda1 dd if=fs.raw of=/dev/sda1
udev(7), systemd-udevd.service(8)
Блокировка доступа к блочному устройству
https://systemd.io/BLOCK_DEVICE_LOCKING
Русский перевод этой страницы руководства: Александра Богданова <support@astralinux.ru>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .