Virtualbox,合并快照和基础磁盘


9

我有一个虚拟机,在分支机构中有大约30个快照。当前的开发路径是22个快照加上基础磁盘。文件数量似乎正在影响IO和我正在使用的开发笔记本电脑(不知道主机磁盘性能问题是140GB总大小超过很多片段,还是仅仅是因为它是击中分布在很多文件中的扇区)。

我想将快照的当前开发分支与基本磁盘合并,但我不确定以下命令是否会产生正确的结果。程序完成后(5-6小时),我无法启动此磁盘。

vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal

任何人都可以确认这是否是正确的方法?


要添加一些信息,我得到的错误不是VirtualBox错误,而是来自Windows的启动错误。它想启动启动修复,但由于我不知道错误,我不知道修复。启动窗口通常会导致漫长的等待和蓝屏。这是预期的还是我在克隆磁盘时使用了错误的方法?
Henrik 2010年

我已经在您的问题中使用了VBoxManage(在Windows主机上,Ubuntu来宾)并且它确实将快照合并到单个输出磁盘映像中
Chaulky

1
是的,这是一种正确的方法。最好只指定源UUID而不是文件名,然后您确定VBox将能够解析附件。
rustyx 2013年

Answers:


7

您要执行的操作是从快照对话框中选择要将所有快照合并到单个VDI的父快照。

根据您的描述,这听起来像是树的根。

右键单击并选择“删除快照”。

这将做你想要的 - 它将所有子快照的所有更改合并到一个VDI中。

此外 - 克隆最新快照中的磁盘映像 - 还会将差异磁盘与其父级(及其父级,依此类推)合并,直到达到“正常”硬盘类型。

我怀疑'删除快照'会运行clonehd命令。

检查您的VM设置(特别是启用/禁用IO APIC)并确保它们匹配。


我想这是目前唯一的方法,但这是一个手动,耗时,多点GUI的方式来做到这一点。
亨利克2010年

3

如果您只想保留一个快照,请将其设置为当前状态,然后导出VM并重新导入它。导出的设备不会保留其快照历史记录。

或者您可以使用此vboxmerge.py脚本来处理合并。鉴于您拥有的快照数量,我希望导出/导入周期更快。


2

这是一种技术(在VirtualBox 4.3.4上测试),它使用'Clone'命令将所有快照合并并压缩到包含单个VDI文件的新VM:

  1. 重命名VM,以便您可以将其当前名称重用于克隆VM(您可以从“常规”设置的“基本”选项卡中更改VM名称)。

  2. 右键单击VM并运行“克隆...”命令:

    • 将名称设置为VM的原始名称。
    • 接受剩余的默认值,即克隆类型:'完全克隆'; 快照:'当前机器状态'。
  3. 删除旧VM(右键单击VM并运行“Remove ...”命令)。


0

如果您的主机是Windows,或者您可以从Windows访问VHD文件,那么可以将所有更改合并到父级,祖父级等中。

它使用的是DiskPart工具和两个命令:

select vdisk file="whatever your file is, with full path"

merge vdisk depth=#

其中#是要移动的层次结构级别数,1表示dirent parent,2表示grand parent,等等。

它就地完成,比克隆等耗时少得多。

请记住,在合并之后,可以删除所有中间VHD(它不会为您删除它们)并且不要忘记将您合并的父级附加到VirtualBox中。

例:

Disk3.vhd是Disk2.vhd的子项,Disk2.vhd是Disk1.vhd的子项

如果你想在Disk1.vhd上更改Disk3.vhd的所有更改,只需使用depth=2并选择Disk3.vhd。如果你想在Disk1.vhd上更改Disk2.vhd的所有更改,只需使用depth=1select Disk3.vhd。

另外请记住,不需要丑陋的VirtualBox快照,您可以使用DiskPart create vdisk命令从现有磁盘创建差异磁盘(也可以是差异磁盘等),也可以创建一个巨大的树。

对于所有其他:海报使用的是VHD(不是VDI),因此可以使用DiskPart和Disk Managment等本机工具访问Guest中的磁盘(如果主机是Windows,则在主机上)。

对你来说,海报:记住总是在Merge之前有一个完整的BackUp,VirtualBox克隆不起作用,它创建一个新文件(写入时复制),但DiskPart合并到位(修改文件,不要创建)一个新的)。

希望自VHD / VHDX正在使用以来可以提供另一种不同的方法(对VMDK,VDI等无效,仅适用于Windows Host)。

注意:Windows 7和Up,XP和Vista可以使用外部M $工具安装VHD,但DiskPart在XP和Vista上没有VHD支持...所有这些也适用于Windows HOME版本(7和Up),不需要服务器版。

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.