У меня проблемы с тем, что udev распознает диск с помощью uuid. Я изложу проблему с более простой версией моей проблемы. Если я попробую это простое правило (в /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}"

и я вставляю свой USB-накопитель с разделом, содержащим этот uuid, я не вижу сообщения, выведенного в /var /log /syslog, как ожидалось.

Однако, если я выполню следующую более общую команду:

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

Я действительно вижу текст, выведенный в /var /log:

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

Это включает uuid, так что действительно uuid должен быть правильным. Кроме того, это подтверждает, что udev тоже должен работать.

У кого-нибудь есть идея относительно того, что может происходить? Я искал на этих форумах и не нашел что-то конкретное для моей проблемы :-(. Спасибо!

Еще некоторые детали, которые могут помочь:

Выполнение: udevadm info /dev/sdd2 возвращает ([...] означает пропущенный текст):

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

Кроме того, когда я подключаю USB-накопитель, dmesg читает:

[  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

Наконец, fdisk -l дает:

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

1 ответ1

1

Вам нужно, чтобы ваше правило запускалось после встроенного правила, которое в первую очередь учитывает UUID.

т.е. у меня был /etc/udev.rules/30-foo.rules, но изменение его на "zz-foo.rules" работало как чудо, потому что оно гарантированно работает в конце всех правил:

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)

Выяснили это, прочитав Использовать UUID в правилах udev и смонтировать usb-диск в /media /$ UUID

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .