MacVisor

Snapshots and recovery

Take disk-only or live snapshots, revert safely, clone or export a VM from a snapshot, and see what snapshots cost in disk space.

A snapshot records a VM's disks and settings inside its package. On APFS the disks are cloned copy-on-write, so a snapshot costs almost nothing when you take it. It only grows as the VM changes. On a drive that isn't APFS, or a network share, the disks are copied in full: the snapshot takes as much space as they do, and a live snapshot keeps the VM paused until the copy is done. The New Snapshot sheet says so.

A live VM and snapshots sharing APFS blocks while changed data becomes private.

Disk-onlyLive
RecordsDisks and settingsDisks, settings and memory
On revertBoots from the snapshot's disksResumes exactly where it was
Survives a macOS upgradeYesThe disk part only
Use it forBaselines you keepSave points while you work

Choose disk-only or live. Before a revert, optionally snapshot the current state. A live snapshot resumes its session when macOS can restore it, and otherwise restores the disk for a cold boot. Either kind can also become a new VM.

Live snapshots

Take a live snapshot of a running or paused VM. While it saves, only Power Off is available.

Saved memory needs the virtual hardware it was saved with. Reverting a live snapshot therefore also restores the CPU, memory, disk, network, display and audio settings from that moment. The revert sheet tells you when this applies.

Revert safely

Reverting discards everything since the snapshot. The revert sheet can take a safety snapshot first, and says what goes to the Trash: the VM's disk as it is now, and any disks added since the snapshot, which it lists. On a drive with no Trash, such as a network share, they're deleted, and the sheet says so. The space comes back when you empty the Trash.

A revert puts the VM's settings back to the snapshot's, along with its disks. The VM's name, notes, icon, port forwards, Start at Login, High Availability and template setting stay as they are now, and so do the settings of an AI sandbox, such as its allow list, and what AI agents may do with the VM. A live snapshot reverted onto a template restores only its disk, because a template keeps no running session.

Disk images attached from outside the VM, in VM Settings → Storage, aren't part of a snapshot or of a suspended session, and a revert leaves them as they are. The New Snapshot and revert sheets name them. If a writable one has changed since a live snapshot was taken, reverting restores the snapshot's disk but not its memory: if you chose to resume, the VM boots from the restored disk and MacVisor says why; otherwise it's left stopped. In the same way, a suspended VM whose writable disk image changed meanwhile doesn't resume, at login either: it stays suspended with its session, and the Tasks pane says why. If you no longer need the session, start the VM from its disk, with Start from Disk… or mvz start <vm> --discard-state.

A guest tools disc attached while the VM runs (Attach Guest Tools) is ejected before a live snapshot is saved, and put back afterwards, or when a paused VM is resumed. If it can't be ejected, the snapshot isn't taken. A snapshot records the VM's guest tools settings, not the disc of that run. USB devices attached while the VM runs, and disk images attached as USB drives, are detached before a live snapshot in the same way and attached again once it's saved: the guest sees them unplugged and plugged in. See USB devices.

  • A revert interrupted by a crash or power loss is completed or undone the next time the background service scans the library.
  • A VM can't be reverted while it has linked clones, including one in the Trash or in a storage location you removed. MacVisor names them. Delete them first, from the Trash too.

When a saved session won't restore

A live snapshot restores its memory under the same conditions as a suspended VM: you must be logged in at the Mac with the screen unlocked, and macOS must not have been updated since. If you rely on live snapshots on macOS 27, set disk caching to Automatic in VM Settings → Storage.

When the session can't be restored, MacVisor boots the VM from the snapshot's disks and tells you. If the screen was locked, unlock it and revert again to get the running session back. If two macOS VMs are already running, the reverted VM stays suspended until you resume it. See Run and control VMs.

Clone and export

Clone turns a snapshot into a new VM with its own identity. A clone of a live snapshot boots from its disk, as if after a power cut.

A VM made from a cloud image or a template can be cloned from its snapshots: its disk reads only the template's, which never changes. A linked clone of an ordinary VM, or a VM that was forked, can't, since part of its disk lives in another VM's package: revert to the snapshot and clone the VM itself, or run mvz flatten <vm> first. See Linked clones.

Export… (or mvz snapshots export) saves a snapshot as a VM of its own, in a folder you choose, that you can import on any Mac. It works while the VM runs, and with a snapshot of a layered disk, which is written out as one disk. The export holds the snapshot's disks, settings and firmware, but not its memory (the VM starts as after a power cut), the VM's other snapshots or its logs. Tasks shows its progress and can cancel it. Until it's written, the snapshot can't be deleted or reverted to. Importing it gives the VM a new identity. To back up running VMs this way, see Backups.

To move a VM to another Mac, export the whole VM with mvz export <vm> <folder>. Its snapshots go with it. On import, live snapshots keep their disks but lose their memory, and reverting never brings back the original VM's identity or MAC addresses.

From the command line

mvz snapshots list <vm>
mvz snapshots take <vm> --name "Before update" --notes "Known-good state"
mvz snapshots take <vm> --disk-only --name "Clean install"
mvz snapshots revert <vm> <snapshot> --resume
mvz snapshots delete <vm> <snapshot> [--yes]
mvz snapshots delete <vm> --agent-checkpoints [--yes]
mvz snapshots export <vm> <snapshot> <folder> [--name <name>]
mvz clone <vm> <name> --snapshot <snapshot>

list shows snapshots oldest first, the latest last; list --json gives them newest first, as before, so a script's first entry is the latest. A running VM's snapshot includes memory unless you pass --disk-only. Refer to a snapshot by its id, the first four or more characters of the id, or its exact name.

delete removes a snapshot for good. On a terminal it asks first; in a script, a pipe or an AI agent's shell it needs --yes, and without it exits with status 2 and deletes nothing.

On a terminal, mvz snapshots revert works like the revert sheet. It asks first, naming the VM, the snapshot and any disks that go to the Trash. Then it takes a safety snapshot of the current state, named "Before revert" with the date and time. If the safety snapshot can't be taken, nothing is reverted. --yes skips the question and, as in a script, the safety snapshot. Add --no-safety-snapshot to skip the snapshot only, or --safety-snapshot to take one with --yes or in a script.

Automatic snapshots

MacVisor can take a disk-only snapshot of a VM every hour, day or week while it runs. Turn it on in VM Settings → Backup → Automatic Snapshots, or with mvz set <vm> --auto-snapshots hourly|daily|weekly. It's off by default.

  • When: only while the VM runs, and not in its first 10 minutes. The first comes once the VM has run 10 minutes (within a minute if it already has), the next once an hour, a day or a week has passed since the last automatic one. One missed while the Mac slept is taken at the next chance, once.
  • What: a disk-only snapshot named "Automatic snapshot", with an Automatic badge in the Snapshots tab. On APFS it's an instant clone; reverting to one boots from its disk. A VM on a drive that isn't APFS gets none, since the VM would pause for a full copy, and MacVisor says so in Tasks.
  • How many: the last 24 hourly, 7 daily or 4 weekly ones by default, 1 to 30 (--auto-snapshots-keep). Once there are more, the oldest automatic one is deleted. Your own snapshots are never deleted. A lower number takes effect at the next automatic snapshot.
  • Free space: none is taken while it would leave the VM's drive with less than 20 GB or 5% free, whichever is more. Tasks says so, at most once a day.

Each one is a snapshot task in Tasks, credited to MacVisor. A copy, clone, import or template of the VM starts with automatic snapshots off; a revert leaves the setting as it is. Automatic snapshots live inside the VM, like any snapshot: they aren't backups.

Checkpoints AI agents take

AI agents you let control a VM can take checkpoints of it. They are snapshots with notes saying an agent took it. MacVisor keeps the newest 10 an agent took of each VM and deletes older ones as agents take more; your own snapshots and the safety snapshots taken before a revert are never among them.

To remove all of them at once, click Delete All Agent Checkpoints… in the VM's Snapshots tab, or run mvz snapshots delete <vm> --agent-checkpoints. It asks first, and keeps your own snapshots and the safety snapshots taken before agents' rollbacks.

Snapshot storage

SizeMeaning
LogicalWhat the guest sees
PhysicalBlocks allocated on the Mac
PrivateWhat deleting the snapshot would free

Private size grows as the VM moves away from its snapshots. Delete the ones you no longer need.