Como impedir que as regras UDEV atribuam um dispositivo a um conjunto específico de nomes

1

Eu tenho algumas regras UDEV para um array RAID; 10 discos rígidos recebem nomes de / dev / sda para / dev / sdj.

Os discos podem estar ausentes a qualquer momento.

Como escrevo uma regra UDEV para impedir que um dispositivo, como um USB arbitrário, assuma um dos nomes de disco rígido ausentes?

Por exemplo, se meu segundo disco rígido / dev / sdb for desconectado por alguma razão, e mais tarde alguém conectar um dispositivo USB em uma porta completamente diferente, eu preciso usar não / dev / sdb.

Eu posso pensar em uma maneira de mapear cada porta USB disponível no sistema para seu próprio nome, mas deve haver uma maneira mais limpa? Estou pensando em algo assim, onde eu digo "se é um dispositivo USB, atribua um nome de k para z:

KERNEL=="sd?", SUBSYSTEM=="block", DEVPATH="*usb", NAME="sd[k-z]", GOTO="END_20_PERSISTENT_DISK"

KERNEL=="sd?*", ENV{DEVTYPE}=="partition", SUBSYSTEM=="block", DEVPATH=="*usb*", NAME="sd[k-z]%n"

O sistema destina-se a ser totalmente autônomo, aceitando qualquer dispositivo USB ou disco rígido arbitrário - é por isso que estou usando DEVPATHs versus labels e uuids.

    
por sg90 22.05.2015 / 16:56

1 resposta

1

Conecte seu drive USB e use

udevadm info -a -p /sys/block/sd* 

onde * é o seu número atribuído ao disco (sda1, sda3, sdb2, etc)

Em seguida, escreveu uma regra do udev como essa

KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="**************", SYMLINK+="sdb%n"

Claro, edite isso com base nas informações do udevadm

Outra boa solução é usar DISK_UID ou LABEL para montar, então / dev / sd * não é importante, você vai montar usando LABEL ou DISK_UUID Eu prefiro o LABEL, aqui está um exemplo do meu fstab

LABEL=memoria     swap             swap        defaults         0   0
LABEL=root        /                ext4        defaults,acl     1   1
LABEL=utenti      /home            ext4        defaults,acl     1   2

utenti e root são volumes lvm, e / dev / sd * não é importante para usar o comando LABEL use e2label na sua partição

    
por 22.05.2015 / 17:11