如何克隆由vmdk文件表示的磁盘?

我在Windows 8.1上安装了VirtualBox。 我已经创build了一个CentOS 7虚拟机,用于加载通过SATA线连接到PC的分离式硬盘的内容。 VirtualBox中的虚拟机将其SATA控制器设置为usb.vmdk 。 实际的usb.vmdk文件非常小,但它加载了一个大的磁盘分区。

如何克隆该磁盘分区的内容,以便我可以在VirtualBox中创build具有与分离的硬盘驱动器中相同的所有数据的虚拟机?

请注意,CentOS 7使用XFS文件系统。

这是创buildusb.vmdk的代码:

 cd %programfiles%\oracle\virtualbox VBoxManage internalcommands createrawvmdk -filename "%USERPROFILE%"\desktop\usb.vmdk -rawdisk \\.\PhysicalDrive# 

编辑:


根据@GeraintJones的build议,我在Windows中打开了磁盘pipe理,得到以下结果:

如果未select驱动器,则单击“ Action > CreateVHD会显示以下对话框:

请注意,硬盘的CentOS 7组件位于磁盘1左侧显示的4个分区中。 (分离的磁盘1是从死机双引导机器中提取的,并且该旧机器的窗口部分位于H:和I:驱动器显示在左边。)

另外请注意新计算机中的CentOS 7虚拟机无法看到外部驱动器。 我已经做了一些工作来寻找它,我认为不试图让VirtualBox虚拟机来做这件事会快很多。

那么如何在上面的打印屏幕右侧显示的磁盘1的CentOS部分创build一个VHD?

有几种方法。

在Windows的磁盘pipe理器中,您应该能够select磁盘并select“创buildVHD”,然后您可以将其导入到VirtualBox。

或者我的首选是分配一个比CentOS虚拟机上的物理驱动器稍大的新VMDK,然后使用dd将驱动器克隆到新的VMDK设备上。

然后,您可以从VM中删除VMDK,并将其附加到您要使用它的VM。

要在现有的CentOS虚拟机上运行sudo fdisk -l并logging输出,应该有一些项目 – 其中之一将是USB HDD

然后在VirtualBox中select连接有USB / SATA磁盘的虚拟机,点击“设置”,然后在存储选项卡上点击带有软盘和加号的图标,然后select“添加硬盘”:

添加磁盘

在下面的对话框中select“创build新磁盘”,然后按照向导(确保您创build的磁盘大于克隆的磁盘

一旦在CentOS VM的控制台中完成,再次运行sudo fdisk -l ,应该列出一个新的设备,它是现在和原来的USB HDD。 您可能必须重新启动虚拟机才能列出。

克隆磁盘do dd if=<usb> of=<newdevice> bs=1M例如dd if=/dev/sda of=/dev/sdb bs=1M

一旦完成closures虚拟机,然后返回到VirtualBox设置中的存储选项卡,并注意位置(突出显示您添加的磁盘,并在右窗格中),然后单击带有红色减号的软盘。 在资源pipe理器中,然后将VMDK移动到您想要的位置。 在新的虚拟机上重复上述过程,但是当您添加新磁盘时,请select“select现有磁盘”