uuid로 내 드라이브를 인식하지 못하는 간단한 udev 규칙


0

udev로 udev가 드라이브를 인식하는 데 어려움이 있습니다. 간단한 버전의 문제로 문제를 간략하게 설명하겠습니다. 이 간단한 규칙을 시도하면 (/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}"

해당 uuid가 포함 된 파티션이있는 USB 드라이브를 삽입하면 / var / log / syslog에 메시지가 예상대로 출력되지 않습니다.

그러나 다음과 같은보다 일반적인 명령을 실행하면

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

실제로 텍스트가 / var / log로 출력되는 것을 볼 수 있습니다.

4 월 22 일 18:06:35 xxxxxx 루트 : udev 규칙 성공, 드라이브 : uuid 8eddab0f-de61-4220-bc7f-749665c40758이있는 sdd2

여기에는 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 : 디스크 / ID / ATA-ST1000LM024_HN-M101MBB_S30CJ9CF767710-part2
S : 디스크 / ID / wwn-0x50004cf20d9dfd11-part2
S : 디스크 / 경로 /pci-0000:00:14.0-usb-0:3:1.0-scsi-0:0:0:0-part2
S : 디스크 / uud / 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 = 파티션
[...]
E : ID_FS_TYPE = ext4
E : ID_FS_USAGE = 파일 시스템
E : ID_FS_UUID = 8eddab0f-de61-4220-bc7f-749665c40758

또한 USB 드라이브를 연결하면 dmesg다음과 같이 읽습니다.

[551.257166] sd 12 : 0 : 0 : 0 : 연결된 scsi 일반 sg4 유형 0
[551.257410] sd 12 : 0 : 0 : 0 : [sdd] 디스크 회전 중 ...
[552.260087] .. 준비
[553.264377] sd 12 : 0 : 0 : 0 : [sdd] 1953525167 512 바이트 논리 블록 : (1.00TB / 932GiB)
[553.264382] sd 12 : 0 : 0 : 0 : [sdd] 2048 바이트 물리 블록
[553.438972] sd 12 : 0 : 0 : 0 : [sdd] 쓰기 방지가 해제되었습니다
[553.438979] sd 12 : 0 : 0 : 0 : [sdd] 모드 감지 : 4f 00 00 00
[553.439367] sd 12 : 0 : 0 : 0 : [sdd] 캐시 쓰기 : 활성화, 캐시 읽기 : 활성화, DPO 또는 FUA를 지원하지 않습니다
[553.450360] sdd : sdd1 sdd2
[553.452429] sd 12 : 0 : 0 : 0 : [sdd] 연결된 SCSI 디스크

마지막으로 다음을 fdisk -l제공합니다.

디스크 / dev / sdd : 931.5 GiB, 1000204885504 바이트, 1953525167 섹터
단위 : 1 * 512 = 512 바이트의 섹터
섹터 크기 (논리 / 물리) : 512 바이트 / 4096 바이트
I / O 크기 (최소 / 최적) : 4096 바이트 / 33553920 바이트
디스크 라벨 유형 : dos
디스크 식별자 : 0x709da5d9

장치 부팅 시작 엔드 섹터 크기 ID 유형
/ dev / sdd1 2048 102402047 102400000 48.8G b W95 FAT32
/ dev / sdd2 102402048 1953523711 1851121664 882.7G 83 Linux

답변:


1

먼저 UUID를 학습하는 기본 제공 규칙 이후에 규칙을 실행해야합니다 .

예를 들어 Mine은 /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)

udev 규칙에서 UUID 사용 을 읽고 / media / $ UUID에 usb 드라이브 마운트를 통해이를 파악했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.