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 can 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.