如何从VirtualBox中的USB驱动器启动?

问题很简单明了:

如何从VirtualBox中的USB驱动器启动?

编辑

我已将usb附加到VirtualBox,如屏幕截图所示。

http://ubuntu.miximages.com/virtualbox/UPZZo.png

但即使连接(参考)也无法从USB驱动器启动。

所以我想知道是否还有其他可能从USB驱动器启动?

VirtualBox本身不支持从USB设备启动。 要从USB设备启动,需要另一个引导加载程序。 以下步骤提供了一种实现此目的的可能方法:

  1. 下载Plop Boot Manager (目前v5.0.15)
  2. 从ZIP存档中提取文件plpbt.iso并将其保存在某处。
  3. 打开虚拟机的设置并附加ISO文件:

    在此处输入图像描述

  4. 为USB设备添加filter:

    在此处输入图像描述

  5. 启动VM并在菜单中选择“USB”选项:

    在此处输入图像描述

如果一切顺利,机器现在应该从USB设备启动。

编辑:2018年3月7日

这里需要注意的事情。 重新启动时将USB驱动器留在计算机中可能会更改/dev/sd驱动器号指定,导致原始usb.vmdk文件指向不正确的驱动器,因此无法在VirtualBox中启动。 作为测试,我在系统中留下了一个。 重新启动之前是/dev/sdi ,重新启动后它是/dev/sdc 。 重新启动计算机以进行任何更改时,请在重新启动之前卸下USB驱动器。 我正在研究是否可以从驱动器的UUID创建原始磁盘,而不会改变。


由于VirtualBox无法启动到USB驱动器,因此您可以创建一个指向USB驱动器的.vmdk文件,以便启动它。

注意:您必须将您的用户帐户添加到VirtualBox的vboxusers组以查看您的USB。 您还必须将您的帐户添加到disk组,或者您不能将.vmdk文件添加到您的虚拟机。 在EDIT中添加了以下说明。 这也不会将USB驱动器复制到硬盘驱动器并直接使用USB。 如果要保留USB持久性,这可能会有所帮助。 并非每种情况都是相同的,因此这可能不适用于所有情况。

首先,您需要在系统中创建USB,并确定物理驱动器是什么。 我们假设您的驱动器安装为/dev/sdb1 。 因此,物理驱动器将是/dev/sdb

接下来,在终端窗口中键入以下内容以创建指向USB驱动器的.vmdk文件:

 sudo vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb 

要么

 sudo VBoxManage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb 

然后你应该看到类似的东西:

 RAW host disk access VMDK file /home/ravan/usb.vmdk created successfully. 

注意:有些人对新创建的文件有所有权问题。 取得新文件的所有权:

 sudo chown $USER:$USER ~/usb.vmdk 

然后,您所要做的就是将.vmdk文件添加到VirtualBox虚拟机,并确保可以启动它。

在此处输入图像描述

编辑:

要将用户添加到vboxusers组,请运行以下命令:

 sudo usermod -a -G vboxusers username 

要将用户添加到disk组,请运行以下命令:

注意:将用户添加到磁盘组可能会带来危险并且存在安全风险。 它与sudo访问写入原始磁盘一样危险。

 sudo usermod -a -G disk username 

然后,您必须重新启动系统才能使更改生效。

重启之前:

在此处输入图像描述

重启后:

在此处输入图像描述

希望这可以帮助!

几天前我来到这个post。 我不想使用Plop Boot Manager,因为我的USB记忆棒已经可以启动了。

所以我尝试通过创建vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb将USB记忆棒指向VMDK磁盘(如Terrance答案)

不幸的是,这拒绝工作…我chmodchown usb.vmdk磁盘,所以我能够将它附加到VM但它根本无法正常工作。

最后,我尝试了另一个解决方案,这个解决方案完美无瑕。 这是(感谢Gean Santos的研究):

  1. 插入USB记忆棒并识别它(我的是/dev/sdb ,运行Sabayon Linux);
  2. 通过将原始设备(即USB记忆棒)转换为VirtualBox磁盘来创建.vmdk 磁盘

     sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk 
  3. 现在您有一个从可启动USB记忆棒创建的usb.vmdk磁盘。 我还尝试将USB记忆棒写入图像文件并从图像文件创建.vmdk磁盘。 它工作,以及.vdi磁盘创建前一种方式(或从图像文件)

  4. 现在,为VirtualBox提供对创建的磁盘的权限,以便访问该文件。 它只是意味着将文件所有者更改为vboxusers组中的用户 。 如果您的VirtualBox安装运行正常,那么您可能是:

     sudo chown `whoami`:`whoami` ./usb.vmdk 
  5. 现在,您只需将usb.vmdk磁盘附加到虚拟机即可。 但它必须附加到IDE控制器 。 我试过SATA没有成功。

具有可引导<code/> usb.vmdk </ code>的VM示例,该示例附加到IDE控制器”> </p>
<p> 在这一点上,你没事。 </p>
<p> 只需启动新VM,按<code>F12</code>并选择可启动驱动器。 </p>
<p> 请享用! </p>

</div><!-- #comment-## -->
<div class=

最简单的解决方案是将USB密钥的内容复制到iso文件中(好吧,下次我只需要在正确的机器上下载iso,首先不需要USB密钥)

 dd if=/dev/sdc of=myusbkey.iso 

然后将此.iso添加为VirtualBox设置中的光驱,存储,控制器:IDE(或我猜想是SATA)。

无需制作.vmdk文件,VirtualBox支持.iso文件。

我建议采取以下步骤。

  1. 打开磁盘。
  2. 寻找USB。
  3. 单击此处,在右上角,您将看到一个包含3条平行线的设置图标。
  4. 单击那里并选择Create Disk Image …
  5. 选择位置,然后单击“ 创建” 。 它将创建一个可以在VirtualBox中使用的.img文件。

我不想以root身份运行Virtualbox。 我不希望我的用户属于磁盘组,拥有对所有磁盘的完全权限。

所以这就是我的工作:

找出记忆棒的内容。 在以下说明中,它是sdc

  • 卸下记忆棒

     su chmod 666 /dev/sdc1 chmod 666 /dev/sdc VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdc chmod 777 usb.vmdk chmod 666 /dev/sdc 
  • 附上usb.vmdk virtualbox机器

     chmod 666 /dev/sdc 
  • 启动virtualbox机器
  • 完成后,重置sdc1安全权限:

     chmod 660 /dev/sdc1 

在上面你可以看到我必须重置几次记忆棒的权限,因为它每次都会被设置回root。

我正在使用Mandriva Linux,但在Ubuntu中应该大致相同