GNU/Linux >> Linux Esercitazione >  >> Linux

Linux - Regole Udev:come abbinare solo i dispositivi del kernel (non le partizioni) dopo il dispositivo n. 26?

Alcuni sistemi hanno più di 26 dispositivi (a blocchi) (come i dischi rigidi), che il kernel nomina come segue:

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

La maggior parte degli esempi di regole udev sono abbastanza semplici, corrispondono solo ai primi 26 dispositivi, come ad esempio:

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

Ma come abbinare dopo il 26° dispositivo?
Non si può scrivere sd* perché partizioni come sda1 non deve essere abbinato.

Posso immaginare di scrivere un altro "o" (simbolo pipe:| ) per creare la corrispondenza, come:

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

Oppure dividi la corrispondenza in una parte positiva e una negativa, come:

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

C'è un modo migliore per scrivere regole udev leggibili, che corrispondano al dispositivo n. 27 e successivi, ma non a nessuna partizione?

Risposta accettata:

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

Può essere trovato nelle stesse regole udev fornite dal sistema operativo.

In questo caso di Arch Linux, dai un'occhiata al file:

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

Sezione 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. Solo 4 MB? Come riparare USB "distrutto" da Etcher e Rufus dopo aver creato Live Linux USB

  2. Come aggiornare il kernel su desktop Linux

  3. Linux:in che modo il kernel Linux conosce i numeri maggiori e minori del dispositivo?

  4. Linux – Udev non rinomina il dispositivo USB Ethernet?

  5. Come codificare un modulo del kernel Linux?

Come caricare o scaricare un modulo del kernel Linux

Come elencare le partizioni del disco in Linux

Come rilevare e gestire i dispositivi su Linux

Come impostare le regole UDEV per RAC OCR e dispositivi di voto sulle partizioni

Come ottenere gli indirizzi MAC dei dispositivi che non sono nella rete

Fare in modo che udev ignori determinati dispositivi durante l'avvio