é possível usar regras do udev para excluir um único dispositivo da regra?
por exemplo, se eu tiver 5 discos rígidos conectados e quiser criar nomes personalizados para todos os discos rígidos, exceto um único? É possível?
Além disso, os discos com nomes de kernel após sdz são nomeados com 2 caracteres. sdaa, sdab, sdqr etc. Tenho um problema com isso, pois não quero incluir a partição em sda1, sdb2 etc. posso usar curinga para todos os caracteres, mas não para todos os números?
exemplo:
KERNEL=="sd??", NAME="test/Disk%n", ATTRS{ID_SERIAL_SHORT}!="xxxx"
Responder1
por exemplo, se eu tiver 5 discos rígidos conectados e quiser criar nomes personalizados para todos os discos rígidos, exceto um único? É possível?
Você pode usar
GOTO
para pular 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 isso
ID_SERIAL_SHORT
não é um atributo; é uma variável de "ambiente" do udev, então você precisa usarENV{}
ouENVS{}
combiná-la. Os atributos são lidos diretamente do sysfs.Observe também que as versões recentes do udev proíbem renomear dispositivos; você só pode adicionar links simbólicos personalizados.
Além disso, os discos com nomes de kernel após sdz são nomeados com 2 caracteres. sdaa, sdab, sdqr etc. Tenho um problema com isso, pois não quero incluir a partição em sda1, sdb2 etc. posso usar curinga para todos os caracteres, mas não para todos os números?
Você está usando a abordagem errada. Se você deseja combinar discos, mas não partições, entãofaça exatamente isso:
KERNEL=="sd*",ENV{DEVTYPE}=="disco",…
Os
DEVTYPE
valores podem ser vistos emudevadm info /dev/sda
eudevadm info /dev/sda1
.