VirtualBox内でCentOS6.3を実行していますが、USB2.0サムドライブが表示されません。 VirtualBoxで、デバイス、USBドライブに移動し、接続されているサムドライブをキャプチャできます。 CentOSでマウントポイントを作成しましたが、fdiskにドライブが表示されません(SDCが表示されることを期待しています)。何が足りないのですか?
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.
何も返されない場合は、サムドライブが正しく「挿入」されていない可能性があります。 usb_storage
のようなモジュールがロードされているかどうかをlsmod
で確認してください。 usb_storageがロードされていない場合は、デバイスを取り外し、実行します
modprobe usb_storage
もう一度接続して、サムドライブが表示されるかどうかを確認します。デバイスがカーネルによって認識されているかどうかを監視する良い方法は、
udevadm monitor
USBデバイスを取り外し、そのコマンドを実行して、デバイスを再度接続します。 USBデバイスを接続するとすぐに、カーネル(およびudev)の「追加」アクションが表示されます。
ディスクにパーティションがある場合、パーティション番号がデバイスノード名に付加されることに注意してください(例:/dev/sdb1
)。スクリプトがパーティションを見つけられず、デバイスが適切に追加されたかどうかを確認するだけです。
このために拡張パックをインストールする必要があります。これを読んでください https://www.virtualbox.org/manual/ch01.html#intro-installing