udev는 USB 키용 장치 파일을 생성하지만 파티션용은 생성하지 않습니다.

udev는 USB 키용 장치 파일을 생성하지만 파티션용은 생성하지 않습니다.

대부분의 USB 키는 내 시스템에서 작동합니다. 하나를 연결하면 udev전체 키에 대한 장치 파일(예: /dev/uba)과 파티션에 대한 장치 파일(예: /dev/uba1)이 생성됩니다.

udev오작동하는 특정 USB 키(Sandisk Cruzer Micro 2Gb)가 있습니다 . 키에 대한 장치 파일이 생성되지만 파티션에 대한 장치 파일은 생성되지 않습니다.

작동 중인 키와 문제 키 간의 출력 을 비교하면 dmesg문제 키를 사용할 때 누락된 한 줄을 제외하고는 동일합니다 uba: uba1. 이는 mknod디스크 파티션에 대한 노드를 생성하지 않는 것으로 나타납니다.

이상한 건 내가 할 수 있다는 거야...

sudo sfdisk -R /dev/uba

...드라이브 파티션을 강제로 다시 검사하고 갑자기 파티션이 인식되도록 하려면 mknod장치 파일을 생성하고 키에 훌륭하고 멋지게 액세스할 수 있습니다. 일종의 타이밍 문제인가요?

편집하다:

USB 자동 마운트 규칙:

ACTION=="add", KERNEL=="ub[a-z]*[1-9]*", PROGRAM="/sbin/blkid -o values -s TYPE %N", RESULT=="vfat", RUN+="/home/ubuntu/.mount_usb %k %n"
ACTION=="remove", KERNEL=="ub[a-z]*", RUN+="/home/ubuntu/.unmount_usb"

또한: 다시 포맷할 때 문제 키는 기본적으로 FAT16으로 설정됩니다. FAT32로 강제 설정하면 udevadm monitor --property장치 및 파티션에 대해 작업 키와 정확히 동일한 속성이 표시되지만 문제는 여전히 남아 있습니다. 이로 인해 장치 감지 규칙에 문제가 있을 가능성이 적고 장치 자체에 문제가 있을 수도 있다는 생각이 듭니다. 이것이 논리적인 결론인가?

답변1

명명 구조 만 보면 /dev/uba자신만의 UDEV 규칙을 만든 것처럼 들리는데 이제는 제대로 작동하지 않습니다. 도움을 받으려면 해당 코드를 확인해야 합니다.

이미 이 내용을 참고하셨을 거라 확신하지만 만약을 대비해 UDEV 규칙 생성에 대한 이 참조 자료를 참조하세요.http://wiki.debian.org/udev

업데이트에 따른 피드백

ACTION=="추가", KERNEL=="ub[az]*[1-9]*", PROGRAM="/sbin/blkid -o 값 -s TYPE %N", RESULT=="vfat", RUN+= "/home/ubuntu/.mount_usb %k %n"
ACTION=="제거", KERNEL=="ub[az]*", RUN+="/home/ubuntu/.unmount_usb"

전임자는 이 사실을 몰랐던 것 같습니다 usbmount. 이 규칙은 vfat 형식의 드라이브에서만 작동합니다. 이제 해당 목록을 확장하거나... 설치 usbmount하고 조정하여 원하는 장치 이름을 만들 수 있습니다. 그러면 완전한 홈 브루 솔루션에 비해 사소한 구성 변경만으로 유지 관리할 수 있는 것이 있습니다.

그런데, 거기에 구문 오류가 있습니다. 그렇지 않습니다. valueCLI values에서 이것을 실행하면 표시됩니다.

sudo blkid -o 값 -s TYPE /dev/sdb1
vfat

따라서 %N입력은 블록 장치이고 RESULT는 표준 출력입니다. 이에 대해서는 udev 매뉴얼 페이지에 자세히 설명되어 있습니다. 이와 같은 작업을 수행할 수도 RESULT=="[vfat|fat16]"있고, 출력을 스크립트로 전달하여 거기서 더 풍부한 비교를 수행할 수도 있습니다. usbmount 패키지를 잠깐 살펴보면 추가 및 제거 모두에 대한 콜아웃 스크립트에서 풍부한 비교가 수행된다는 것을 알 수 있습니다. 으로 마이그레이션하는 것이 좋습니다 usbmount.

관련 정보