правила udev исключают устройство

правила udev исключают устройство

можно ли использовать правила udev для исключения одного устройства из правила?

например, если у меня подключено 5 жестких дисков и я хочу создать собственные имена для всех жестких дисков, кроме одного? Возможно ли это?

Кроме того, имена дисков ядра после sdz называются с использованием 2 символов. sdaa, sdab, sdqr и т. д. У меня возникла проблема, так как я не хочу включать раздел в sda1, sdb2 и т. д. Могу ли я использовать подстановочные знаки для всех символов, но не для всех цифр?

пример:

KERNEL=="sd??",  NAME="test/Disk%n",  ATTRS{ID_SERIAL_SHORT}!="xxxx"

решение1

например, если у меня подключено 5 жестких дисков и я хочу создать собственные имена для всех жестких дисков, кроме одного? Возможно ли это?

  • GOTOДля пропуска правил можно использовать :

    ENV{ID_SERIAL_SHORT}=="xxxx|yyyy|zzzz", GOTO="custom_names_end"
    ENV{ID_MODEL}=="blahblah", GOTO="custom_names_end"
    
    KERNEL=="sd*", ENV{DEVTYPE}=="disk", SYMLINK+="test/Disk%n"
    
    LABEL="custom_names_end"
    
  • Обратите внимание, что ID_SERIAL_SHORTэто не атрибут; это переменная "среды" udev, поэтому вам нужно использовать ENV{}или ENVS{}для сопоставления с ней. Атрибуты считываются из sysfs напрямую.

  • Также обратите внимание, что последние версии udev запрещают переименование устройств; вы можете только добавлять пользовательские символические ссылки.

Кроме того, имена дисков ядра после sdz называются с использованием 2 символов. sdaa, sdab, sdqr и т. д. У меня возникла проблема, так как я не хочу включать раздел в sda1, sdb2 и т. д. Могу ли я использовать подстановочные знаки для всех символов, но не для всех цифр?

  • Вы используете неправильный подход. Если вы хотите сопоставить диски, но не разделы, тосделать именно это:

    ЯДРО=="sd*",ENV{DEVTYPE}=="диск", …

    Значения DEVTYPEможно увидеть в udevadm info /dev/sdaи udevadm info /dev/sda1.

Связанный контент