如何从VirtualBox中的USB驱动器启动?
问题很简单明了:
如何从VirtualBox中的USB驱动器启动?
编辑 :
我已将usb
附加到VirtualBox,如屏幕截图所示。
但即使连接(参考)也无法从USB驱动器启动。
所以我想知道是否还有其他可能从USB驱动器启动?
VirtualBox本身不支持从USB设备启动。 要从USB设备启动,需要另一个引导加载程序。 以下步骤提供了一种实现此目的的可能方法:
- 下载Plop Boot Manager (目前v5.0.15)
- 从ZIP存档中提取文件
plpbt.iso
并将其保存在某处。 -
打开虚拟机的设置并附加ISO文件:
-
为USB设备添加filter:
-
启动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答案)
不幸的是,这拒绝工作…我chmod
和chown
usb.vmdk
磁盘,所以我能够将它附加到VM但它根本无法正常工作。
最后,我尝试了另一个解决方案,这个解决方案完美无瑕。 这是(感谢Gean Santos的研究):
- 插入USB记忆棒并识别它(我的是
/dev/sdb
,运行Sabayon Linux); -
通过将原始设备(即USB记忆棒)转换为VirtualBox磁盘来创建
.vmdk
磁盘sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
-
现在您有一个从可启动USB记忆棒创建的
usb.vmdk
磁盘。 我还尝试将USB记忆棒写入图像文件并从图像文件创建.vmdk
磁盘。 它工作,以及.vdi
磁盘创建前一种方式(或从图像文件) -
现在,为VirtualBox提供对创建的磁盘的权限,以便访问该文件。 它只是意味着将文件所有者更改为vboxusers组中的用户 。 如果您的VirtualBox安装运行正常,那么您可能是:
sudo chown `whoami`:`whoami` ./usb.vmdk
-
现在,您只需将
usb.vmdk
磁盘附加到虚拟机即可。 但它必须附加到IDE控制器 。 我试过SATA
没有成功。
最简单的解决方案是将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文件。
我不想以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中应该大致相同