我正在运行 Fedora 23 虚拟机。我的要求很简单:
当虚拟机收到关闭信号时,必须卸载在虚拟机运行期间安装的所有软件包。换句话说,当它重新启动时,它应该就像一个新安装的 Fedora VM。
我应该对操作系统/虚拟机进行哪些配置更改才能获得所需的效果?
我认为有一些脚本来记录软件包安装,并在系统启动时将它们标记为删除。是否有现有的 dnf/yum 方法可以做到这一点?
编辑说我需要新安装的虚拟机是一种误导。如果是这样,快照就可以达到目的。我想在虚拟机上保留我的配置更改,例如防火墙规则、网络配置...(基本上是 中的大部分内容/etc
)
答案1
如果我没记错的话,VirtualBox、Gnome Boxes 和 virt-manager 都有快照功能。您可以拍摄新安装的虚拟机的快照,然后在每次会话之前/之后单击一两次即可恢复到该快照。
答案2
qemu
有一个-snapshot
选项就是为了这个。所有磁盘修改都存储在内存中,不会发送到磁盘映像。因此,当模拟器终止时,更改就会消失。
对于大多数虚拟化解决方案,您应该能够拍摄快照并随后将其回滚。
再次使用 qemu,您可以制作一次性qcow2
或qed
磁盘映像文件,仅记录基本映像(甚至像真实磁盘一样的原始映像)的更改:
qemu-img create -o backing_file=/dev/VG_VMs/vm1_disk0 vm1_oneshot.qcow2
当不再需要该文件时,只需将其丢弃,然后创建另一个文件重新开始。如果您愿意,也可以将修改刷新到基础映像。