VirtualBox에서 CentOS 6.3을 실행 중인데 USB 2.0 썸 드라이브가 보이지 않습니다. VirtualBox에서 장치, USB 드라이브로 이동하면 연결된 썸 드라이브를 캡처할 수 있습니다. CentOS에 마운트 지점을 만들었지만 fdisk에 드라이브가 표시되지 않습니다(SDC를 보고 싶습니다). 내가 무엇을 놓치고 있나요?
답변1
USB 썸 드라이브가 sysfs
아래에 나타나며 /sys/block/
이름이 로 지정되어야 합니다 sd*
. 다음은 /sys/block
각 장치가 USB 드라이브인지 확인하는 짧은 스크립트입니다 .
#!/bin/bash
function is_usb_disk()
{
device=$1
is_usb_attached=$(udevadm info --query=property --path="/sys/block/$device" | grep -i "^ID_BUS=usb$")
is_disk=$(udevadm info --query=property --path="/sys/block/$device" | grep -i "^ID_TYPE=disk$")
if [[ -n $is_usb_attached && -n $is_disk ]]; then
return 0
else
return 1
fi
}
for block_device in $(ls /sys/block); do
is_usb_disk $block_device
if [[ $? -eq 0 ]]; then
serial=$(udevadm info --query=property --path="/sys/block/$block_device" | grep "^ID_SERIAL=" | cut -d "=" -f 2)
echo "/dev/$block_device ($serial) is an USB disk."
fi
done
스크립트는 각 블록 장치가 USB 버스에 연결되어 있는지(ID_BUS 속성을 통해) 여부와 디스크인지 여부(ID_TYPE 속성을 통해)를 확인합니다. 장치를 찾았고 둘 다 참인 경우 해당 장치 일련 번호와 함께 장치 노드를 인쇄합니다.
find_usb_disks.sh
예를 들어 실행 권한을 부여하여 파일에 복사할 수 있습니다 chmod u+x find_usb_disks.sh
. 출력은 다음과 같습니다.
/dev/sdb (0204_Flash_Disk_19250701EF6B1E05-0:0) is an USB disk.
아무것도 반환하지 않으면 썸 드라이브가 제대로 "연결"되지 않은 것일 수 있습니다. lsmod
유사한 모듈이 로드되어 있는지 확인하십시오. usb_storage
usb_storage가 로드되지 않은 경우 장치를 분리하고 실행하십시오.
modprobe usb_storage
다시 연결하고 썸 드라이브가 나타나는지 확인하세요. 커널이 장치를 인식하는지 여부를 모니터링하는 좋은 방법은 다음과 같습니다.
udevadm monitor
USB 장치를 분리하고 명령을 실행한 후 장치를 다시 연결하십시오. USB 장치를 연결하면 커널(및 udev) "추가" 작업이 표시됩니다.
디스크에 파티션이 있는 경우 파티션 번호가 장치 노드 이름에 추가됩니다(예 /dev/sdb1
: ). 내 스크립트는 파티션을 찾을 수 없으며 장치가 올바르게 추가되었는지 확인만 합니다.
답변2
이를 위해서는 확장팩을 설치해야 합니다. 이것을 읽어보세요 https://www.virtualbox.org/manual/ch01.html#intro-installing