Troubleshooting
Stale lock
Section titled “Stale lock”DVM uses ~/.cache/dvm/<vm>.lock to avoid overlapping operations. If a process
was interrupted and no DVM command is running, remove the stale directory:
rmdir ~/.cache/dvm/app.lockFailed setup
Section titled “Failed setup”DVM does not roll back partial setup. Fix the script and sync again. Make setup scripts idempotent:
test -x /usr/local/bin/tool || sudo install -m 0755 tool /usr/local/bin/toolUnsafe permissions
Section titled “Unsafe permissions”DVM refuses config and setup scripts that are not owned by you or are group/world writable. Repair:
chmod go-w ~/.config/dvm ~/.config/dvm/config.sh ~/.config/dvm/setup.shchmod go-w ~/.config/dvm/vms/app ~/.config/dvm/vms/app/config.shchmod go-w ~/.config/dvm/vms/app/setup.shThe global setup script runs by convention from ~/.config/dvm/setup.sh, and the
per-VM script from ~/.config/dvm/vms/<vm>/setup.sh. Neither is a config
variable; create the file to enable it, remove it to disable it.
systemd-binfmt failed on aarch64 Lima
Section titled “systemd-binfmt failed on aarch64 Lima”On some aarch64 Lima images systemd-binfmt.service reports failed even though
the VM needs no foreign binary format handlers. It is harmless, but it makes
systemctl --failed noisy. Mask it from a setup script to keep boot clean:
sudo systemctl mask --now systemd-binfmt.service || truesudo systemctl reset-failed systemd-binfmt.service || trueSkip this if you actually run foreign-architecture binaries in the guest.
DVM_DRY_RUN=1 dvm sync appdvm ls --only-configdvm ssh app -- truedvm ssh app -- sudo journalctl -fUse Lima directly for deeper inspection:
limactl listlimactl shell dvm-appBuilt and maintained by eshlox.