问题描述
问题很简单明了:
如何从VirtualBox中的USB驱动器启动?
编辑:
我已将usb
附加到VirtualBox,如屏幕截图所示。
但即使连接了(reference),也无法从USB驱动器启动。
所以我想知道是否还有其他可能从USB驱动器启动?
最佳解决方案
VirtualBox本身不支持从USB设备启动。要从USB设备启动,需要另一个引导加载程序。以下步骤提供了一种实现此目的的可能方法:
-
下载Plop Boot Manager(当前v5.0.15)
-
从ZIP存档中提取文件
plpbt.iso
并将其保存在某处。 -
打开虚拟机的设置并附加ISO文件:
-
为USB设备添加过滤器:
-
启动VM并在菜单中选择”USB”选项:
如果一切顺利,机器现在应该从USB设备启动。
次佳解决方案
编辑:2018年3月7日
这里需要注意的事情。重新引导时将USB驱动器保留在计算机中可能会更改/dev/sd
驱动器号指定,导致原始usb.vmdk
文件指向不正确的驱动器,因此无法在VirtualBox中引导。作为测试,我在系统中留下了一个。在我重新启动之前是/dev/sdi
,重新启动后它是/dev/sdc
。重新启动计算机以进行任何更改时,请在重新启动之前卸下USB驱动器。我正在研究是否可以从驱动器的UUID创建原始磁盘,而不会改变。
由于VirtualBox无法启动到USB驱动器,因此您可以创建一个.vmdk
文件,该文件指向您的USB驱动器以启动它。
注意:您必须将您的用户帐户添加到vboxusers
组以便VirtualBox查看您的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
然后,您必须重新启动系统才能使更改生效。
重启之前:
重启后:
希望这可以帮助!
第三种解决方案
几天前我来到这个帖子。我不想使用Plop Boot Manager,因为我的USB memory 棒已经可以启动了。
所以我尝试通过创建vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb
将USB memory 棒指向VMDK磁盘(如Terrance答案)
不幸的是,这拒绝工作…我chmod
和chown
usb.vmdk
磁盘,所以我能够将它附加到VM,但它根本无法正常工作。
最后,我尝试了另一个解决方案,这个解决方案完美无瑕。这是(感谢Gean Santos的研究):
-
插入USB memory 棒并识别它(我的是
/dev/sdb
,运行Sabayon Linux); -
通过将原始设备(即USB memory 棒)转换为VirtualBox磁盘来创建
.vmdk
磁盘sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
-
现在您有一个从可启动USB memory 棒创建的
usb.vmdk
磁盘。我还尝试将dd
USB memory 棒粘贴到图像文件中,并从图像文件中创建.vmdk
磁盘。它工作,以及以前的方式(或从图像文件)创建的.vdi
磁盘 -
现在,为VirtualBox提供对创建的磁盘的权限,以便访问该文件。它只是意味着将文件所有者更改为vboxusers组中的用户。如果您的VirtualBox安装运行正常,那么您可能是:
sudo chown `whoami`:`whoami` ./usb.vmdk
-
现在,您只需将
usb.vmdk
磁盘连接到虚拟机即可。但它必须附加到IDE控制器。我试过SATA
没有成功。
在这一点上,你没事。
只需启动新VM,按F12
并选择可启动驱动器。
请享用!
第四种方案
最简单的解决方案是将USB密钥的内容复制到iso文件中(好吧,下次我只需要在正确的机器上下载iso,首先不需要USB密钥)
dd if=/dev/sdc of=myusbkey.iso
然后将此.iso添加为VirtualBox设置中的光驱,存储,控制器:IDE(或我猜想是SATA)。
无需制作.vmdk文件,VirtualBox支持.iso文件。
第五种方案
我建议采取以下步骤。
-
打开磁盘。
-
寻找USB。
-
单击此处,在右上角,您将看到一个包含3条平行线的设置图标。
-
单击那里并选择Create Disk Image …
-
选择位置,然后单击“创建”。它将创建一个可以在VirtualBox中使用的.img文件。