题
这就是发生的事情。
我有一个在 Linux 虚拟机中工作的快照。一位朋友请求一个干净的虚拟机作为我的克隆。因此,我关闭/关闭正在运行的虚拟机,制作了 Disk1.vdi 的副本以及快照 ({uuid}.vdi)。然后我重新启动虚拟机并合并快照,删除我的主目录并为我的朋友制作一个 tar+bz2 。
然后,在恢复备份后,我无法安装快照。虚拟机似乎从我的快照之前的版本启动。我似乎无法找到一种方法来安装回我的快照。
知道如何让 VirtualBox 看到快照并挂载它吗?
解决方案
我不是专家,但都不约而同地做了一些调查,只是这个话题。您表示您在进行更改之前备份您的磁盘(VDI和快照),但你做的的不的备份虚拟机本身(XML文件)。所以,你必须通过恢复VDI和快照的改变VM(即仍然认为,只有没有快照合并磁盘)中创建的不兼容。如果没有原始虚拟机文件本身的备份,你可能是出于运气。 (请参阅克隆VM具有多个快照的用于支撑的证据。)
其他提示
您可以恢复快照工作,这很棘手,但可以尝试一下(没有运行虚拟机):
- 打开 VirtualBOX GUI
- 转到管理磁盘
- 从虚拟机中分离主 VDI。
- 将其设置为不可变。
- 从虚拟机重新附加主 VDI
- 退出所有 virtualbox 进程
- 使用 VBoxManage showhdinfo 获取快照 VDI 的 uuid,您要使用的 uuid 不是使主 VDI 不可变时创建的 uuid
- 现在使用文本编辑器编辑 VBOX 文件,并查找创建的快照的路径,以便您知道去哪里删除该小文件,不要关闭文本编辑器
- 删除那个小快照 vdi 文件
- 现在,在文本编辑器上,替换快照的 uuid 和快照 vdi 的路径以指向快照 vdi 文件
- 保存 VBOX 文件并关闭文本编辑器。
对于未来的时代:请记住还要备份 VBOX 文件。
这个技巧是基于让 VirtualBox 创建一个假快照文件(您将手动删除的文件)并用您的快照替换添加到 vbox 文件中的引用,但同时也将快照文件的 uuid 替换为正确的 uuid ,为此您可以使用 showhdinfo 获取它。
请注意,VBOX 文件上的快照 uuid 出现在寄存器(靠近开头)和附加部分(靠近结尾)的部分中,您必须替换这两个部分,您可以使用搜索并用您的 uuid 替换新的 uuid。
希望它对你有用;我从不制作虚拟机的快照,我更喜欢不可变的方式(但这仅适用于一个级别)。
不隶属于 StackOverflow