Como identificar meu dispositivo pelo caminho físico?

1

Estou criando um computador que manipula discos rígidos.

Gostaria de identificar o disco rígido não pela ordem em que os conecto ao meu computador, mas pelo slot em que os coloquei. Eu sei que o Ubuntu (Linux / Udev) costumava ter uma pasta de classificação "by-path" para nomeação persistente de dispositivos. Mas foi removido por uma razão que eu não entendo muito bem.

Estou procurando ajuda para, de alguma forma, recriar uma maneira de identificar o caminho físico e, portanto, o slot em que eu conecto meu disco rígido. Eu acho que através das regras do udev isso deve ser possível, mas eu não sei como elas funcionam.

    
por Didier Chavaroche 06.01.2015 / 12:19

1 resposta

1

O caminho secundário para dispositivos ATA foi removido porque era possível que o mesmo dispositivo tivesse vários nomes de caminhos diferentes.

Existem algumas opções para obter o caminho físico, incluindo a leitura de /sys/block/ , a pergunta blkid , a consulta de udevadm ou a consulta de udisks .

Se você quiser uma lista de dispositivos de bloco com sistemas de arquivos montáveis que estejam presentes e não quiser usar nenhuma biblioteca extra, então talvez a coisa mais simples seja:

udevadm trigger --dry-run --verbose --property-match=ID_FS_USAGE=filesystem

(isso não precisa de privilégios de root). Se você quiser todos os dispositivos de bloco, então

udevadm trigger --dry-run --verbose --subsystem-match=block

dará uma lista, incluindo mapeador de dispositivos (e também loopback, etc ...).

Fonte: bug # 1193705

    
por Sylvain Pineau 06.01.2015 / 13:51