Las reglas de udev excluyen el dispositivo.

Las reglas de udev excluyen el dispositivo.

¿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 GOTOpara 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_SHORTno es un atributo; es una variable de "entorno" de udev, por lo que debe usarla ENV{}o ENVS{}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 DEVTYPEvalores se pueden ver en udevadm info /dev/sday udevadm info /dev/sda1.

información relacionada