Snapshots are useful when you need to revert repeatedly to the same state but you do not want to create multiple virtual machines. With snapshots, you create restore positions in a linear process. You can also preserve a baseline before diverging a virtual machine in a process tree.

You can use a snapshot as a restoration point during a linear or iterative process, such as installing update packages, or during a branching process, such as installing different versions of a program. Taking snapshots ensures that each installation begins from an identical baseline.