2010-02-28 04:26:57 +0000 2010-02-28 04:26:57 +0000
79
79

是否可以将虚拟机转换为物理环境?

是否有可能将.VDI文件转换为.iso文件,可以刻录到CD或DVD上,并使其像安装程序一样。或者是否可以将虚拟机转换为物理环境?

答案 (6)

64
64
64
2010-02-28 05:50:22 +0000

您可以使用VBoxManage工具将VDI转换为磁盘镜像。这个命令 克隆一个注册的虚拟磁盘镜像 到另一个镜像文件。如果你想把你的虚拟磁盘转换为其他格式,这是官方的VirtualBox工具[*]。

VBoxManage clonehd file.vdi output.img --format RAW
  • 如果你使用的是动态VDI,而且你的VirtualBox版本较旧,clonehd可能无法正常运行。VBoxManage 的 internalcommands 工具包括 converttoraw,它可以将动态 VDI 转换为原始磁盘映像 source )[+]。
VBoxManage internalcommands converttoraw file.vdi output.img

But……那个输出的IMG文件不是ISO映像,安装的操作系统不会被配置为从可启动的CD/DVD中运行。你可以把IMG “刻录"(写入)到硬盘上,它可能会在裸硬件上启动(例如不在虚拟机中)。但也可能不是,因为安装在IMG上的操作系统希望看到VirtualBox提供的虚拟硬件,而你在它不希望看到的真实硬件上启动它。

某些版本的Windows不能很好地处理这种情况;某些Linux发行版则可以。有时可以对操作系统进行配置(事前或事后),将其从一个环境迁移到另一个环境,但具体步骤完全取决于被迁移的操作系统。


在Windows上,你可能需要指定程序的完整路径。

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

C:\Program Files\Sun\VirtualBox添加到你的PATH中,以使用简版。


[*] 我假设”–format RAW"选项会转换为标准的磁盘镜像,就像你在物理硬盘上使用dd命令一样。但老实说,我还没有找到任何文档来支持这一点,所以请注意这可能不正确。

[+] 我刚刚在VirtualBox 3.1.2下测试了两个命令。根据md5sum,两个输出文件都是相同的,但我还没有完全测试输出文件。

也请参见VirtualBox论坛的“All about VDIs”教程

21
21
21
2012-09-26 19:57:00 +0000

如果你的VDI文件包含分区,而你只想提取其中一个分区,请使用以下方法。

首先,正如quack quixote之前说的,把VDI文件转换成一个原始图像文件。

# VBoxManage clonehd file.vdi file.raw --format RAW

然后为图像设置一个循环设备。

# loopdev=$(losetup --show -r -f file.raw)

使用kpartx为原始文件中的每个分区创建设备。

# apt-get install kpartx
# kpartx -a $loopdev

看看我们现在有哪些设备。在这个例子中,只有一个设备,因为在原始映像中只有一个分区。

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

现在挂载它来验证一切是否正常。

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

使用dd复制分区内容到另一个目标分区。

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

完成后再次删除设备映射:

# kpartx -d file.raw

使用dd复制分区内容到另一个目标分区:

0x1&

13
13
13
2010-02-28 09:20:53 +0000

答案是肯定的,如果你的主机和客机系统是Linux的话。它是用qemuTKLPatch的包来完成的。你可以同时使用VDI或VMDK文件。

阅读更多。

5
5
5
2015-09-07 08:44:17 +0000

我尝试了接受的答案VBoxManage clonehd file.vdi output.img --format RAW,但没有太大成功。

我在Windows 7主机上使用Windows 8.1虚拟机的方法是这样的。

1.在VirtualBox中制作一个Windows 8. 1的机器,安装并使用,就像通常使用虚拟机一样。 2. 将Virtual Box .vdi硬盘转换为Windows VHD VBoxManage clonehd source.vdi target.vhd --format vhd 3. 3. 将 VHD 挂载到主机 Windows 机器中 作为驱动器(您可以在计算机管理中的磁盘管理器中挂载 VHD。 4. 克隆VHD(挂载为驱动器)到另一个新的硬盘(在我的例子中是一个USB连接的笔记本硬盘) DriveImage XML 或类似的磁盘克隆工具。你现在基本上已经把虚拟硬盘.VDI克隆到裸机上了。 5. 将新的硬盘安装在一台机器上。(在我的例子中,交换笔记本硬盘) 6. 插入一个Windows 8.1的安装USB/CD,从它启动,选择高级选项和自动修复。自动修复会使新硬盘可以启动。 7. 用克隆的Windows 8.1从新硬盘启动,并运行Windows更新。这将为您的计算机硬件下载驱动程序,这些驱动程序是您在VirtualBox中运行Windows时不知道的。如果有缺失的驱动程序,您必须手动安装。 8. 卸载VirtualBox Guest Additions。选择安装VirtualBox,这样你的裸机Windows 8.1就可以成为VirtualBox主机了。

3
3
3
2012-08-17 14:17:56 +0000

我做这个过程的速度非常快,在Linux中只需要两行命令:

#VBoxManage internalcommands converttoraw your/disk/virtual.vmdk your/disk/virtual. img

OR

#VBoxManage internalcommands converttoraw yourdisk/virtual.vdi yourdisk/virtual.img

# mv your_disk/virtual.img your/disk/virtual.iso

我的全文。 http://www.previsioni.com.br/jailsonjan/?p=389

0
0
0
2016-10-18 09:31:03 +0000

使用以下命令进行转换。

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

下面是输出结果:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c