문맥
기존 공장 이미지에서 dd
SD 카드 이미징을 자동화하고 있습니다. SD 카드는 항상 외부 USB 카드 리더를 통해 연결되므로 시스템에는 SCSI 블록 장치로 표시됩니다 /dev/sd*
.
현재 내 명령 구문은 write-image DEVICE
다음과 같습니다. SD 카드 블록 장치는 어디에 있습니까? .DEVICE
/dev/sdd
질문
DEVICE
form 인지 확인하기 위해 기본 검사를 수행했지만 /dev/sd*
충분하지 않습니다. 사용자(Linux에 익숙하지 않은 프로덕션 담당자)가 실수를 해서 유효해 보이는 다른 장치를 지정할까 걱정됩니다. /dev/sda
. 특히 이미징 스크립트에 루트 액세스가 필요하기 때문에 임박한 재난을 볼 수 있습니다(이미지 자체에 쓰는 것이 아니라 SD 카드의 실제 크기에 따라 파티션 크기를 조정하는 것을 포함하여 SD 카드를 수정하는 것에 유의하세요)...
질문
우발적인 손상으로부터 시스템 디스크를 보호할 수 있도록 지정된 장치가 실제로 일종의 USB 대용량 저장소(또는 적어도 이동식 장치)인지 확인하고 싶습니다. 어떻게 해야 하나요?
나는 /proc
온라인에서 그것에 대해 아무것도 찾을 수 없으며 지금은 헤매고 있습니다.
답변1
디렉토리를 살펴보십시오 /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/
있어 유용할 수 있습니다.