如何为Virtualbox设置USB?

我正在使用Ubuntu Maverick和Virtual Box 3+。我有Windows 7 Ultimate。问题是它在Windows 7中无法检测到USB驱动器,但USB外设(鼠标+键盘)可以正常工作。
我按照这些说明进行操作,但我找不到用户组vboxusers。我该如何继续?我还想升级到最新版本,而不会有任何风险(不会丢失我的虚拟硬盘驱动器)。

你安装的Virtualbox是从软件中心下载的吗? - belacqua
3关于你的第二个问题,关于升级的那个,你应该看一下这个链接:http://askubuntu.com/questions/19268/how-to-upgrade-virtualbox-to-latest-version - Yi Jiang
是的,我通过软件中心安装了。 - kst
请点击此链接, 点击此链接 - akwal - akwal
10个回答

1. 安装扩展包

另请参阅:如何安装来自Oracle的VirtualBox版本以安装扩展包?

在从Ubuntu存储库(VirtualBox > 4.x)安装的版本中,支持USB 1.0

对于USB 2.0USB 3.0,我们需要安装免费(但闭源)的VirtualBox扩展包(而不是“平台包”)从VirtualBox下载页面下载。如果您已经从存储库安装了VirtualBox,则必须确保选择适用于VirtualBox正确版本的扩展包。您可以在帮助 > 关于VirtualBox菜单中查看已安装VirtualBox的版本。为了定期更新和修复错误,建议从Oracle存储库安装最新的VirtualBox版本

所有虚拟机在安装扩展之前都需要关闭电源。

2. 成为主机(本地机器)中的“vboxuser”

为了能够访问附加的 USB 设备,Ubuntu 主机用户需要在 vboxusers 组中。通过运行以下命令将您的用户添加到此组中。

sudo usermod -aG vboxusers <username> 

然后重新启动或注销/登录。

3. 在VirtualBox管理器中激活USB支持

关闭虚拟机并在VirtualBox管理器中打开USB设置。勾选启用USB控制器USB 2.0 (EHCI) 控制器USB 3.0 (xHCI) 控制器

如果这些设置被禁用,您需要关闭虚拟机

enter image description here

4. 选择主机USB设备以供客户端访问
为了授予USB设备的访问权限,我们需要选择一个设备在主机中进行禁用,并在客户端中进行启用(这是为了避免主机和客户端同时访问)。可以通过面板上的“设备”菜单或在VirtualBox管理器底部面板上右键单击USB图标来完成此操作。

enter image description here

在客户端中选择您需要的设备,如果您需要在主机中使用它,请取消选择。如果您在列表中看不到您的USB设备,则意味着VirtualBox无法访问您的主机USB设备。请确保您的用户已添加到“vboxusers”组,并且您已重新启动主机。
所选设备将立即从客户端访问。Windows客户端可能需要额外的驱动程序。
  • Windows 7需要附加驱动程序以支持USB 3.0。
  • Windows 10不接受NTFS格式的USB闪存驱动器。

enter image description here

[可选] 在客户机中使用USB过滤器以实现永久访问
通过定义USB过滤器,我们可以定义在客户机操作系统启动时自动呈现给客户机的USB设备。

enter image description here

点击右侧的绿色+符号来添加已知设备。
请注意,某些设备可能导致虚拟机启动失败。我们不能将这些设备用于过滤器。
VirtualBox用户手册中了解更多关于USB支持的信息。
还可以参考:VirtualBox中USB设备的正确值是什么

也许现在评论有点晚了,但是我正在Ubuntu 14.04中使用VirtualBox 4.3.14,你提供的添加用户到vboxusers组的命令(sudo usermod -aG vboxusers <username>)不起作用。相反,在提供选项时需要做一个小改变。我使用了-a -G而不是-aG来使其正常工作。 - learner
5@learner 这很奇怪,因为当作为选项传递给 usermod 时,-aG-a -G 应该具有相同的效果。有可能是你第一次没有注销并重新登录,但第二次做了吗? - Eliah Kagan
@EliahKagan 这已经过去了很多个月,所以我忘记了。但是你的解释是合乎逻辑的,所以可能是我第二次登出并重新登录了。 - learner
3这可能需要更新,vb 5.x 现在已经发布。 - Karl Morrison
这为我解决了一个问题,即在使用Vagrant时,如何定义正确的USB控制器来兼容只支持USB1.0的设备。Vagrant是一个VirtualBox配置工具。关键在于USB1.1对应的是ohci,USB2.0对应的是ehci,而USB3.0对应的是xhci。谢谢! - domih
安装扩展包时不提示将用户添加到vboxusers组,这真是太疯狂了。我每5-6年才安装一次VirtualBox。这已经让我吃过亏并浪费了我时间,这已经是第二次了。谢谢你的答案。 - T.J. Crowder
确保您的用户被添加到vboxusers组:虽然这对您来说很明显,但我在这里遇到了障碍。怎么做呢?是在主机还是在客户机上?一点头绪都没有。 - UserX
1@UserX 这将是我回答的第二步。 - Takkat
我一开始不明白为什么这个不起作用,直到意识到我忘了加上“重新启动或注销/登录”。谢谢。 - Harm
哎呀!"vboxusers" 组……为什么他们没把它写在 USB 窗口附近呢?只需要一个小问号和帮助链接就足够了。 - Alexander C

  • 安装gnome-system-tools,因为在11.10上默认情况下不提供旧的用户和组GUI界面。

    sudo apt-get install gnome-system-tools
    
  • 安装完成后,从启动器中打开用户和组

  • 选择您的用户名,点击管理组,然后选择vboxusers并点击添加

enter image description here

注销/登录以在VirtualBox中使用USB。

4我有一个主机Ubuntu和一个客户机Ubuntu。最重要的是在主机上进行操作,而不是在客户机上,并且还需要安装Virtualbox扩展包,除了客户机附加组件(这样可以节省一小时的时间和烦恼)。 - enthusiasticgeek

vboxusers将出现在/etc/group文件中。您可以使用类似nano的编辑器进行编辑。 sudo nano /etc/group 将您的用户添加到vboxusers行中,如果需要的话可以创建一个新的。
正如Takkat所指出的,为了获得完整的USB设备支持,您需要安装Virtualbox的完整版本(而不是OSE)。
我为“官方”Virtualbox准备的ppa在这里:
/etc/apt/sources.list.d/virtualbox-offical-source.list:  
deb http://download.virtualbox.org/virtualbox/debian maverick contrib #VirtualBox Offical Source

1+1 for ppa. 我更喜欢链接到下载页面,因为最近deb链接经常变动 ;) - Takkat
一个命令更简单/更安全,不是吗?sudo usermod -aG vboxusers # <username> - sam boosalis

在Ubuntu 16.04 LTS中,完成初始安装后,
sudo apt install virtualbox virtualbox-guest-additions-iso

我还必须:
sudo usermod -a -G vboxusers $USER
sudo apt install virtualbox-ext-pack

然后我可以在机器设置中启用USB 2/3支持。
virtualbox-ext-pack实际上的作用是从http://download.virtualbox.org/virtualbox下载所需的文件,并在安装之前提示您接受许可证。

除了这个答案以外,没有其他方法对我有用。这个包很有用 $ sudo apt install virtualbox-ext-pack - Pratik Saluja
sudo apt install virtualbox-ext-pack 像魔法一样顺利地运行了! - Rodrigo Almeida

我曾经遇到过同样的问题。在尝试了所有其他解决方案之后,我意识到了我的问题所在。
我从Ubuntu软件中心下载了VirtualBox,但它没有最新版本的VirtualBox,因此我不小心下载了错误版本的“Oracle VM VirtualBox Extension Pack”。
解决方案:
  1. 打开VirtualBox,单击帮助,单击关于,找到您的VirtualBox版本号。
  2. 转到https://www.virtualbox.org/wiki/Download_Old_Builds_4_3(将“4_3”替换为您的版本)。
  3. 下载与您的VirtualBox版本匹配的“扩展包”。
  4. 安装它,可能会询问您是否要降级,请单击是。
对我来说有效。

我遇到了同样的问题,并通过点击我的用户的VirtualBox组来解决它。您可以通过安装gnome-system-tools(它不随Ubuntu 12.04 Precise Pangolin一起提供)来访问它,可以通过Ubuntu软件中心、Synaptic或在终端中输入命令来安装。
sudo apt-get install gnome-system-tools

记住,在终端中粘贴时,你需要使用 Ctrl+Shift+V,而不是 Ctrl+V
安装过程中可能需要输入密码,并在完成安装软件包后添加一个 Y(表示是)。
然后,你需要前往Dash主页并输入"users"。你会看到两个应用程序,其中一个是用户和组
接下来,你需要点击高级设置以进入你的用户账户并输入密码。
现在,你将看到一个有三个选项卡的窗口。点击用户权限。找到一行上写着使用Virtualbox虚拟化解决方案,然后点击确定

Change user group privileges

你可能会被要求再次输入密码。然后点击关闭,注销并重新登录。
当你启动VirtualBox时,你应该看到一堆新的USB设备。
祝你好运!

如果您以root身份列出USB设备,但作为普通用户(尽管属于vboxusers组),则可能与监视文件的限制有关。
您需要增加程序允许监视的最大文件数(inotify)。如果您有一个同步文件的客户端(如dropbox、seafile等),可能会达到限制,导致无法列出USB设备。这被报告为一个错误问题here
编辑/etc/sysctl.conf并将限制增加到524288。可以按照here中提到的方法进行操作,就像这样:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

USB设备应该在用户或root权限下显示出来:
VBoxManage list usbhost

对于我来说,在Kubuntu 16.04上(通过apt安装的virtualbox 5.0.24-dfsg-0ubuntu1.16.04.1),我之前使用过带有USB透传功能的VirtualBox。然而,我不再是virtualbox组的成员(通过cat /etc/group | grep vboxusers检查),所以我使用kdesudo kuser添加了自己(也可以使用sudo usermod -a -G virtualbox $USER)。
然后,我需要注销并重新登录以使用新的组列表并授权我的访问权限。
现在,当执行VboxManage list usbhost时,它会返回USB设备,而不仅仅是"none";在VirtualBox的设置中,我可以选择连接的USB设备进行透传到虚拟操作系统。太棒了!

我的解决方案如下:
1. 关闭虚拟机 2. 下载正确的扩展包 3. 安装扩展包 4. 启动虚拟机,插入Virtualbox客户附加组件并安装它们。如果已经安装了,请重复安装步骤 5. 关闭虚拟机 6. 在上面的图像中,转到“设置> USB”并启用USB 7. 启动虚拟机 8. 如果不起作用,请重新启动主机系统并重试。对我来说效果很好。 请注意:在安装客户附加组件后,首次启动客户系统时,您将看到所有可选择的USB设备,但是在您勾选它们后,Windows客户端激活这些设备可能需要长达10分钟的时间。请耐心等待。

不是一个答案,而是一个重要细节。

/etc/group 的最后一行很麻烦。

我建议像这样设置,例如:

$ cat /etc/group 
...
vboxusers:x:140:hannu
DUMMY:x:65535:

$

也就是说:任何你希望“工作”的内容都应该出现在最后一行之前。