Where Does Multipass Store VMs and Data?
Multipass splits data (instance vault) from cache (downloaded images). Default roots differ by OS and daemon privilege.
Last updated
Instance disks, vault records, and daemon state live under a data directory. Downloaded cloud images live under a cache directory. Both move together when MULTIPASS_STORAGE is set.
Linux uses snap common paths, macOS uses /var/root paths because the daemon runs as root, and Windows uses C:\ProgramData\Multipass. Image and instance json files contain absolute paths, so manual moves require editing those records.
Where Multipass stores this, by platform
C:\ProgramData\Multipass\data
Instance vault and daemon data (example: C:\ProgramData\Multipass\data\vault\multipassd-instance-image-records.json and multipass-vm-instances.json). Hyper-V disk paths must be updated in Hyper-V Manager after a move. Override root with MULTIPASS_STORAGE env var.
C:\ProgramData\Multipass\cache
Downloaded images cache on Windows. Safe to clear cache to reclaim space (instances remain but images redownload on next launch). Same MULTIPASS_STORAGE override applies.
/var/root/Library/Application Support/multipassd
Data root on macOS (daemon runs as root, so use sudo ls). Move with sudo mv then symlink with sudo ln -s <newpath> /var/root/Library/Application\ Support/multipassd. Records contain absolute paths and need path updates after a move.
/var/root/Library/Caches/multipassd
Image cache on macOS. Reported alongside data paths in Multipass storage docs. Inspect with sudo, and set MULTIPASS_STORAGE or symlink to relocate.
/var/snap/multipass/common/data/multipassd
Data root on Linux snap installs. Vault instances under vault/instances. Custom storage must be in $HOME or /mnt or /media due to snap confinement, plus sudo snap connect multipass:removable-media for /mnt or /media.
/var/snap/multipass/common/cache/multipassd
Image cache on Linux. Move pattern is sudo cp -r /var/snap/multipass/common/data/multipassd <new>/data and .../cache/multipassd <new>/cache, with systemd override Environment=MULTIPASS_STORAGE=<new> plus path edits in multipass-vm-instances.json.
Frequently asked questions
How do I relocate Multipass storage?
Stop the daemon, copy data and cache to the new root, set MULTIPASS_STORAGE to that root (systemd override on Linux, symlink on macOS, system env var on Windows), update absolute paths in vault json and Hyper-V settings where needed, then start the daemon.
Can I delete cached images without deleting VMs?
Yes. Remove contents of the cache folder for the current OS. Running instances are unaffected, and Multipass will fetch the image again only when launching a new instance that needs it.
Notice an outdated path? Let us know.