如何从可启动 USB 创建虚拟机?

如何从可启动 USB 创建虚拟机?

我需要使用一个装有 Ubuntu 12.04 和大量自定义内容的实时 USB,然后从中在 Virtualbox 中创建一个虚拟机。我最终实际上希望将此安装升级到 Google Compute Engine,但我想先创建一个本地虚拟机(我知道如何从 Virtualbox 升级到 Google Cloud,但我不知道如何从实时 USB 升级到 Virtualbox)

注意:Remastersys 不再存在,所以这不是一个选项。

我花了大量时间尝试重新开始并重新安装所有内容,但我找不到其中很多版本的内容。这真是一个接一个的问题。

如果您有任何疑问,请告诉我,并提前感谢您的帮助。

注意:我已将驱动器导出为 .img,但即使转换为 .iso 后,virtualbox 仍显示“无可启动驱动器”。(显然引导扇区存在问题。我假设转换后它可能不在正确的位置)

答案1

我假设你使用 Linux 作为主操作系统。插入 USB,执行不是挂载它,然后以 sudo 身份发出以下命令:

     dd if=/dev/sdb of=/path/to/my/UbuntuImage.iso

确保你有正确的设备:我假设安全数据库以上,做不是犯了一个错误,这可能会很危险。

现在创建一个新的 VirtualBox VM,其磁盘至少与异质图像。将两个磁盘插入到新的虚拟机中:一个 Ubuntu Live 映像(用于在 PC 上安装 Ubuntu 的映像之一)和新的异质图像。当然,这需要两个驱动器。

从实时 Ubuntu 映像启动,不是我们刚刚获得的UbuntuImage.iso。选择无需安装即可试用 Ubuntu,打开终端,然后发出命令:

      sudo dd if=/dev/sdc of=/dev/sda

很重要:以上假设 /dev/sdc 是您的 UbuntuImage.iso,而 /dev/sda 是虚拟机的 HDD。换句话说,以上假设您启动的实时 Ubuntu 映像位于 /dev/sdb 上。您必须检查这些假设是否正确,如果不正确,请相应地更改上述命令。如果不这样做,将意味着覆盖现有设备。

完成后,chroot 到 /dev/sda,并将 /etc/fstab 适配到新磁盘。您可能需要更改要安装的磁盘的 UUID 和/或交换空间。

现在离开 chroot,关闭虚拟机,从虚拟驱动器中删除两个 Ubuntu,启动虚拟机:一切就绪。如果出现问题,请发布错误消息。

编辑

抱歉,我的chroot 进入 /dev/sda显然太简洁了。确保您的实时发行版将新创建的磁盘视为 /dev/sda,然后记住原始 USB 记忆棒中的哪个分区包含/(根)目录,说的是。 然后:

       sudo mount /dev/sdaN /mnt
       cd /mount 
       chroot .

这应该可以。要么出口或者Ctrl+D将让你退出 chroot。

答案2

您是否尝试过制作连接到物理 USB 驱动器的 VMDK 文件?这非常简单:

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda

其中:/dev/sda是您的 USB 驱动器。然后将其连接file.vmdk到您的虚拟机。它将像 USB 驱动器的别名一样工作。有关更多详细信息,请查看:https://www.virtualbox.org/manual/ch09.html#rawdisk

相关内容