我在 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