Switching AppVM template from Fedora to Debian

What would the ramifications of switching the underlying template of an AppVM from Fedora to Debian be?

I have a large number of sys-vpn AppVMs each set to different countries (using Qubes-vpn-support) that are based on Fedora 33. I was testing out a Debian 10 minimal template to use instead. Rather than recreate each AppVM and basing it on Debian would it be possible to simply switch the template in the existing AppVM?

I’ve tested on a couple of AppVMs, and it seems to work. Ideally I’d prefer to make new AppVMs, but wondered if this shortcut might be possible.

My understanding is that the only thing that’s saved in an AppVM is the user directories, and so as long as you would want the same rc.local and ~/.* config files in Debian as you would in Fedora, it should be fine. That’s also why the upgrade procedure is to switch from e.g. Fedora 33 to 34. I’m a noob here though so I’m not totally sure.

One pitfall with simply switching an AppVM’s template is uid/gid’s. Files on the private image have owners/groups specified by gid/uid, which might suddenly map to a different user/group under the new template.

Real-life example: An AppVM with original template debian-9, contains a file /rw/bind-dirs/var/spool/cron/crontabs/user, with group crontab (gid 107 in debian-9). If you later change the template to debian-10, that file’s group will change to render (gid 107 in debian-10). You have to manually fix the group.

This is especially annoying when using bind-dirs.

2 Likes