Shared Directories between host and VM's?

I run Arch as my bare-metal OS.

I run Garuda Gaming as my main VM, with various bits of hardware passed through. I also have Ubuntu and PoP for games compatibility testing.

I set up other OS’s on VM’s for other interests (Photo ed, Video stuff, music etc.)

I want to share my Home Dir user sub-directories (Documents, Downloads, Pictures, Videos etc. no dotfiles or hidden stuff). Between my host and selected VM’s using VirtIO.

How can I set this up so it is easy to replicate on any other trusted VM’s that I want to install, without having to do each step manually each time?

Besides the basic Home directories. Are there any other directories in Linux that could be shared between distros safely?

Any other fun stuff I can do to integrate things and save on duplicate data etc?

Thanks all!

You could share these over the virtual network using samba of NFS, there’s virtiofs but that’s a smidge more complicated to set up.

It might be helpful to keep the stuff you’re mentioning outside of the user home dirs to begin with.

What exactly do you mean by “safely sharing” and are you looking for specific guides or… ?

I had NFS before VirtioFS, but VirtioFS is so much more responsive, simpler, and faster. I already use it for sharing my Steam Libraries between host and VM’s.

I think what I need to do is redirect / map the guest default XDG paths to shared directories on the host, but no idea where to do it.

eg. anything that would automatically save to ~/Documents on the VM to save to my ~/Documents on my host instead. Same with the other subdirs in user’s Home. That make sense?

The aim is, that no matter what VM I am on, my files will all appear to be in the default places.

Re other dirs. I am just curious whether something like /opt or /usr is able to be used between different distros?