udev links simbólicos - onde está / dev / sda apontando para

2

Diz-se que o udev cria links simbólicos identificando o dispositivo atual e / dev / disk / by-uuid é um exemplo.

[root@centos1 by-uuid]# pwd

/dev/disk/by-uuid

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

total 0 lrwxrwxrwx 1 root root 10 Jun 26 00:59 4cfc879d-1d4e-4289-856c-5f532a74bb2d -> ../../sda

Isso significa que a) / dev / sda está apontando para ucid 4cfc879d-1d4e-4289-856c-5f532a74bb2d

ou

b) uuid 4cfc879d-1d4e-4289-856c-5f532a74bb2d está apontando para / dev / sda?

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

Se a resposta for a, eu sempre achei que o link deveria ser da esquerda para a direita? e como alguém fará referência ao uuid para ir para / dev / sda? Também achei que / dev / sda deveria ser adicionado dinamicamente pelo udev e sua nomenclatura é baseada em algumas regras.

Se a resposta for b, então para onde está apontando sda? Dizem que o kernel adiciona dispositivos à pasta / dev / dinamicamente e, com o udev, podemos persistir na nomeação dos dispositivos.

[root@centos1 dev]# pwd

/dev

[root@centos1 dev]# ls -lt sda

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

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

Eu tentei encontrar as regras em /etc/udev/rules.d/, mas sem sucesso. Eu estou no CentOS.

Estou tentando em /lib/udev/rules.d/, mas não consigo ver as regras que adicionam sda a / dev /

Por favor, informe.

    
por Noob 26.06.2015 / 11:59

1 resposta

4

O link é para / dev / sda1. você pode estabelecer isso com o comando arquivo : no meu sistema, por exemplo,

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

Assim, sua opção b está correta. / dev / sda é não um link, por isso não aponta para mais nada: é apenas um arquivo especial (dispositivo), veja por exemplo este artigo da Wikipédia .

Eu não uso o CentOS, mas nos meus sistemas Debian / Kubuntu as regras de disco estão localizadas em /lib/udev/rules.d , sob

   # 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

O arquivo relevante, é claro, é 60-persistent-storage.rules . Se você não conseguir localizá-lo aqui no seu sistema, sugiro que tente:

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

Editar:

is /sda added in /dev by udev then ?

Sim.

how do we ensure "sda" will always remain as "sda" ?

Nós não. A regra é gerada automaticamente por udev no momento da instalação. Na verdade, o arquivo acima mencionado contém a seguinte regra:

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

EDIT 2

A coisa mais simples, dado que você não pode se decidir, é estabelecer suas próprias regras. Suponha que você tenha um dispositivo, chamado agora sdd, mas você deseja chamá-lo de sda na próxima reinicialização.

Primeiro, você precisa descobrir alguns parâmetros:

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

Isso vai mostrar muitas informações. Procure por linhas como essas (o seu será diferente, é claro):

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

Agora você pode usar esses paramaters para criar sua própria regra, para ser inserido em /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"

A última parte, RUN +="/ home / meu_nome / bin / meu_programa" , é opcional: você pode usá-lo para executar um comando, se desejar, mas pode omiti-lo completamente .

    
por 26.06.2015 / 12:16