如何在 Linux 中的 Virtualbox 中从 USB 驱动器启动

另一个我试图 使用 Ventoy 创建多重引导 USB 驱动器 在我的 Linux 系统中。 成功创建可启动驱动器后,我向可启动驱动器添加了不同的 ISO。 但问题是每次添加新的 ISO 后我都必须重新启动系统以检查 USB 驱动器是否真的工作。 由于我没有额外的系统,这对我来说似乎有点耗时。 我认为如果我可以在我的 Linux 系统中从 Virtualbox 中的 USB 驱动器启动会更好。 您可能知道,Oracle Virtualbox 不提供任何从 USB 引导的直接方式。 幸运的是,我找到了一个简单的解决方法,允许 Virtualbox 从 USB 闪存驱动器启动。

在 Linux 中从 Virtualbox 中的 USB 驱动器启动

要允许从 USB 驱动器启动 Virtualbox,您需要创建一个 .vmdk 文件并将其指向您的 USB 驱动器以启动它。 对于那些想知道的人,vmdk 文件只不过是一个包含虚拟机所有信息的虚拟磁盘文件。

首先,您需要找到您的 USB 驱动器名称。 请参阅以下指南以了解在 Linux 中查找磁盘驱动器详细信息的不同方法。

  • 如何在 Linux 中查找硬盘驱动器详细信息

我将使用“fdisk”命令来查找我的 USB 驱动器详细信息:

$ sudo fdisk -l

样本输出:

[...]
Disk /dev/sdc: 14.54 GiB, 15597568000 bytes, 30464000 sectors
Disk model: Cruzer Blade    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4d924612

如您所见,我的 USB 驱动器名称是 /dev/sdc.

现在,打开终端并运行以下任一命令来创建 vmdk 文件:

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

在某些 Linux 发行版中,vboxmanage 命令区分大小写。 在这种情况下,请使用以下命令创建 vmdk 文件:

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

上述命令将在您的 $HOME 目录中创建一个名为“usb.vmdk”的新 vmdk 文件。 成功创建 vmdk 文件后,您将看到如下输出:

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

使用 vboxmanage 命令创建新的 vmdk 文件

为新创建的 vmdk 文件设置适当的权限:

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

接下来,使用以下命令将您的用户添加到“vboxusers”和“disk”组:

$ sudo usermod -a -G vboxusers sk
$ sudo usermod -a -G disk sk

将“sk”替换为您自己的用户名。

请注意,将用户添加到“磁盘”组是危险的和安全风险。 现在 移除 USB 驱动器 并重新启动系统以使更改生效。 如果您不移除 USB,则驱动器号的名称可能会在下次启动时更改。 因此,首先移除 USB 并重新启动系统非常重要。

现在打开 Oracle Virtualbox 应用程序并创建一个新的虚拟机:

在 virtualbox 中创建新的虚拟机

Enter 虚拟机名称、操作系统类型和版本,然后单击下一步继续:

Enter  virtualbox中的虚拟机详细信息

Enter virtualbox中的虚拟机详细信息

Enter 内存大小:

Enter  virtualbox中虚拟机的RAM大小

Enter virtualbox中虚拟机的RAM大小

这是 重要的一步. 选择“使用现有的虚拟硬盘文件”选项并单击浏览按钮(向上箭头按钮):

使用现有的虚拟硬盘文件

使用现有的虚拟硬盘文件

单击“添加”按钮选择新创建的 vmdk 文件:

点击

单击“添加”按钮选择新创建的 vmdk 文件

从本地驱动器中选择新创建的 vmdk 文件:

从本地驱动器中选择新创建的 vmdk 文件

从本地驱动器中选择新创建的 vmdk 文件

添加vmdk文件后,点击Choose按钮确认:

确认添加 vmdk 文件

确认添加 vmdk 文件

您现在将看到 vmdk 文件被选为新虚拟机的虚拟硬盘。 单击下一步继续:

vmdk 文件被选为虚拟硬盘

vmdk 文件被选为虚拟硬盘

全部做完! 插入可启动 USB 驱动器并启动虚拟机:

从 Virtualbox 中的 USB 驱动器启动

从 Virtualbox 中的 USB 驱动器启动

现在您可以在 Oracle Virtualbox 中从 USB 引导。 在这里,我正在启动使用 Virtualbox 中的 Ventoy 脚本创建的 USB 可启动驱动器:

在 Linux 中从 Virtualbox 中的 USB 驱动器启动

在 Linux 中从 Virtualbox 中的 USB 驱动器启动

在 Linux 中从可启动的 USB 驱动器创建 ISO

这是在 Virtualbox 中启动 USB 驱动器的另一种方法。 在这种方法中,我们不需要创建 vmdk 文件。 只需使用“GNOME 磁盘实用程序”或“dd”命令从可引导 USB 创建 ISO 映像,如下面的链接所述:

  • 如何在 Linux 中从可启动的 USB 驱动器创建 ISO

创建 ISO 后,打开 Virtualbox 应用程序并转到任何 VM 的设置,然后在“存储控制器:IDE”选项下添加(挂载)这个新创建的 .iso 文件作为光驱。

在 virtualbox 存储控制器中添加 ISO

在 virtualbox 存储控制器中添加 ISO

现在启动 VM,它将从 ISO 映像启动。

请注意,此方法不适用于所有 USB 映像,尤其是多分区 USB 驱动器。