Best way to share a folder between KVM host and guest

Solution 1:

You could do this by treating host and guest as completely separate computers. Make the shared folder available on the host, e.g. by exporting it through NFS or by creating a samba share. Then connect to it from the guest just in the normal manner.

Since the guest has its own IP address, this should not present any problems. With NFS you can also easily limit the exported share to only accept connections from the guest (if that is what you want). All the other rules about NFS shares and samba shares still apply.

If either guest or host are Windows machines, then you are probably better of with a samba share.

Solution 2:

Here's a 9p virtio example from the official wiki. (Further reading.)

The virt-manager GUI virtual machine editor calls it "filesystem passthrough".

Solution 3:

I usually use sshfs to mount a [folder on the host machine] on the VM guest, e.g.:

sshfs [email protected]:/home/magnus/development /path/to/dev/dir/on/guest

Were 10.42.43.1 is the gateway and VM host. -- This works also with NAT (need not be a bridged networking setup).

(And I suppose Samba or NFS are better to use once you have them set up, since you need run no more commands, no sshfs ....)