我想全新安装 Ubuntu,然后在测试完 Ubuntu 中应用程序的安装和使用后创建一个映像,用于将系统恢复到全新状态。
但我发现只有克隆,而克隆并不能满足我的要求。我不想克隆我的驱动器。我希望能够运行测试,然后从映像中恢复,这样一切都与我开始测试之前完全一样。
基本上,我需要做的是:安装 Ubuntu 12.04。创建 12.04 的映像并将其存储在其他地方。重新格式化驱动器并安装 14.04。创建 14.04 的映像并将其存储在其他地方。
擦除硬盘并恢复 12.04 映像。安装我正在测试的应用程序以查找问题。擦除硬盘并恢复 12.04 映像。重新安装我正在测试的应用程序以查找其他安装选项中的问题。擦除硬盘并恢复 12.04 映像。重新安装我正在测试的应用程序以查找可能由不同应用程序配置引起的问题。然后重复。然后重复。然后重复。
据我所知,克隆主要用于服务器,以便在发生故障时让您拥有正在使用的磁盘的副本。当它发生故障时,您可以切换到克隆以在修复磁盘的同时保持服务器运行。
我想要成像,因为我需要每个测试的每个起始状态都与其他起始状态相同,这样我才能找出问题所在。如果我在一次测试中开始使用的 Ubuntu 安装与我在另一次测试中开始使用的 Ubuntu 安装有任何不同,则测试无效。
答案1
我用过重做备份,它确实做到了这一点。我已经用 14.04 测试过它,它运行正常。
使用它,会将所有内容恢复到制作映像之前的完全相同的状态。它的妙处在于您无需安装它,您可以使用 Live CD 或 USB。
答案2
您对想要测试的这个“应用程序”不太清楚,因此可能有几种选择。
我能想到的一个方法是使用虚拟机进行测试。为 12.04 创建一个 VM,为 14.04 创建一个 VM。在这些 VM 上安装 Ubuntu。完成后,为每个 VM 创建“快照”。安装您的应用程序并进行测试。当您需要“回滚”到初始状态时,只需恢复快照即可。这非常节省磁盘空间,因为快照仅将更改存储在基本映像之上。
您可以使用 VirtualBox 来实现此目的(http://www.howtogeek.com/150258/how-to-save-time-by-using-snapshots-in-virtualbox/)或 Qemu/KVM(http://wiki.qemu.org/Documentation/CreateSnapshot和http://kashyapc.com/2012/09/14/externaland-live-snapshots-with-libvirt/,后者有一些 Fedora 特定的命令,但主要实用程序 virsh 在 Ubuntu 中可用)。
另一种更轻量级的技术是使用 LXC 容器。它还允许创建“基础”映像并使用增量备份存储(-B overlayfs
运行时lxc-clone
)“克隆”它。测试完成后,可以删除克隆。或者您可以使用临时容器,它也是一个克隆,但它将更改存储在内存中并在停止时自毁。请参阅https://help.ubuntu.com/lts/serverguide/lxc.html#lxc-cloning和https://www.stgraber.org/2013/12/27/lxc-1-0-container-storage/。LXC 容器与成熟的虚拟机并不完全相同,因此它们可能适合也可能不适合您的目的。如果没有关于您的应用的更多信息,我真的无法判断。