一次性丢弃所有快照的最佳方法

一次性丢弃所有快照的最佳方法

我有一台 VirtualBox VM(主机和客户机都使用 Windows Server 2012)。我在配置一些困难的东西时创建了几个快照:

Before installing OS
 \____ Before installing software A
        \____ Before installing software B
               \____ Before installing software C
                      \____ Testing this
                             \____ Testing that
                                    \____ Current state

现在一切正常,我需要磁盘空间,所以我想丢弃所有快照。我的研究表明,除了逐个删除快照之外没有其他方法,而且速度非常慢。我无法克隆或导出虚拟机,因为它已经使用了 75% 的主机磁盘空间。

我应该从上到下删除还是反之?什么会导致合并速度更快?或者这真的不重要?

答案1

我不知道这是否是最好的方法,但这是最快的方法,并且只有当您想丢弃所有快照并保留当前状态时才这样做。

转到快照,右键单击当前状态,单击克隆,然后选择所有复选框并设置“包括所有网络适配器......”

在此处输入图片描述

在下一个屏幕上选择“完整克隆”

在下一个屏幕上,选择“当前机器状态”并点击克隆

现在您拥有完全相同的机器,没有任何快照。需要删除旧机器

缺点: - 需要在克隆前重命名旧 VM,或在克隆后重命名新 VM。由于您保留了所有 UUID,因此所有 UUID 的工作方式都应该相同,包括命令行自动化。 - 需要额外的空间来暂时使大小翻倍

优点: - 快速自动合并所有快照,因此无需浪费时间逐一删除

答案2

根据经验,我建议只有一种正确的删除快照的方法:从最新快照开始向后移动,一次删除一个。
始终按顺序删除 - 切勿删除“中间”快照。或者更糟的是,最旧/顶层快照。您可能认为 VB 会介入并阻止您犯下这个巨大的错误,但它却很乐意允许这样做。它应该只是在删除之后弹出一条横幅,上面写着“哈哈,你会后悔的!”。
如果您从未弄乱过删除除最新快照和按顺序向后移动之外的任何东西,那么您应该能够删除包括最旧/顶层在内的所有内容。
如果您弄乱了它并删除了中间快照,那么您可能会陷入困境,无法摆脱一切。通常,当您尝试删除时会出现错误,并且您留下了剩余的快照,并且无法删除它们。您需要在任何开始点(安装或导入)重新加载 VM。
请务必注意,每个删除过程可能需要相当长的时间,每个快照可能需要近 10 分钟或更长时间,具体取决于系统大小。

答案3

使用 VirtualBox 7.0 版本,我没有遇到任何中间删除快照的问题。

我中间需要删除大约 15 个快照,我使用以下脚本来执行此操作。

@echo off
:: Rename the following two lines to the correct VM name and executable path.
set VM_NAME="Win10ProWrk64TorrentTest"
set VBoxManageCMD="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

for /F "tokens=* delims=" %%a in (SnapshotsList.txt) DO  (
    Echo Deletting snapshot %%a from VM %VM_NAME%
    %VBoxManageCMD% snapshot %VM_NAME% delete %%a
    Echo *********************************************
)

我将此脚本与一个名为的文件一起使用SnapshotsList.txt,该文件存储了我想要删除的快照的名称。

例子:

"qBitTorrent Installed"
"Increased Resolution"
"Updated VM software"
"After downloading MiniTool Tourent and before MiniTool install"
"Post Minitool Install and other torrent downloads"
"EaseUS Data Recovery Wizard Installed"
"EaseUS Partition Master installed"
"Removed bad DiskGenius installs"
"Removed Failed AOMEI_PartAssist"
"MiniTool Partition Wizard Installed"
"Wondershare Reparit installed"
"qTorrent option changes"
"Before removing Recoverit"

SnapshotsList.txt使用以下命令可以轻松创建该文件:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" snapshot "MyVmNameHere" list --machinereadable >SnapshotsList.txt

编辑文件以仅包含要删除的 SnapshotName。

如果您尝试此操作,请记住对快照名称和虚拟机名称使用双引号。

相关内容