
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