您的位置:首页 > 运维架构 > Linux

虚拟机VMware下的UbuntuUSB设备识别问题的解决方法

2012-01-10 21:38 756 查看
http://blog.csdn.net/refluentfish/article/details/6387378


方法一:在Linux下手动挂载U盘
1,先确定u盘的位置:
如果你的Linux操作系统是安装在虚拟机上的,那么首先打开虚拟机进入Linux系统。(注意:首先确认把当前活动界面是定位在Linux系统上的,然后把U盘插到电脑的USB接口上。)
此时,在Linux里以root身份运行#fdisk -l(#号不用输入)命令(或者直接输入命令:#sudo fdisk -l),然后观察命令运行的结果(如下图所示),看看有没有与你的u盘容量、文件系统格式相符的设备符号出来。如果能找到的话,那出来的结果应该和下图类似(图1处为系统为当前虚拟机分配的空间;图2显示的即为所插U盘的容量大小;图3为U盘的硬盘分区文件名:/dev/sdb1 即第二个(b)SCSI硬盘(sd)的第1分区);如果没有找到相符的设备符号,则跳过以下的步骤看下面的方法。~_~

或者第一步也可以这样:在保证当前焦点在Linux操作系统中,在命令终端中先执行#cat /proc/partitions这条命令来查看当前系统中有哪些分区;插上U盘之后再执行#cat /proc/partitions命令来查看多出来什么分区(通常是多出来sda1,由于我的是在虚拟机下装的,所以多出来的是sdb1),所以也可以找到当前U盘的位置即为:/dev/sdb1。

2,创建挂载位置
一般都是挂载在/mnt 文件夹之下,因为mnt文件夹主要存放光盘,软盘等移动存储介质的信息。运行命令#sudo mkdir /mnt/usb,在/mnt目录下新建一个/usb目录。
3,挂载U盘
由第一步的U盘位置和第二步创建的挂载位置就可以执行第三条指令了,

#sudo mount -t vfat /dev/sdb1 /mnt/usb
参数-t vfat指明挂载的文件类型,U盘一般为vfat(文件系统为Fat32格式)格式;如果你U盘的文件系统为ntfs,那么参数改为-t ntfs;如果文件系统为Fat16,那么参数相应改为-t msdos;如果文件系统为ext2,那么参数改为-t ext2。如果执行完命令后不出现提示信息,就说明挂载成功了。
挂载成功后,输入命令#cd /mnt/usb后就可以看到你U盘中的东西了。

4,卸载U盘
#sudo umount /mnt/usb
上面的命令就是卸载U盘的命令,后面的那个路径/mnt/usb就是上面第三步中挂载U盘的位置。(注意在/mnt/usb路径下直接运行这个命令是卸载不了的,要到根目录下或者其他目录下才可以;当执行完这个命令后,你的U盘上的指示灯可能仍然亮着,这不代表卸载失败,因为Linux对U盘的管理是内核模块式,只要usb设备的内核模块没有移除,卸载完后指示灯仍然是亮着的。)

方法二:启动VMware USB Arbitration Service 服务
问题现象:接通虚拟机电源后就会出现下面提示“Host USB device connections disabled.
 The connection to the VMware USB Arbitration Service was unsuccessful.Please check the status of this service in the Microsoft Management Console.”在虚拟机Linux系统下插入U盘也不能被识别。
问题原因:VMware USB Arbitration Service 服务没有启动。
解决方法为:右键我的电脑,点击管理-服务和应用程序-服务,找到VMware USB Arbitration Service,右键点击,启动即可;或者直接在命令行中输入:#net start VMUSBArbService亦可。

方法三:卸载ehci_hcd 模块,加载uhci_hcd 模块。
问题现象:在Linux下查找不到U盘信息,即系统识别不出来U盘。
问题原因:ehci可能和usb2.0支持有关。
解决方法:

1、卸载ehci_hcd 模块,命令 #rmmod ehci_hcd
2、加载uhci_hcd 模块,命令 #modprobe uhci_hcd
然后,插上U盘试试,若U盘不自动出来,用命令fdisk -l 看看是否出现U盘相关的设备还不行的话,把ohci_hcd模块也卸载掉,再次加载hci_hcd模块再试试。
ehci可能和usb2.0支持有关,不知道具体作用。可以参考下面这段话: 
要理解EHCI及其同类是什么,首先要知道每块支持插入 USB 设备的主板或 PCI 卡都需要有 USB 主控制器芯片组。这个特别的芯片组与插入系统的 USB 设备进行相互操作,并负责处理允许 USB 设备与系统其它部分通信所必需的所有低层次细节。
Linux USB驱动程序有三种不同的 USB 主控制器选项是因为在主板和 PCI 卡上有三种不同类型的 USB 芯 片。EHCI驱动程序设计成为实现新的高速USB 2.0 协议的芯片提供支持。OHCI驱动程序用来为非 PC 系统上的(以及带有 SiS 和 ALi 芯片组的 PC 主板上的 USB 芯片提供支持。UHCI驱动程序用来为大多数其它 PC 主板(包括 Intel 和 Via)上的 USB 实现提供支持。只需选择与希望启用的USB 支持的类型对应的"?HCI"驱动程序即可。如有疑惑,为保险起见,可以启用EHCI、 UHCI(两者中任选一种,它们之间没有明显的区别和OHCI。(根据文档,EHCI已经包含了UHCI和OHCI,但根据目前的测试,单独加EHCI是不行的,通常的做法是根据主板类型加载UHCI或OHCI后,再加载EHCI这样才可以支持USB2.0设备)。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息