GNU/Linux >> Tutoriels Linux >  >> Linux

Linux – Règles Udev :Comment faire correspondre uniquement les périphériques du noyau (pas les partitions) après le périphérique 26 ?

Certains systèmes ont plus de 26 périphériques (blocs) (comme les disques durs), que le noyau nomme comme suit :

/dev/sda
...
/dev/sdz
/dev/sdaa
/dev/sdab
/dev/sdac
...

La plupart des exemples de règles udev sont assez simples, ne correspondant qu'aux 26 premiers appareils, comme par exemple :

ACTION=="add|change", KERNEL=="sd[a-z]|sr[0-9]", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

Mais comment faire correspondre après le 26e appareil ?
On ne peut pas écrire sd* parce que des partitions comme sda1 ne doit pas correspondre.

Je peux imaginer écrire un autre "ou" (symbole pipe :| ) pour faire la correspondance, comme :

KERNEL=="sd[a-z]|sd[a-z][a-z]|sr[0-9]"

Ou divisez le match en partie positive et négative, comme :

..., KERNEL=="sd[a-z]*|sr[0-9]", KERNEL!="sd[a-z]*[0-9]", ...

Existe-t-il un meilleur moyen d'écrire des règles udev lisibles, qui correspondent au périphérique n° 27 et supérieur, mais pas à n'importe quelle partition ?

Réponse acceptée :

KERNEL=="sd*[!0-9]|sr*"

Peut être trouvé dans les règles udev fournies par le système d'exploitation elles-mêmes.

Dans ce cas Arch Linux, jetez un œil au fichier :

/usr/lib/udev/rules.d/60-persistent-storage.rules

Section ATA :

$ grep /usr/lib/udev/rules.d/60-persistent-storage.rules -e \"ATA\"
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $devnode"

Linux
  1. Comment configurer Chroot SFTP sous Linux (Autoriser uniquement SFTP, pas SSH)

  2. Comment configurer les règles UDEV pour l'OCR RAC et les périphériques de vote sur les partitions

  3. Comment coder un module du noyau Linux ?

  4. Faire en sorte qu'udev ignore certains périphériques lors du démarrage

  5. Comment vérifier si le noyau Linux est activé ou non avec Retpoline ?

Comment installer un pilote de périphérique sous Linux

Comment charger ou décharger un module du noyau Linux

Comment répertorier les partitions de disque sous Linux

Linux - Udev ne renomme pas le périphérique USB Ethernet ?

Le périphérique Linux n'affiche pas l'espace disque correct après un redimensionnement

Comment détecter et gérer les appareils sous Linux