How to move root/volatile volume of a VM?

Hi,

How can I move only the root volume of a VM to another pool?
Or root and volatile?
Or only volatile?

There’s no builtin support for moving volumes of an existing VM to another pool. You could use qvm-clone --pool=VOLUME=POOL ... and then delete the original VM. Or if you want to create a new VM, the same option can be passed to qvm-create.

But the ‘root’ volume of an AppVM is snap_on_start, so it is always located in the pool of its template’s ‘root’ volume. It’s not possible to change that.

1 Like

@rustybird

Thanks for the quick reply.

What about the volatile? It is possible to have it in a different pool (we have that in the RAM qubes). But is it possible to have only it in a different pool?

Yes, that’s possible for ‘volatile’ and all other volumes that are not snap_on_start.

It can even be configured globally (instead of per VM) with qubes-prefs default_pool_volatile POOL, although this will only apply to VMs created after changing this global setting.

Could you explain how to do it? - Only volatile.

qvm-create --pool=volatile=yourpoolname --label=color newqube

or

qvm-clone --pool=volatile=yourpoolname originalqube clonedqube && qvm-remove originalqube

1 Like

There seems to be some misunderstanding.

I don’t want to move the whole VM to another pool. I want to move only it’s volatile volume.

kernel - vm-pool
private - vm-pool
root - vm-pool
volatile - another-pool

That’s sort of what --pool=volatile=yourpoolname does…

If you need to avoid cloning the VM, I guess you could also edit /var/lib/qubes/qubes.xml manually (after stopping qubesd.service!), adjusting the volume XML element’s pool and vid attributes.

Thanks.
I hope I won’t mess it up :slight_smile: