faz referência ao disco inteiro (/ dev / sda) usando o UUID

12

No meu sistema (Debian), posso ver o identificador UUID de todas as minhas partições de discos (por exemplo, /dev/sda1 , dev/sda2 , ..)

ls /dev/disk/by-uuid/

No entanto, não vejo o identificador UUID para /dev/sda em si. É possível fazer referência ao disco inteiro com UUID ?

Eu preciso disso porque quero referenciar um disco em particular, e não posso confiar que ele será chamado /dev/sda .

EDITAR

A solução sugerida por @don_crissti é ótima. No entanto, gostaria que o UUID fosse o mesmo para todos os discos rígidos do mesmo Modelo / Fabricante, não exclusivo para o número de série.

Usando udevadm , posso ver os atributos do disco:

udevadm info -n /dev/sda -a
ATTRS{model}=="Samsung SSD 840 "
ATTRS{vendor}=="0x8086"
ATTRS{class}=="0x010700"
ATTRS{device}=="0x1d6b"
....

Como posso gerar um UUID desses atributos, para que o mesmo disco Modelo / Fabricante tenha o mesmo UUID ?

    
por Michael Boies 18.02.2015 / 21:09

1 resposta

11

Os links simbólicos em /dev/disk/by-uuid/ são criados pelas regras udev com base nos UUIDs sistemas de arquivos . Se você olhar para /usr/lib/udev/rules.d/60-persistent-storage.rules , encontrará entradas como:

...... ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"

Para fazer referência a um disco, você pode usar o número de série do disco e a tecla ENV{ID_SERIAL_SHORT} .
A regra udev a seguir corresponde à unidade com o número de série. 0000000013100925DB96 e cria um symlink com o mesmo nome em /dev/disk/by-uuid/ :

KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL_SHORT}=="0000000013100925DB96", SYMLINK+="disk/by-uuid/$env{ID_SERIAL_SHORT}"

Quanto à sua outra pergunta ... claro, você sempre pode usar ENV{ID_MODEL} em vez de ENV{ID_SERIAL_SHORT} e usar uma string personalizada para o seu nome de link simbólico.
A regra a seguir corresponde a qualquer unidade com ID_MODEL = M4-CT128M4SSD2 e cria um link simbólico M4-SSD-1234567890 sob /dev/disk/by-uuid/ :

KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_MODEL}=="M4-CT128M4SSD2", SYMLINK+="disk/by-uuid/M4-SSD-1234567890"

Observe que isso funciona bem, desde que haja apenas uma unidade correspondente à ID_MODEL . Se houver várias unidades do mesmo modelo, a regra será aplicada novamente para cada uma delas e o link simbólico apontará para a última unidade detectada / adicionada.

    
por 18.02.2015 / 22:28