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

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

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

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

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

以下是创建的代码usb.vmdk

cd %programfiles%\oracle\virtualbox

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

编辑:


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

当未选择驱动器时,单击Action > CreateVHD将出现以下对话框:

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

另请注意,新计算机中的 CentOS 7 VM 无法看到外部驱动器。我已经做了一些工作来寻找它,我认为不尝试让 VirtualBox VM 执行此操作会快得多。

那么,如何为上面的打印屏幕右侧显示的磁盘 1 的 CentOS 部分创建 VHD?

答案1

有几种方法。

在 Windows 的磁盘管理器中,您应该能够选择磁盘并选择“创建 VHD”,然后可以将其导入到 VirtualBox。

或者我倾向于分配一个比 CentOS VM 上的物理驱动器稍大的新 VMDK,然后使用dd其中的驱动器克隆到新的 VMDK 设备。

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

要在现有的 CentOS VM 上执行此操作,请运行sudo fdisk -l并记录输出,其中应该有几个项目 - 其中一个是 USB HDD

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

添加磁盘

在以下对话框中,选择“创建新磁盘”,然后按照向导操作(确保您创建的磁盘大于克隆的磁盘

完成后,在 CentOS VM 的控制台中sudo fdisk -l再次运行,应该会列出一个新的设备,现在和原始 USB HDD 是。您可能需要重新启动 VM 才能列出。

要克隆磁盘,请执行以下操作dd if=<usb> of=<newdevice> bs=1Mdd if=/dev/sda of=/dev/sdb bs=1M

完成后关闭虚拟机,然后返回 VirtualBox 设置中的“存储”选项卡并记下位置(突出显示您添加的磁盘及其在右侧窗格中),然后单击带有红色减号的软盘。在资源管理器中,将 VMDK 移动到您想要的位置。在新虚拟机上重复上述过程,但添加新磁盘时选择“选择现有磁盘”

相关内容