나는 이 주제로 인해 약간 어려움을 겪고 있습니다.
SSD 드라이브가 있는 서버 상자가 있습니다./dev/sda
또한 가끔 카드가 사용되는 CFast 슬롯도 있습니다. 카드는 하드 드라이브로 인식되며 기본적으로/dev/sdb드라이브 문자로 할당되었습니다.
설정을 완료하려면 USB 메모리 스틱이 필요합니다. CFast 카드 존재 여부에 따라 스틱이 다음 위치에 할당됩니다./dev/sdb 또는 /dev/sdc
일부 작동하는 스크립트를 가지려면 /dev/sdc가 있어야 합니다. USB 스틱은 다를 수 있습니다.
그렇다면 하드 드라이브용으로 sdb(CFast)를 예약하거나 USB 스틱을 /dev/sdc 이상에 할당하는 방법은 무엇입니까?
스틱이 수시로 변경될 수 있으므로 fstab의 UUID가 작동하지 않는다고 생각합니다. udev로 작성된 스크립트?
건배 제인
답변1
좋아, 어느 정도 이해됐어.
해결책은 udev입니다. 전화해도됩니다
udevadm info --name=/dev/sdb1 --attribute-walk
엔드포인트에서 루트까지 범주에서 사용되는 모든 속성의 목록입니다.
그런 다음 /etc/udev/rules.d/10-local.rules에 로컬 규칙을 만들었습니다.
이 규칙에는 다음이 포함됩니다.
SUBSYSTEMS=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/bin/usb_load.sh"
SUBSYSTEMS=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/bin/usb_unload.sh"
이벤트를 비교하고 SUBSYSTEMS, ACTION 및 ENV{DEVTYPE}이 일치하면 RUN+=는 저장소에 넣은 2개의 셸 스크립트를 실행합니다. 루트로 실행되므로 권한 문제가 없습니다.
잊지 마요
udevadm control --reload
규칙을 다시 읽으려면
이 솔루션은 규칙에 더 많은 기능이 있으므로 확실히 개선될 수 있지만 현재로서는 저에게 좋은 솔루션입니다. 시간이 지나면 조정하겠습니다.