cocoon-macos

Snapshot, Clone & Data Disks

Snapshot / restore

cocoon-macos vm snapshot m1 --tag clean
cocoon-macos vm restore  m1 --tag clean   # --force to stop+restore+relaunch a running VM

Snapshots are offline qcow2-internal (qemu-img snapshot, VM stopped) and capture disk state only. Live RAM snapshot is intentionally impossible here: -cpu +invtsc makes the macOS guest non-migratable, so resume-from-RAM can’t work. This is by design (see Roadmap).

Clone

cocoon-macos vm clone m1 -n m2 --ssh-port 2223 --random-smbios

A clone bakes a fresh copy-on-write overlay on the shared base (never on SRC’s per-VM overlay, which would break on vm rm m1) and cold-boots a fresh Apple identity, so two clones never share a serial or MAC. Clones copy SRC’s data disks and can add more; a clone-of-a-clone keeps a correct backing chain.

Data disks (--data-disk)

--data-disk (on run / create / clone) attaches empty qcow2 data disks. It is repeatable with comma-separated key=value:

cocoon-macos vm run <IMAGE> --data-disk size=20G --data-disk name=scratch,size=50G