regra simples do udev não reconhecendo minha unidade por uuid

0

Estou tendo dificuldades em fazer com que o udev reconheça o drive do uuid. Vou descrever o problema com uma versão mais simples do meu problema. Se eu tentar esta regra simples (em /etc/udev/rules.d/50-backupdrive.rules):

ENV{ID_FS_UUID}=="8eddab0f-de61-4220-bc7f-749665c40758", RUN +="/usr/bin/logger udev rule success, drive: %k with uuid $env{ID_FS_UUID}"

e eu insiro minha unidade USB com uma partição que contém esse uuid, não vejo a mensagem enviada para / var / log / syslog como esperado.

No entanto, se eu executar o seguinte comando mais genérico:

KERNEL=="sd?[0-9]",RUN +="/usr/bin/logger udev rule success, drive: %k with uuid $env{ID_FS_UUID}"

Eu realmente vejo o texto enviado para / var / log:

Apr 22 18:06:35 xxxxxx root: udev rule success, drive: sdd2 with uuid 8eddab0f-de61-4220-bc7f-749665c40758

Isso inclui o uuid, então, de fato, o uuid deve estar correto. Além disso, isso confirma que o udev também deve estar funcionando.

Alguém tem uma idéia do que pode estar ocorrendo? Eu procurei nesses fóruns e não encontrei algo específico para o meu problema :-(. Obrigado!

Mais alguns detalhes que podem ajudar:

Em execução: udevadm info /dev/sdd2 returns ([...] significa texto omitido):

P: /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/host12/target12:0:0/12:0:0:0/block/sdd/sdd2
N: sdd2
S: disk/by-id/ata-ST1000LM024_HN-M101MBB_S30CJ9CF767710-part2
S: disk/by-id/wwn-0x50004cf20d9dfd11-part2
S: disk/by-path/pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0-part2
S: disk/by-uuid/8eddab0f-de61-4220-bc7f-749665c40758
E: DEVLINKS=/dev/disk/by-id/wwn-0x50004cf20d9dfd11-part2 /dev/disk/by-uuid/8eddab0f-de61-4220-bc7f-749665c40758 /dev/disk/by-path/pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0-part2 /dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S30CJ9CF767710-part2
E: DEVNAME=/dev/sdd2
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/host12/target12:0:0/12:0:0:0/block/sdd/sdd2
E: DEVTYPE=partition
[...]
E: ID_FS_TYPE=ext4
E: ID_FS_USAGE=filesystem
E: ID_FS_UUID=8eddab0f-de61-4220-bc7f-749665c40758

Além disso, quando eu conecto minha unidade USB, dmesg lê:

[  551.257166] sd 12:0:0:0: Attached scsi generic sg4 type 0
[  551.257410] sd 12:0:0:0: [sdd] Spinning up disk...
[  552.260087] ..ready
[  553.264377] sd 12:0:0:0: [sdd] 1953525167 512-byte logical blocks: (1.00 TB/932 GiB)
[  553.264382] sd 12:0:0:0: [sdd] 2048-byte physical blocks
[  553.438972] sd 12:0:0:0: [sdd] Write Protect is off
[  553.438979] sd 12:0:0:0: [sdd] Mode Sense: 4f 00 00 00
[  553.439367] sd 12:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  553.450360]  sdd: sdd1 sdd2
[  553.452429] sd 12:0:0:0: [sdd] Attached SCSI disk

Finalmente, fdisk -l dá:

Disk /dev/sdd: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: dos
Disk identifier: 0x709da5d9

Device     Boot     Start        End    Sectors   Size Id Type
/dev/sdd1            2048  102402047  102400000  48.8G  b W95 FAT32
/dev/sdd2       102402048 1953523711 1851121664 882.7G 83 Linux
    
por julienl 23.04.2016 / 00:18

1 resposta

1

Você precisa executar sua regra após a regra incorporada que aprende o UUID em primeiro lugar.

i.e. O meu era /etc/udev.rules/30-foo.rules, mas alterá-lo para "zz-foo.rules" funcionou como um encanto, porque é garantido que ele seja executado quase no final de todas as regras:

udevadm test /devices/pci0000:00/0000:00:16.2/usb3/3-4/3-4:1.0/host13/target13:0:0/13:0:0:0/block/sde/sde1
(snip)
run: '/usr/bin/logger udev rule success, drive: sde1 with uuid 456bBLAH-3399-4fec-a304-BLAH388e2bc3'
(snip)

Descobri isso lendo Use o UUID nas regras do udev e monte a unidade usb em / media / $ UUID

    
por 07.01.2017 / 18:48