¿Es posible utilizar reglas de udev para excluir un único dispositivo de la regla?
por ejemplo, si tengo 5 discos duros conectados y quiero crear nombres personalizados para todos los discos duros excepto uno. ¿Es posible?
Además, los nombres del kernel a los discos después de sdz se nombran con 2 caracteres. sdaa, sdab, sdqr, etc. Tengo un problema porque no quiero incluir la partición en sda1, sdb2, etc. ¿Puedo utilizar comodines para todos los caracteres pero no para todos los números?
ejemplo:
KERNEL=="sd??", NAME="test/Disk%n", ATTRS{ID_SERIAL_SHORT}!="xxxx"
Respuesta1
por ejemplo, si tengo 5 discos duros conectados y quiero crear nombres personalizados para todos los discos duros excepto uno. ¿Es posible?
Puedes usar
GOTO
para saltarte reglas: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"
Tenga en cuenta que
ID_SERIAL_SHORT
no es un atributo; es una variable de "entorno" de udev, por lo que debe usarlaENV{}
oENVS{}
hacerla coincidir. Los atributos se leen directamente desde sysfs.También tenga en cuenta que las versiones recientes de udev prohíben cambiar el nombre de los dispositivos; solo puedes agregar enlaces simbólicos personalizados.
Además, los nombres del kernel a los discos después de sdz se nombran con 2 caracteres. sdaa, sdab, sdqr, etc. Tengo un problema porque no quiero incluir la partición en sda1, sdb2, etc. ¿Puedo utilizar comodines para todos los caracteres pero no para todos los números?
Estás utilizando el enfoque equivocado. Si desea hacer coincidir discos pero no particiones, entonceshaz exactamente eso:
KERNEL=="sd*",ENV{DEVTYPE}=="disco",…
Los
DEVTYPE
valores se pueden ver enudevadm info /dev/sda
yudevadm info /dev/sda1
.