collegamenti simbolici udev - dove è / dev / sda che punta a


2

Si dice che udev crea collegamenti simbolici che identificano il dispositivo reale e / dev / disk / by-uuid è un esempio.

[root @ centos1 by-uuid] # pwd

/ Dev / disk / by-uuid

[root @ centos1 by-uuid] # ls -l

totale 0 lrwxrwxrwx 1 root root 10 giu 26 00:59 4cfc879d-1d4e-4289-856c-5f532a74bb2d - & gt; ../../sda

Significa quanto sopra a) / dev / sda punta a uuid 4cfc879d-1d4e-4289-856c-5f532a74bb2d

o

b) uuid 4cfc879d-1d4e-4289-856c-5f532a74bb2d sta puntando a / dev / sda?

==================================================

Se la risposta è a, ho sempre pensato che il link sia supposto essere da sinistra a destra? e come qualcuno farà riferimento a uuid per andare a / dev / sda? Inoltre ho pensato che / dev / sda dovesse essere aggiunto dinamicamente da udev e che la sua denominazione è basata su alcune regole.

Se la risposta è b, allora dove sta indicando sda? Si dice che il kernel aggiunga dispositivi alla cartella / dev / in modo dinamico e con udev possiamo persistere nella denominazione dei dispositivi in ​​esso contenuti.

[root @ centos1 dev] # pwd

/ dev

[root @ centos1 dev] # ls -lt sda

brw-rw ---- 1 root disk 8, 0 Jun 26 00:59 sda

==================================================

Ho provato a trovare le regole in /etc/udev/rules.d/ ma senza successo. Sono su CentOS.

Sto provando a /lib/udev/rules.d/, ma non riesco a vedere le regole che aggiungono sda in / dev /

Si prega di avvisare.


Per favore, vedi il mio Edit 2. Penso che tu abbia tutte le informazioni che ti servono.
MariusMatutiae

Risposte:


4

Il collegamento è a / Dev / sda1. puoi stabilirlo con il file comando: nel mio sistema, ad esempio,

  # file *
  ff28e743-4409-41b3-99ea-f133cdcc86be: symbolic link to `../../sda1' 

Quindi, la tua opzione B è giusto. / dev / sda è non un collegamento, quindi non punta a nient'altro: è solo un file (dispositivo) speciale, si veda ad esempio questo articolo di Wikipedia .

Non utilizzo CentOS, ma nei miei sistemi Debian / Kubuntu sono presenti le regole del disco /lib/udev/rules.d , sotto

   # ls -lh 60-per*
     -rw-r--r-- 1 root root  616 apr 15 22:33 60-persistent-alsa.rules
     -rw-r--r-- 1 root root 2,5K apr 15 22:33 60-persistent-input.rules
     -rw-r--r-- 1 root root  947 apr 15 22:33 60-persistent-serial.rules
     -rw-r--r-- 1 root root  929 mag  4  2012 60-persistent-storage-dm.rules
     -rw-r--r-- 1 root root 5,6K apr 15 22:33 60-persistent-storage.rules
     -rw-r--r-- 1 root root 1,4K apr 15 22:33 60-persistent-storage-tape.rules
     -rw-r--r-- 1 root root  769 apr 15 22:33 60-persistent-v4l.rules

Il file pertinente, ovviamente, lo è 60-persistent-storage.rules . Se non riesci a trovarlo qui nel tuo sistema, ti suggerisco di provare:

    find / -type f -name '*persistent-storage*.rules'

Modificare:

è / sda aggiunto in / dev da udev allora?

Sì.

come ci assicuriamo che "sda" rimarrà sempre come "sda"?

Noi non. La regola viene generata automaticamente da udev al momento dell'installazione. In effetti, il file sopra menzionato contiene la seguente regola:

   # scsi devices
   KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi"

MODIFICA 2

La cosa più semplice, dato che non puoi decidere, è impostare le tue regole. Supponiamo di avere un dispositivo, chiamato adesso sdd, ma vuoi chiamarlo sda al prossimo riavvio.

Per prima cosa devi scoprire alcuni parametri:

   udevadm info -a -p $(udevadm info -q path -n /dev/sdd)

Questo sputerà molte informazioni. Cerca linee come queste (le tue saranno diverse, ovviamente):

  ATTRS{idVendor}=="18a5"
  ATTRS{idProduct}=="0302"
  ATTRS{serial}=="TT0E4E008XW3DT9H"

Ora puoi utilizzare questi parametri per creare la tua regola, da inserire in /etc/udev/rules.d/10-local.rules :

 ATTRS{idVendor}=="18a5", ATTRS{idProduct}=="0302", ATTRS{serial}=="TT0E4E008XW3DT9H", KERNEL=="sd?", NAME="sda", RUN+="/home/my_name/bin/my_program"

L'ultima parte, RUN + = "/ home / my_name / bin / mio_programma" , è opzionale: puoi usarlo per eseguire un comando, se lo desideri, ma puoi ometterlo del tutto.


è / sda aggiunto in / dev da udev allora? come facciamo a garantire che il disco referenziato da "sda" rimarrà sempre come "sda"?
Noob

@Noob Pls vedi la mia modifica.
MariusMatutiae

grazie per la tua chiara spiegazione Non sono veramente sicuro dell'uso delle regole nelle regole - ma con la regola mostrata sopra, si assicura che "sda" rimanga come "sda" allora? potrebbe succedere che 1 giorno prenda il disco a cui è assegnato "sda" e lo ricolleghi un altro giorno e gli sia stato assegnato "sdb"?
Noob

perchè non posso io @ MariusMatutiae?
Noob

@Noob Perché stai rispondendo alla mia risposta, quindi mi viene automaticamente
MariusMatutiae
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.