Recentemente, notei que havia links simbólicos extras /dev/disk/by-id
para minhas unidades NVME, com as duplicatas com o mesmo nome _1
anexado.
# ls -lF /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW{,_1}
lrwxrwxrwx 1 root root 13 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW -> ../../nvme0n1
lrwxrwxrwx 1 root root 13 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1 -> ../../nvme0n1
(números de série editados principalmente para XXXXXXXX sem nenhum motivo específico)
e duplica as entradas para todas as partições nas unidades NVME também:
$ ls -lF /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1*-part*'
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part1 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part2 -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part3 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part4 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part5 -> ../../nvme0n1p5
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part6 -> ../../nvme0n1p6
lrwxrwxrwx 1 root root 15 Jul 29 19:22 /dev/disk/by-id/nvme-Samsung_SSD_970_EVO_500GB_S466XXXXXXXXXXW_1-part7 -> ../../nvme0n1p7
Isso está acontecendo apenas para minhas unidades NVME, não para minhas unidades flash SATA ou USB.
Não consigo ver nada óbvio nisso /usr/lib/udev/rules.d/60-persistent-storage.rules
.
Alguém sabe por que udev
está fazendo isso? E, mais importante, como pará-lo?
Confira essas linhas em
/usr/lib/udev/rules.d/60-persistent-storage.rules
:A primeira regra define ID_NSID (id do namespace?) do dispositivo NVMe, compare
head /sys/block/nvme*/nsid
. A segunda regra define ID_SERIAL e cria odisk/by-id/nvme-ID_SERIAL
link simbólico regular. A terceira regra anexa ID_NSID a ID_SERIAL e torna odisk/by-id/nvme-ID_SERIAL_NSID
link simbólico "duplicado".Em
udevadm info /dev/nvme
você verá apenas a variante NSID para ID_SERIAL, já que a terceira regra substitui tudo o que a segunda regra definiu.Parece um pouco confuso, mas parece estar funcionando como pretendido. Se você quiser se livrar dele, terá que desabilitar a terceira regra do udev citada acima.
Neste commit c5ba7a2a @ github/systemd você também pode ver as mesmas regras repetidas para os links simbólicos da partição individual, então você teria que desativá-lo em ambos os lugares.
No entanto, a intenção aqui parece ser preferir os links _1 aos regulares, já que eles são… uh… seguros para o namespace? ;-)
Não tenho certeza sobre essa abordagem, com uma regra um pouco diferente, você poderia proteger o link simbólico regular ... este patch apenas adiciona novos sem resolver o problema original, isso é um pouco estranho. Mas eu não uso muito namespaces, então…