virtiofs, available in QEMU 5.2 or newer and Linux guests 5.4 or newer,
is a more modern way to pass local folders along to QEMU, as it takes
advantage of the fact that the folders are on the same machine as the
hypervisor.
To use virtiofs, we first need to find and run virtiofsd, which has two
different implementations: a C implementation included with QEMU up until
8.0 (available on most distros) and a standalone Rust implementation
available on GitLab (not packaged on many distros but easy to build and
install). Once we find it, we run it in the background and connect to it
using some QEMU parameters, which were shamelessly taken from the
official virtiofs website:
$ cat shared/foo
Linux (none) 6.1.0-rc8-next-20221207 #2 SMP PREEMPT Wed Dec 7 14:56:03 MST 2022 aarch64 GNU/Linux
This does require guest kernel support (CONFIG_VIRTIO_FS=y), otherwise it will
not work inside the guest; the script warns when there is a possibility this
configuration is not set so the user is not surprised by the following error:
/ # mount -t virtiofs shared /mnt/shared
mount: mounting shared on /mnt/shared failed: No such device
virtiofs, available in QEMU 5.2 or newer and Linux guests 5.4 or newer, is a more modern way to pass local folders along to QEMU, as it takes advantage of the fact that the folders are on the same machine as the hypervisor.
To use virtiofs, we first need to find and run
virtiofsd
, which has two different implementations: a C implementation included with QEMU up until 8.0 (available on most distros) and a standalone Rust implementation available on GitLab (not packaged on many distros but easy to build and install). Once we find it, we run it in the background and connect to it using some QEMU parameters, which were shamelessly taken from the official virtiofs website:https://virtio-fs.gitlab.io/howto-qemu.html
To use it within the guest (you can use a different path than
/mnt/shared
butmount -t virtio shared
must be used):On the host:
This does require guest kernel support (
CONFIG_VIRTIO_FS=y
), otherwise it will not work inside the guest; the script warns when there is a possibility this configuration is not set so the user is not surprised by the following error:Closes: https://github.com/ClangBuiltLinux/boot-utils/issues/81 Link: https://gitlab.com/virtio-fs/virtiofsd