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

Rav*_*van 89 live-usb virtualbox

这个问题很简单直接:

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

编辑

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

https://i.stack.imgur.com/UPZZo.png

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

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

Nat*_*man 106

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

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

    在此处输入图片说明

  4. 为 USB 设备添加过滤器:

    在此处输入图片说明

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

    在此处输入图片说明

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

  • 我想补充一点,Plop Boot Manager 仅正式支持 EHCI。如果您像我一样,并且尝试将 USB 3.0 驱动器与 Plop Boot Manager 一起使用,它将无法正常工作。您可以尝试使用另一篇文章中提到的方法,但 VirtualBox 似乎也不太喜欢使用来自 USB 3.0 设备的原始 vmdks。如果您的计算机上只有 USB 3 端口,您可以订购一个 USB 2.0 集线器并通过它连接驱动器。它的行为本质上类似于 USB 2.0 驱动器。 (9认同)
  • 它对我不起作用。当我选择 USB 时,我会一直等待他的屏幕。任何的想法?http://postimg.org/image/dv8w83pi3/ (6认同)
  • 这个答案应该包括你必须是 *vboxusers* 组的一部分。 (3认同)
  • 如果将此解决方案与 VMDK 结合使用,您可以获得本机 USB 性能。否则,这只适用于 USB 1.1。 (3认同)
  • 请注意,Plop Boot Manager *不* 支持 UEFI。你真的应该在你的回答中提到这一点,因为想要安装 UEFI-only 操作系统的人(像我一样)必须反过来,即使用 [Terrance's answer](http://askubuntu.com/a/693729/ 676877) 下面。 (3认同)
  • 这绝对是比我更容易的答案。我喜欢!我希望我能投票更多。=) (2认同)

Ter*_*nce 57

编辑:2018 年 3 月 7 日

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


由于 VirtualBox 不会引导至 USB 驱动器,因此您可以创建一个.vmdk指向 USB 驱动器的文件以引导至该驱动器。

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

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

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

sudo vboxmanage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb
Run Code Online (Sandbox Code Playgroud)

或者

sudo VBoxManage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb
Run Code Online (Sandbox Code Playgroud)

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

RAW host disk access VMDK file /home/ravan/usb.vmdk created successfully.
Run Code Online (Sandbox Code Playgroud)

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

sudo chown $USER:$USER ~/usb.vmdk
Run Code Online (Sandbox Code Playgroud)

然后你应该做的就是将.vmdk文件添加到你的 VirtualBox 虚拟机并确保你可以引导到它。

在此处输入图片说明

编辑:

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

sudo usermod -a -G vboxusers username
Run Code Online (Sandbox Code Playgroud)

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

注意:将您的用户添加到磁盘组可能很危险并且存在安全风险。这与拥有写入原始磁盘的 sudo 访问权限一样危险。

sudo usermod -a -G disk username
Run Code Online (Sandbox Code Playgroud)

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

重启前:

在此处输入图片说明

重启后:

在此处输入图片说明

希望这可以帮助!

  • 对我来说效果很好。备注:无需重启,退出/登录即可。一旦进入磁盘组,就不需要使用 sudo。 (2认同)

Mar*_*ini 19

几天前我来到了这个帖子。我不想使用 Plop Boot Manager,因为我的 U 盘已经可以启动了。

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

不幸的是,这种拒绝工作......我chmodchownusb.vmdk盘,所以我可以将它连接到一个虚拟机,但它根本没有工作。

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

  1. 插入 U 盘并识别它(我的是/dev/sdb,运行 Sabayon Linux);
  2. 创建一个.vmdk由盘原始设备(即,USB棒)转换为VirtualBox的磁盘

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在您已经usb.vmdk从可启动的 USB 记忆棒创建了一个磁盘。我还尝试dd将 USB 记忆棒连接到图像文件并.vmdk从图像文件创建磁盘。它可以工作,以及.vdi以前一种方式(或从图像文件)创建的磁盘

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

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在,您只需要将usb.vmdk磁盘附加到虚拟机。但它必须连接到 IDE 控制器。我试过SATA没有成功。

将可引导 <code>usb.vmdk</code> 连接到 IDE 控制器的 VM 示例

在这一点上,你没问题。

只需启动新的 VM,按F12并选择可启动驱动器。

享受!


Dav*_*ure 17

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

dd if=/dev/sdc of=myusbkey.iso
Run Code Online (Sandbox Code Playgroud)

然后在 VirtualBox 设置中添加这个 .iso 作为光驱,在 Storage、Controller: IDE(或 SATA,我猜)下。

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

  • @TroyFolger 实际上,`dd` 命令不适用于标准 ISO,因为 ISO 9660 规范没有描述带有分区表的完整磁盘映像,而是一个“文件系统映像”(参见 [man mkisofs](https:/ /linux.die.net/man/8/mkisofs))。只有具有 MBR 分区表的混合 ISO 才能与磁盘映像合并,从而与 dd 兼容(请参阅 [isohybrid 文档](https://wiki.syslinux.org/wiki/index.php?title=Isohybrid))! (2认同)

小智 5

我会建议以下步骤。

  1. 打开磁盘。
  2. 寻找USB。
  3. 点击那里,在右上角你会看到一个设置图标,它有 3 条平行线。
  4. 单击此处并选择创建磁盘映像...
  5. 选择位置并点击创建。它将创建一个 .img 文件,您可以在 VirtualBox 中使用该文件。


小智 5

如果您的 USB 驱动器是 EFI 可启动驱动器,那么 Plop Boot Manager 将无法工作,因为它不支持 EFI 启动。在这种情况下,对我有用的是使用 rEFInd 启动管理器(http://www.rodsbooks.com/refind/)。

  1. http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/download下载 rEFInd 可启动 iso并解压缩。

  2. 在 VirtualBox 中打开虚拟机设置并附加 rEFInd CD ISO 文件。

  3. 确保启用了“系统”选项卡中虚拟机设置中的“启用 EFI(仅限特殊操作系统)”选项。

  4. 启动虚拟机,您应该会看到 rEFInd 启动菜单:

rEFInd 菜单

  1. 在 VirtualBox 中连接您的 USB 驱动器。

  2. 按退格键刷新菜单或等待几秒钟,驱动器应出现在菜单中。

  3. 选择您的 USB 驱动器并按 Enter,您的 USB 驱动器应该开始启动。