Yes, dom0 running live mode + DVM using ephemeral volatile encryption (for root overlay on xvdc) + private volume (xvdb) running /home in tmpfs overlay + kernel params init_on_free=1 init_on_alloc=1 provides cryptographic-grade protection. Hereâs exactly how it works and why itâs safe even after DVM shutdown while dom0 stays running.
What happens on clean DVM shutdown:
Volatile volume (xvdc) + root overlay = cryptographically wiped
- Ephemeral key lived only in RAM (blkback crypto context).
- On shutdown: key destroyed (memory freed), disk shows only unreadable encrypted garbage.
- Result: All DVM root changes/swap data = 100% gone from disk.
Private volume (xvdb:/home) in tmpfs overlay = memory-only
/homeruns entirely in tmpfs (RAM overlay), never touches persistent private.img on disk.- Sensitive data (files, VeraCrypt containers) lives only in DVM guest RAM.
- Result: No disk traces of your actual working data whatsoever.
DVM guest RAM (root + /home tmpfs) = securely wiped
init_on_free=1/init_on_alloc=1forces DVM kernel to zero all pages when freeing.- Xen hypervisor then frees guest pages, overwriting/recycling them securely (
bootscrub=1). - Result: Files, passwords, VeraCrypt keys, screen buffers = completely destroyed.
This is roughly what a forensic analyst would see if he gained access to a running, decrypted dom0.
dispXXXX started 06:39, shutdown 06:45
Template: amnesic-dvm, pool: vm-pool
Disk sizes: root=20G, volatile=12G, private=2G
Basic CPU/RAM/network stats by timestamp
He would only see some metadata indicating that a certain DVM had been started, and even those data would be erased once dom0 is shutdown.
He CANNOT recover:
- Your
/hometmpfs contents / cache or VeraCrypt data - Passwords/keys (all memory-only)
You can make all your AppVMs use ephemeral encryption too - add them to the ExecStart= line in /etc/systemd/system/rw.service and restart systemd:
sudo systemctl daemon-reload
sudo systemctl enable rw.service
To activate ephemeral encryption, the appVM must be shutdown. If you see errors in systemd, itâs because some specified appVM is running. Donât worry about it - it will work after the dom0 reboot.
You can also make /home in all AppVMs run entirely in RAM (tmpfs overlay).
(Note: /usr/local/ doesnât need tmpfs overlay since it doesnât store logs/cache.)
Simply copy the commands from /rw/config/rc.local in my amnesic-dvm into your AppVMs.
Important: Commands differ for debian/fedora/kicksecure AppVMs vs Whonix AppVMs (Whonix has specific quirks).
Overlaying /home might break some programs (though I havenât noticed issues). If something stops working after adding the overlay commands to /rw, replace them with this safer bind-mount approach:
mkdir -p /tmp/home-user
chown user:user /tmp/home-user
chmod 700 /tmp/home-user
cp -a /home/user/. /tmp/home-user/
mount --bind /tmp/home-user /home/user
mount -o remount,size=2G /home/user