@RamLovingPenguin Hi! The default script creates only 3 VMs in RAM: dom0 and two DVMs. The other VMs: sys‑vm, various appVMs, and templates - are stored on the SSD. Therefore, you need to copy all VMs into the varlibqubes pool, otherwise you won’t be able to use most of the VMs. But you will need a lot of memory on the device, ideally at least 64 GB.
Be careful, though creating new sys‑usb and sys‑whonix VMs can be tricky for beginners because you have to edit global config settings.
There’s also an important nuance with the overlay: unlike zram‑live mode, overlay does not copy the entire disk. It only directs the currently needed data to the upper writable layer. Disabling the disk will prevent live VMs that you haven’t yet started in overlay from launching. Consequently, zram mode is more convenient for a scenario where you want to disconnect the SSD.
I made a few changes to the default script right now that simplify things when the SSD is disconnected in live mode (umount $NEWROOT/live/cow umount /mnt). It doesn’t affect to the live modes work (it even enhances security). ps I can’t edit the second comment with the other script now, I will add it to the first post later.
If you plan to keep the whole Qubes OS in RAM and work comfortably with that setup, it’s better to install Qubes OS on a Btrfs filesystem. I tested overlay‑live mode on Btrfs 3 months ago and it worked great - Btrfs use varlibqubes pool by default and all my VMs were in RAM (I believe zram mode should also work on Btrfs). But you will need a lot of memory on the device.
You can attach new disks. Just remember that now you have two pools for running VMs:
varlibqubesvm‑pool
If a VM resides in the varlibqubes pool - data on the SSD won’t be saved. If it’s in the vm‑pool - data will be persisted.