是否可以将VMWare vmdk映像文件转换为物理硬盘驱动器?


26

是否可以将VMWare vmdk映像文件转换为物理硬盘驱动器?我知道VMWare 6.5可以直接使用物理硬盘驱动器来获得良好的性能,是否可以将现有的vmdk文件转换为物理硬盘驱动器来获得更好的性能?


1
使用vmdks和物理驱动器之间几乎没有性能差异。
JamesRyan 2011年

@JamesRyan很大程度上取决于配置;如果VMDK位于自己的数据存储区中,那么是的,差别很小;但是,如果数据存储区包含其他VM,则情况会大不相同。
马西莫

@Massimo很好,那么不要将其与其他虚拟机一起使用吗?仍然无需将其转换为物理磁盘!
JamesRyan

Answers:


18

如果您有qemu-img,则应该能够从仅处理图像文件的命令行执行所有这些操作。

qemu-img转换source.vmdk -O raw / target / drive /

这会将vmdk输出的任何原始格式写到物理驱动器。我还不能自己进行测试,但是我认为这可以工作:)


提示:qemu版本1.2.0修复了转换VMDK映像时发生的错误。见serverfault.com/questions/429478/...
埃里克Sjölund

@Alex我有Windows系统,那么如何设置“ / target / drive /”?
Nullpointer

我使用qemu-img 1.4.0,我必须使用qemu-img convert -O raw source.vmdk / target / drive /才能使其工作
zw963

8

有点晚了,但是作为参考,我已经成功了:

  1. 将clonezilla附加到虚拟机
  2. 使用clonezilla磁盘启动虚拟机
  3. 将磁盘映像保存到外部USB驱动器(也已连接到虚拟机)
  4. 使用clonezilla将映像还原到物理磁盘

3

您没有提到正在使用的操作系统,Alex的回答在Windows上不起作用,有人在注释中询问了如何在Windows上执行此操作,因此,方法如下:

您应该使用Cygwin才能使用dd和完成任务。

从此处下载并安装Cygwin:http : //www.cygwin.com/

以管理员身份打开Cygwin终端,然后输入:

cat /proc/partitions

您可以看到所有硬盘及其分区。数字表示分区。

dd if=/cygdrive/driveletter/path/to/vmdk bs=256k status=progress of=/dev/sdX
  • sdX中的X是要写入的驱动器。但是请记住,它与Windows的驱动器号不同。不要混淆它们!

  • status = progress将显示dd的进度行。

  • bs = 256k是块大小(缓存),您可以将bs = 4M用于当今的硬盘,但由于要拧入USB拇指驱动器,因此我使用256k。

注意:请注意,如果源计算机是Windows 10,则dd可能与将VMDK转换为RAW(磁盘)不兼容,此处报告一些类似情况。


如果要确保在Windows上无法在qemu-img上获取更多信息和命令,请访问:https : //cloudbase.it/qemu-img-windows/



2

尝试UDPCast

想法是将整个vmdk从其虚拟机流式传输到物理机,然后将其写入物理硬盘。

程序概述如下。

由于您有一个vmdk文件,因此您甚至可以使用一个VMWare工作站,甚至可以连接此vmdk的完整虚拟机。在连接了此特定vmdk的情况下运行虚拟机,但请使用PartedMagic liveCD进行引导,而不是普通引导。

启动liveCD后,导航至主菜单并找到UDPCast Disk Cloning。其对话框是不言自明的(请参见屏幕截图) UDPCast磁盘克隆开始屏幕

在将此虚拟机选择为之后sender,您应该选择要广播的驱动器(使用Unix表示法,如/ dev / sda)。

启动之后sender,您还需要重新启动receiver。假设您有一个物理硬盘,那么您也将拥有一台完整的PC,并且该硬盘已连接到该PC。同样的事情:您需要UDPCast Disk Cloning选择receiver该时间以及相应的物理硬盘来启动liveCD 。

值得注意的是,您应该进行所有必要的安排,以在虚拟机和物理硬件之间建立网络连接。如果vmdk包含私有数据,则应采取必要的预防措施,因为其内容将通过网络有效地流式传输。另一件事是,目标硬盘的存储容量应不低于vmdk的容量。显而易见,但也值得注意的是,您的映像是一对一地放置在目标硬盘上的,并且您需要使用gparted等执行适当的操作,以利用更大容量的新硬盘。


我要指出的是,此建议是直接且容易实现的,因为唯一的准备工作就是将LiveCD和UDPCast(或足以下载并运行UD​​PCast的任何其他LiveCD)写入任何可启动媒体。更不用说UDPCast对依赖性的要求并不像qemu-img那样高。还有更多:UDPCast可以直接从PXE运行。udpcast.linux.lu/bootloader.html#pxe
PF4Public

1

将驱动器安装在VM中,然后对其进行快照(www.drivesnapshot.de)。然后将原始磁盘挂载到VM中,并将快照还原到磁盘上。这将按部门转移驱动器部门。在Linux中,我认为您可以使用dd做同样的事情。

如今,VMWare中不赞成将物理磁盘用于VM卷吗?

JR


该功能仍存在于Workstation和可裸硬件运行的产品中。但是,您不能以这种方式在VMWare Server或VMWare Player中使用物理分区/磁盘。
David Spillett

2
您可以在VMWare Server 1中很好地使用物理磁盘。我不知道2--我受不了它,也不会使用它。
埃文·安德森

您可以使用任何喜欢的磁盘映像软件。我将经常使用具有自己的启动驱动器的“帮助器VM”,然后挂载源驱动器和目标驱动器。VM具有我通常使用的所有磁盘工具,并且如果您需要不时地执行此操作,将使其变得很容易。
凯文·库帕尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.