regras do udev excluem dispositivo

3

é possível usar regras do udev para excluir um único dispositivo da regra?

por exemplo, se eu tiver 5 harddisk plugado e eu quero criar nomes personalizados para todos os discos rígidos, exceto para um único? é possível?

Além disso, os discos de nomes de kernel após sdz são nomeados com 2 caracteres. sdaa, sdab, sdqr etc. Eu tenho um problema com isso, pois eu não quero incluir a partição em sda1, sdb2, etc. Posso usar caracteres curinga em todos os caracteres, mas não em todos os números?

exemplo:

KERNEL=="sd??",  NAME="test/Disk%n",  ATTRS{ID_SERIAL_SHORT}!="xxxx"
    
por prgmjunkie 23.03.2014 / 14:00

1 resposta

2

for instance if I have 5 harddisk plugged in and I want to create custom names for all harddisk except for a single one? is it Possible?

  • Você pode usar GOTO para ignorar as regras:

    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"
    
  • Observe que ID_SERIAL_SHORT não é um atributo; é uma variável "ambiente" do udev, portanto, você precisa usar ENV{} ou ENVS{} para corresponder a ela. Atributos são lidos diretamente do sysfs.

  • Observe também que versões recentes do udev proíbem a renomeação de dispositivos; você só pode adicionar links simbólicos personalizados.

Also, kernel names disks after sdz are named with 2 characters. sdaa,sdab, sdqr etc. I have a problem with it since I dont want to include the partition in sda1, sdb2 etc. can I wildcard all characters but not all numbers?

  • Você está usando a abordagem errada. Se você quiser corresponder discos, mas não partições, faça exatamente isso :

    KERNEL=="sd*", ENV{DEVTYPE}=="disk", …

    Os valores de DEVTYPE podem ser vistos em udevadm info /dev/sda e udevadm info /dev/sda1 .

por 23.03.2014 / 14:30