특정 장치가 USB 대용량 저장 장치인지 확인


10

문맥

기존 dd공장 이미지 에서 SD 카드 이미징을 자동화하고 있습니다. SD 카드는 항상 외부 USB 카드 리더를 통해 연결되므로 시스템에서 SCSI 블록 장치로 나타납니다 /dev/sd*.

현재 내 명령의 구문은 다음과 같습니다 write-image DEVICE. DEVICESD 카드 블록 장치는 어디에 있습니까 ? /dev/sdd.

문제

이미 DEVICE형식을 확인하기 위해 기본 점검을 하고 /dev/sd*있지만 충분하지 않습니다. 사용자 (Linux에 익숙하지 않은 프로덕션 사용자)가 실수를하고 다른 유효한 장치를 지정하는 것을 두려워합니다. /dev/sda. 특히 내 이미징 스크립트에 루트 권한이 필요하기 때문에 어렴풋한 재앙을 볼 수 있습니다 (이미지 자체를 쓰지 말고 기억하고 나중에 SD 카드의 실제 크기에 따라 파티션 크기 조정을 포함하여 SD 카드를 수정해야 함).

질문

시스템 디스크가 실수로 휴지통에 쌓이지 않도록 보호 할 수 있도록 지정된 장치가 실제로 일부 USB 대용량 저장소 (또는 최소한 이동식 장치)인지 확인하고 싶습니다. 어떻게해야합니까?

나는 /proc웹 에서 또는 웹 에서 관련성을 발견하지 못했습니다 .

답변:


10

/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/수도 있습니다.

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