问题很简单,也很直接:
如何在 VirtualBox 中从 USB 驱动器启动?
编辑:
我已连接usb
到 VirtualBox,如屏幕截图所示。
但即使连接了 USB 驱动器,也无法启动 (参考)。
所以我想知道是否还有其他方法可以从 USB 驱动器启动?
答案1
VirtualBox 本身不支持从 USB 设备启动。要从 USB 设备启动,需要另一个引导加载程序。以下步骤提供了一种可能的方法来实现此目的:
- 下载扑通启动管理器(目前版本 v5.0.15)
plpbt.iso
从 ZIP 档案中提取文件并将其保存在某处。打开虚拟机的设置并附加 ISO 文件:
为 USB 设备添加过滤器:
启动虚拟机并在菜单中选择“USB”选项:
如果一切顺利,机器现在应该从 USB 设备启动。
答案2
编辑:2018 年 3 月 7 日
这里需要注意一点。重新启动时将 USB 驱动器留在计算机中可能会更改/dev/sd
驱动器号指定,从而导致原始usb.vmdk
文件指向错误的驱动器,因此无法在 VirtualBox 中启动。作为测试,我在系统中留下了一个。/dev/sdi
在我重新启动之前是这样的,重新启动后是这样的/dev/sdc
。当您重新启动计算机进行任何更改时,请在重新启动之前移除 USB 驱动器。我正在研究是否可以从驱动器的 UUID 创建原始磁盘,因为这不会改变。
由于 VirtualBox 无法启动到 USB 驱动器,因此您可以创建一个.vmdk
指向 USB 驱动器的文件以便从该驱动器启动。
笔记: 您必须将您的用户帐户添加到vboxusers
组,以便 VirtualBox 能够看到您的 USB。您还必须将您的帐户添加到组disk
,否则您无法将文件添加.vmdk
到虚拟机。在以下位置添加了说明编辑。这也不会将 USB 驱动器复制到硬盘驱动器,而是直接使用 USB。如果您想保留 USB 上的持久性,这会很有帮助。 由于情况并非都相同,因此这可能并不适用于每种情况。
首先,您需要在系统中安装您创建的 USB,并确定物理驱动器是什么。我们假设您的驱动器已安装为/dev/sdb1
。因此,物理驱动器将是/dev/sdb
。
接下来,在终端窗口输入以下内容来创建.vmdk
指向 USB 驱动器的文件:
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
然后你必须重启您的系统以使更改生效。
重启之前:
重启后:
希望这可以帮助!
答案3
我几天前才看到这篇文章。我不想使用 Plop Boot Manager,因为我的 USB 记忆棒已经可以启动了。
因此,我尝试通过创建将 USB 指向 VMDK 磁盘(如 Terrance 的回答)vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb
不幸的是,这不起作用...我chmod
和我chown
的磁盘usb.vmdk
,所以我能够将它连接到虚拟机,但它根本不起作用。
最后,我尝试了另一种解决方案,这个解决方案完美无缺。下面是解决方案(感谢吉安·桑托斯用于研究)
- 插入 USB 驱动器并识别它(我的是
/dev/sdb
,运行 Sabayon Linux); .vmdk
通过以下方式创建磁盘将原始设备(即 USB 驱动器)转换为 VirtualBox 磁盘sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
现在,您已经
usb.vmdk
从可启动的 USB 棒创建了一个磁盘。我还尝试将dd
USB 棒连接到映像文件,然后从映像文件创建磁盘。它和以前的方式(或从映像文件)创建的磁盘.vmdk
一样有效.vdi
现在,授予创建的磁盘权限,以便 VirtualBox 可以访问该文件。这意味着将文件所有者更改为 vboxusers 组中的用户。如果您的 VirtualBox 安装运行正常,那么此所有者可能就是您:
sudo chown `whoami`:`whoami` ./usb.vmdk
现在,你只需将磁盘连接
usb.vmdk
到虚拟机即可。但它必须连接到 IDE 控制器。我试过了,SATA
但没有成功。
至此,你已经没问题了。
只需启动新的 VM,按下F12
并选择可启动驱动器。
享受!
答案4
如果您的 USB 驱动器是 EFI 可启动驱动器,则 Plop Boot Manager 将无法工作,因为它不支持 EFI 启动。在这种情况下,对我有用的是使用 rEFInd 启动管理器(http://www.rodsbooks.com/refind/)。
从以下网址下载 rEFInd 可启动 isohttp://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download并解压缩。
在 VirtualBox 中打开虚拟机设置并附加 rEFInd CD ISO 文件。
确保虚拟机设置中“系统”选项卡中的“启用 EFI(仅限特殊操作系统)”选项已启用。
启动虚拟机,您应该会看到 rEFInd 启动菜单:
将您的 USB 驱动器连接到 VirtualBox。
按退格键刷新菜单或等待几秒钟,驱动器就会出现在菜单中。
选择您的 USB 驱动器并按回车键,您的 USB 驱动器将开始启动。