문맥
기존 dd
공장 이미지 에서 SD 카드 이미징을 자동화하고 있습니다. SD 카드는 항상 외부 USB 카드 리더를 통해 연결되므로 시스템에서 SCSI 블록 장치로 나타납니다 /dev/sd*
.
현재 내 명령의 구문은 다음과 같습니다 write-image DEVICE
. DEVICE
SD 카드 블록 장치는 어디에 있습니까 ? /dev/sdd
.
문제
이미 DEVICE
형식을 확인하기 위해 기본 점검을 하고 /dev/sd*
있지만 충분하지 않습니다. 사용자 (Linux에 익숙하지 않은 프로덕션 사용자)가 실수를하고 다른 유효한 장치를 지정하는 것을 두려워합니다. /dev/sda
. 특히 내 이미징 스크립트에 루트 권한이 필요하기 때문에 어렴풋한 재앙을 볼 수 있습니다 (이미지 자체를 쓰지 말고 기억하고 나중에 SD 카드의 실제 크기에 따라 파티션 크기 조정을 포함하여 SD 카드를 수정해야 함).
질문
시스템 디스크가 실수로 휴지통에 쌓이지 않도록 보호 할 수 있도록 지정된 장치가 실제로 일부 USB 대용량 저장소 (또는 최소한 이동식 장치)인지 확인하고 싶습니다. 어떻게해야합니까?
나는 /proc
웹 에서 또는 웹 에서 관련성을 발견하지 못했습니다 .
답변
/sys/
디렉토리 아래를 살펴보십시오 . 특히에 /sys/block/
장치를 차단하는 심볼릭 링크가 포함되어 있습니다 /sys/devices/
.
/sys/block/sdX/removable
이동식 장치의 경우 1로 표시되고 그렇지 않으면 0으로 표시됩니다. 이것은 제거 가능성에 대한 기본 점검을 제공합니다.
USB 장치인지 확인하는 더 좋은 방법이 있는지 확실하지 않지만
readlink /sys/block/sde
과 같은 것을 뱉어냅니다 ../devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1.2/6-1.2:1.0/host7/target7:0:0/7:0:0:0/block/sde
. usb*
폴더가 포함되어 있는지 확인하면 간단한 확인으로 작동 할 수 있습니다.
에서 공급 업체 및 모델과 같은 다른 장치 세부 정보를 얻을 /sys/block/sdX/device/
수도 있습니다.