我有一个 VirtualBox Windows 7 虚拟磁盘映像 (.vdi) 磁盘。此 .vdi 在启用虚拟化的 64 位计算机上启动我的 32 位 ubuntu 上的 64 位 Linux。
我在这个 Windows 7 客户系统中安装了很多程序。如果系统崩溃且无法恢复,我不想再浪费这么多时间重新安装所有内容。所以,我的问题是:
我关闭了 Windows 7,并将整个 .vdi 映像复制到外部硬盘或外部 USB 大容量存储设备,然后在另一台机器上安装 Linux,并在该机器上安装相同版本的 VirtualBox,然后将 .vdi 映像复制到该机器,然后我可以在该机器上启动它吗?除了 .vdi 映像之外,我是否需要备份其他任何内容以进行正确的备份,以便我可以再次以相同状态启动机器?
假设我为 .vdi 创建 3 张以上的安装 DVD。这些 DVD 需要的空间较少,但需要更多时间来写入 CD,然后在 VirtualBox 中启动 Windows 7 映像。这也能行吗?
如果我使用第 2 部分的 CD,然后使用它们在完全空白的物理硬盘上安装某个版本的 Windows,那么我会遇到什么问题吗?(大概在安装完成后,我必须安装所有特定于机器的驱动程序)。
如果我继续使用 3,那么我也可以在半个分区/磁盘上安装 Windows 吗,或者 Windows 在安装时是否总是删除所有内容,包括安装在分区另一半上的 Linux 操作系统?
如果 4 的答案是否定的,那么有没有办法,任何让 Windows 顺利运行?
答案1
关闭虚拟机并关闭 Virtualbox。转到文件存储的位置,应该是包含 .vdi、.vbox 和一些其他文件和/或日志文件夹的虚拟机名称文件夹。只需继续将整个“您的虚拟机名称”文件夹备份到另一个驱动器。您现在有虚拟机在该时间点的快照。
是的,您也可以只保存 .VDI 文件,然后稍后在向导中创建新 VM 并使用现有驱动器,而不是创建新驱动器,它应该可以启动。不过最好备份所有文件。
如果您想将虚拟机还原到与创建时不同的主机操作系统中,您可能只想在那里创建一个新的虚拟机并将该 .VDI 文件加载为驱动器。虽然我不能 100% 确定其他文件是否跨平台不同,但为了安全起见,我总是这样做。
答案2
这就是将 VDI 移动到其他系统的过程,但如果您不想重新激活 Windows 7,还需要考虑其他一些事项。请参阅以下信息,如VirtualBox 最终用户论坛
问:我想将我的虚拟机移动到其他主机,我该怎么做?
问:我想通过双启动共享我的虚拟机,我该怎么做?
答:VDI 需要位于共享位置,以便如果您想在双启动主机之间共享该文件,两个操作系统都可以读取和写入该文件。
您可以忽略共享位置,因为您正在移动。
在另一个系统上创建新的虚拟机,选择第一个主机上的 VDI 作为硬盘驱动器,而不是创建新的 VDI,并确保每个设置完全相同。虚拟 NIC 的 MAC 地址也需要相同,以避免可能出现的 Windows 激活提示和 Linux 上的新接口名称。
对于 Windows 7,需要执行一个额外步骤以避免重新激活。需要将 VM UUID 从原始 VM 转移到新 VM。打开原始 VM 的 XML 文件并复制 UUID 并将其转移到新 VM XML 文件。在文件开头查找此行:
Machine uuid="{075d42da-6025-4a95-a1d5-57b1f4b09dd7}" name="Windows 7" OSType="Windows7"
大括号中的“哈希”是您需要在新的 VM XML 中复制和替换的 UUID。此更改尚未完成,因为 VirtualBox.xml 文件不知道该 UUID,它仍保留 VM 的旧 UUID。在文本编辑器中打开 VirtualBox.xml 文件(如 machine.xml 文件),查看如下所示的一行并替换 UUID。
<MachineEntry uuid="{075d42da-6025-4a95-a1d5-57b1f4b09dd7}" src="/media/Extern/Virtual Machines/Windows 7/Windows 7.xml"/>
src= 行是您可以识别虚拟机的方式。XML 的实际位置取决于主机和虚拟机位置的配置。默认情况下,它位于用户配置文件文件夹中。
答案3
使用“导出设备”选项。它位于“文件”菜单下。它可以避免使用 UUID 等进行的所有麻烦,并将所有内容保存在一个压缩存档文件或目录中,具体取决于您的选择。
免责声明:我只在 Linux 和 Linux 之间使用过它,但我认为它没有理由不能在 Windows 主机上运行。与往常一样,在测试副本之前不要删除主副本。